00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __igstkEllipsoidObjectRepresentation_h
00019 #define __igstkEllipsoidObjectRepresentation_h
00020
00021 #include "igstkMacros.h"
00022 #include "igstkObjectRepresentation.h"
00023 #include "igstkEllipsoidObject.h"
00024 #include "vtkSuperquadricSource.h"
00025 #include "igstkStateMachine.h"
00026
00027 namespace igstk
00028 {
00029
00043 class EllipsoidObjectRepresentation
00044 : public ObjectRepresentation
00045 {
00046
00047 public:
00048
00050 igstkStandardClassTraitsMacro( EllipsoidObjectRepresentation,
00051 ObjectRepresentation )
00052
00053 public:
00054
00056 typedef EllipsoidObject EllipsoidObjectType;
00057
00059 Pointer Copy() const;
00060
00062 void RequestSetEllipsoidObject( const EllipsoidObjectType * ellipsoidObject );
00063
00064 protected:
00065
00066 EllipsoidObjectRepresentation( void );
00067 virtual ~EllipsoidObjectRepresentation( void );
00068
00070 virtual void PrintSelf( std::ostream& os, itk::Indent indent ) const;
00071
00073 void CreateActors();
00074
00075 private:
00076
00078 EllipsoidObjectType::ConstPointer m_EllipsoidObject;
00079
00081 vtkSuperquadricSource * m_EllipsoidSource;
00082
00084 virtual void UpdateRepresentationProcessing();
00085
00088 void SetEllipsoidObjectProcessing();
00089
00091 void NoProcessing();
00092
00093 private:
00094
00096 igstkDeclareInputMacro( ValidEllipsoidObject );
00097 igstkDeclareInputMacro( NullEllipsoidObject );
00098
00100 igstkDeclareStateMacro( NullEllipsoidObject );
00101 igstkDeclareStateMacro( ValidEllipsoidObject );
00102
00103 EllipsoidObjectType::ConstPointer m_EllipsoidObjectToAdd;
00104
00105 };
00106
00107 }
00108
00109 #endif // __igstkEllipsoidObjectRepresentation_h