IGSTK

/build/buildd/igstk-4.2.0/Source/igstkMeshObjectRepresentation.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Image Guided Surgery Software Toolkit
00004   Module:    $RCSfile: igstkMeshObjectRepresentation.h,v $
00005   Language:  C++
00006   Date:      $Date: 2008-02-11 01:41:50 $
00007   Version:   $Revision: 1.12 $
00008 
00009   Copyright (c) ISC  Insight Software Consortium.  All rights reserved.
00010   See IGSTKCopyright.txt or http://www.igstk.org/copyright.htm for details.
00011 
00012      This software is distributed WITHOUT ANY WARRANTY; without even
00013      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00014      PURPOSE.  See the above copyright notices for more information.
00015 
00016 =========================================================================*/
00017 
00018 #ifndef __igstkMeshObjectRepresentation_h
00019 #define __igstkMeshObjectRepresentation_h
00020 
00021 #include "igstkMacros.h"
00022 #include "igstkObjectRepresentation.h"
00023 #include "igstkMeshObject.h"
00024 #include "igstkStateMachine.h"
00025 
00026 namespace igstk
00027 {
00028 
00041 class MeshObjectRepresentation 
00042 : public ObjectRepresentation
00043 {
00044 
00045 public:
00046 
00048   igstkStandardClassTraitsMacro( MeshObjectRepresentation, 
00049                                  ObjectRepresentation )
00050 
00051 public:
00052     
00054   typedef MeshObject                     MeshObjectType;
00055 
00057   Pointer Copy() const;
00058 
00060   void RequestSetMeshObject( const MeshObjectType * MeshObject );
00061 
00062 protected:
00063 
00065   virtual void PrintSelf( std::ostream& os, itk::Indent indent ) const; 
00066   
00068   MeshObjectRepresentation( void );
00069 
00071   ~MeshObjectRepresentation( void );
00072 
00074   void CreateActors();
00075 
00076 private:
00077 
00079   MeshObjectType::ConstPointer   m_MeshObject;
00080 
00082   virtual void UpdateRepresentationProcessing();
00083 
00086   void SetMeshObjectProcessing(); 
00087 
00089   void NoProcessing();
00090 
00091 private:
00092 
00094   igstkDeclareInputMacro( ValidMeshObject );
00095   igstkDeclareInputMacro( NullMeshObject );
00096   
00098   igstkDeclareStateMacro( NullMeshObject );
00099   igstkDeclareStateMacro( ValidMeshObject );
00100 
00101   MeshObjectType::ConstPointer m_MeshObjectToAdd;
00102 
00103 };
00104 
00105 
00106 } // end namespace igstk
00107 
00108 #endif // __igstkMeshObjectRepresentation_h