#ifndef __CPM__VTK__MESHMAPPER__H__ #define __CPM__VTK__MESHMAPPER__H__ #include #include class vtkActor; class vtkInformation; class vtkRenderer; namespace cpm { namespace VTK { /** */ template< class M > class MeshMapper : public vtkMapper { public: typedef MeshMapper Self; vtkTypeMacro( MeshMapper, vtkMapper ); typedef M TMesh; typedef typename M::PointType TPoint; typedef typename TPoint::VectorType TVector; typedef typename TPoint::CoordRepType TScalar; itkStaticConstMacro( Dimension, unsigned int, M::PointDimension ); // Begin concept checking #ifdef ITK_USE_CONCEPT_CHECKING /* TODO itkConceptMacro( InputMeshIsTwoOrThreeimensionalCheck, ( itk::Concept::SameDimensionOrMinusOne< Self::Dimension, 3 > ) ); itkConceptMacro( ScalarTypeHasFloatResolution, ( itk::Concept::IsFloatingPoint< TScalar > ) ); */ #endif // End concept checking public: static Self* New( ); virtual void ShallowCopy( vtkAbstractMapper* m ); virtual void SetInputData( M* in ); virtual M* GetInput( ); virtual const M* GetInput( ) const; virtual double* GetBounds( ); virtual void GetBounds( double bounds[ 6 ] ); virtual void RenderPiece( vtkRenderer* aren, vtkActor* act ) = 0; virtual void Render( vtkRenderer* aren, vtkActor* act ); virtual void Update( ); virtual void Update( int port ); virtual void MapDataArrayToVertexAttribute( const char* vertexAttributeName, const char* dataArrayName, int fieldAssociation, int componentno = -1 ); virtual void MapDataArrayToMultiTextureAttribute( int unit, const char* dataArrayName, int fieldAssociation, int componentno = -1 ); virtual void RemoveVertexAttributeMapping( const char* vertexAttributeName ); virtual void RemoveAllVertexAttributeMappings( ); protected: MeshMapper( ); virtual ~MeshMapper( ); virtual void ComputeBounds( ); virtual int FillInputPortInformation( int port, vtkInformation* info ); private: // These methods aren't supposed to be implemented MeshMapper( const Self& other ); Self& operator=( const Self& other ); protected: typename M::Pointer Mesh; }; } // ecapseman } // ecapseman #endif // __CPM__VTK__MESHMAPPER__H__ // eof - $RCSfile$