00001 #ifndef ANAPHE_AIDA_UTILITIES_TYPECAST_H 00002 #define ANAPHE_AIDA_UTILITIES_TYPECAST_H 00003 00004 namespace AIDA { 00005 class IManagedObject; 00006 class IHistogram1D; 00007 class IHistogram2D; 00008 class IHistogram3D; 00009 class ICloud1D; 00010 class ICloud2D; 00011 class ICloud3D; 00012 class IProfile1D; 00013 class IProfile2D; 00014 class ITuple; 00015 class IDataPointSet; 00016 class IFunction; 00017 } 00018 00019 namespace Anaphe { 00020 namespace AIDA_Utilities { 00021 00022 class TypeCast 00023 { 00024 public: 00025 TypeCast() {}; 00026 ~TypeCast() {}; 00027 00028 AIDA::IHistogram1D* toHistogram1D( AIDA::IManagedObject* mo ) const; 00029 AIDA::IHistogram2D* toHistogram2D( AIDA::IManagedObject* mo ) const; 00030 AIDA::IHistogram3D* toHistogram3D( AIDA::IManagedObject* mo ) const; 00031 00032 AIDA::ICloud1D* toCloud1D( AIDA::IManagedObject* mo ) const; 00033 AIDA::ICloud2D* toCloud2D( AIDA::IManagedObject* mo ) const; 00034 AIDA::ICloud3D* toCloud3D( AIDA::IManagedObject* mo ) const; 00035 00036 AIDA::IProfile1D* toProfile1D( AIDA::IManagedObject* mo ) const; 00037 AIDA::IProfile2D* toProfile2D( AIDA::IManagedObject* mo ) const; 00038 00039 AIDA::IDataPointSet* toDataPointSet( AIDA::IManagedObject* mo ) const; 00040 AIDA::ITuple* toTuple( AIDA::IManagedObject* mo ) const; 00041 AIDA::IFunction* toFunction( AIDA::IManagedObject* mo ) const; 00042 }; 00043 00044 } 00045 } 00046 00047 #endif