X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins%2FInterface%2FObject.h;h=92de13cb646f4823107a073628e5558dc3e5c065;hb=1f5bfcecaf07f48e16ca55201faa50e597239042;hp=b15d1f0824ccfb87e9c5542642d681918ce77205;hpb=6a03e0119795c077abdeff74404bf8b5151acda0;p=cpPlugins.git diff --git a/lib/cpPlugins/Interface/Object.h b/lib/cpPlugins/Interface/Object.h index b15d1f0..92de13c 100644 --- a/lib/cpPlugins/Interface/Object.h +++ b/lib/cpPlugins/Interface/Object.h @@ -1,50 +1,15 @@ #ifndef __CPPLUGINS__INTERFACE__OBJECT__H__ #define __CPPLUGINS__INTERFACE__OBJECT__H__ +#include + #include -#include + #include #include -#include - -// ------------------------------------------------------------------------- -#define PLUMA_PROVIDER_HEADER_BEGIN_CPPLUGINS( TYPE ) \ - class cpPlugins_Interface_EXPORT TYPE##Provider \ - : public pluma::Provider \ - { \ - private: \ - friend class pluma::Pluma; \ - static const unsigned int PLUMA_INTERFACE_VERSION; \ - static const unsigned int PLUMA_INTERFACE_LOWEST_VERSION; \ - static const std::string PLUMA_PROVIDER_TYPE; \ - std::string plumaGetType( ) const \ - { return( PLUMA_PROVIDER_TYPE ); } \ - public: \ - unsigned int getVersion( ) const \ - { return( PLUMA_INTERFACE_VERSION ); } - -// ------------------------------------------------------------------------- -#define PLUMA_PROVIDER_HEADER_END_CPPLUGINS }; - -// ------------------------------------------------------------------------- -#define PLUMA_PROVIDER_HEADER_CPPLUGINS( TYPE ) \ - PLUMA_PROVIDER_HEADER_BEGIN_CPPLUGINS( TYPE ) \ - virtual TYPE::Pointer create( ) const = 0; \ - PLUMA_PROVIDER_HEADER_END_CPPLUGINS - -// ------------------------------------------------------------------------- -#define PLUMA_INHERIT_PROVIDER_CPPLUGINS( TYPE, SUPER ) \ - class TYPE##Provider \ - : public SUPER##Provider \ - { \ - public: \ - SUPER::Pointer create( ) const \ - { \ - TYPE::Pointer a = TYPE::New( ); \ - SUPER::Pointer b = a.GetPointer( ); \ - return( b ); \ - } \ - }; + +#include +#include namespace cpPlugins { @@ -64,10 +29,31 @@ namespace cpPlugins public: itkNewMacro( Self ); itkTypeMacro( Object, itkObject ); + cpPlugins_Id_Macro( Object, BaseObject ); + + itkGetStringMacro( Name ); + itkGetConstMacro( ViewX, float ); + itkGetConstMacro( ViewY, float ); + + itkSetStringMacro( Name ); + itkSetMacro( ViewX, float ); + itkSetMacro( ViewY, float ); public: - virtual std::string GetClassName( ) const; - virtual std::string GetClassType( ) const; + virtual void Modified( ) const; + void SetViewCoords( float x, float y ); + + template< class T > + inline T* GetITK( ); + + template< class T > + inline const T* GetITK( ) const; + + template< class T > + inline T* GetVTK( ); + + template< class T > + inline const T* GetVTK( ) const; protected: Object( ); @@ -77,15 +63,22 @@ namespace cpPlugins // Purposely not implemented Object( const Self& ); Self& operator=( const Self& ); - }; - // TODO: doc - PLUMA_PROVIDER_HEADER_CPPLUGINS( Object ); + protected: + itk::LightObject::Pointer m_ITKObject; + vtkSmartPointer< vtkObjectBase > m_VTKObject; + std::string m_Name; + + float m_ViewX; + float m_ViewY; + }; } // ecapseman } // ecapseman +#include + #endif // __CPPLUGINS__INTERFACE__OBJECT__H__ // eof - $RCSfile$