#define __CPPLUGINS__ORTHONORMALBASE__H__
#include <cpPlugins/DataObject.h>
+#include <vtkActor.h>
+#include <vtkAxes.h>
+#include <vtkPolyDataMapper.h>
+#include <vtkActor.h>
+#include <vtkCellArray.h>
+#include <vtkPoints.h>
+#include <vtkPolyData.h>
+#include <vtkPolyDataMapper.h>
+
+#include <vtkSmartPointer.h>
namespace cpPlugins
{
typedef itk::SmartPointer< Self > Pointer;
typedef itk::SmartPointer< const Self > ConstPointer;
+ struct BaseActor
+ {
+ vtkSmartPointer< vtkPolyData > Axes;
+ vtkSmartPointer< vtkPolyDataMapper > Mapper;
+ vtkSmartPointer< vtkActor > Actor;
+
+ void SetBase( vtkMatrix4x4* matrix )
+ {
+ this->Axes = vtkSmartPointer< vtkPolyData >::New( );
+ this->Mapper = vtkSmartPointer< vtkPolyDataMapper >::New( );
+ this->Actor = vtkSmartPointer< vtkActor >::New( );
+
+ vtkSmartPointer< vtkPoints > points = vtkSmartPointer< vtkPoints >::New( );
+ points->InsertNextPoint( 0, 0, 0 );
+ points->InsertNextPoint( 1, 0, 0 );
+ points->InsertNextPoint( 0, 1, 0 );
+ points->InsertNextPoint( 0, 0, 1 );
+ vtkSmartPointer< vtkCellArray > lines = vtkSmartPointer< vtkCellArray >::New( );
+ lines->InsertNextCell( 2 ); lines->InsertCellPoint( 0 ); lines->InsertCellPoint( 1 );
+ lines->InsertNextCell( 2 ); lines->InsertCellPoint( 0 ); lines->InsertCellPoint( 2 );
+ lines->InsertNextCell( 2 ); lines->InsertCellPoint( 0 ); lines->InsertCellPoint( 3 );
+ this->Axes->SetPoints( points );
+ this->Axes->SetLines( lines );
+
+ this->Mapper->SetInputData( this->Axes );
+ this->Actor->SetMapper( this->Mapper );
+ }
+ };
+
public:
itkNewMacro( Self );
itkTypeMacro( OrthoNormalBase, DataObject );
template< class _TMatrix >
inline void SetITK( const _TMatrix& m );
+ template< class _TMatrix, class _TVector >
+ inline void SetITK( const _TMatrix& m, const _TVector& v );
+
protected:
OrthoNormalBase( );
virtual ~OrthoNormalBase( );
// Purposely not implemented
OrthoNormalBase( const Self& );
Self& operator=( const Self& );
+
+ protected:
+ mutable BaseActor m_BaseActor;
};
} // ecapseman