#include <vtkInteractorStyleCutter.h>
Public Member Functions | |
vtkTypeRevisionMacro (vtkInteractorStyleCutter, vtkInteractorStyle) | |
void | PrintSelf (ostream &os, vtkIndent indent) |
virtual void | OnMouseMove () |
virtual void | OnLeftButtonDown () |
virtual void | OnRightButtonDown () |
void | VisibilityOff () |
vtkGetObjectMacro (LoopPoints, vtkPoints) | |
vtkGetVector3Macro (Direction, double) | |
Static Public Member Functions | |
static vtkInteractorStyleCutter * | New () |
Protected Member Functions | |
vtkInteractorStyleCutter () | |
~vtkInteractorStyleCutter () | |
virtual void | EndLoop () |
void | Initialize () |
Protected Attributes | |
int | CurrentPosition [2] |
double | Direction [3] |
vtkPoints * | Points |
vtkIdType | PointID |
int | Moving |
vtkActor2D * | BboxActor |
vtkCellArray * | Lines |
vtkPoints * | LoopPoints |
Private Member Functions | |
vtkInteractorStyleCutter (const vtkInteractorStyleCutter &) | |
void | operator= (const vtkInteractorStyleCutter &) |
Definition at line 32 of file vtkInteractorStyleCutter.h.
vtkInteractorStyleCutter::vtkInteractorStyleCutter | ( | ) | [protected] |
Definition at line 35 of file vtkInteractorStyleCutter.cxx.
References BboxActor, CurrentPosition, Direction, Lines, LoopPoints, Moving, and Points.
00036 { 00037 this->CurrentPosition[0] = this->CurrentPosition[1] = 0; 00038 this->Direction[0] = this->Direction[1] = this->Direction[2] = 0.; 00039 this->Moving = 0; 00040 00041 this->Points = vtkPoints::New(); 00042 this->Lines = vtkCellArray::New(); 00043 this->LoopPoints = vtkPoints::New(); 00044 00045 vtkPolyData *pd = vtkPolyData::New(); 00046 pd->SetPoints( Points ); 00047 pd->SetLines( Lines ); 00048 00049 vtkPolyDataMapper2D *bboxMapper = vtkPolyDataMapper2D::New(); 00050 bboxMapper->SetInput( pd ); 00051 00052 this->BboxActor = vtkActor2D::New(); 00053 this->BboxActor->SetMapper( bboxMapper ); 00054 this->BboxActor->GetProperty()->SetColor(1, 0, 0); 00055 this->BboxActor->VisibilityOff(); 00056 00057 //thanks 00058 pd->Delete(); 00059 bboxMapper->Delete(); 00060 }
vtkInteractorStyleCutter::~vtkInteractorStyleCutter | ( | ) | [protected] |
Definition at line 63 of file vtkInteractorStyleCutter.cxx.
References BboxActor, Lines, LoopPoints, and Points.
00064 { 00065 this->Points->Delete(); 00066 this->BboxActor->Delete(); 00067 this->Lines->Delete(); 00068 this->LoopPoints->Delete(); 00069 }
vtkInteractorStyleCutter::vtkInteractorStyleCutter | ( | const vtkInteractorStyleCutter & | ) | [private] |
static vtkInteractorStyleCutter* vtkInteractorStyleCutter::New | ( | ) | [static] |
vtkInteractorStyleCutter::vtkTypeRevisionMacro | ( | vtkInteractorStyleCutter | , | |
vtkInteractorStyle | ||||
) |
void vtkInteractorStyleCutter::PrintSelf | ( | ostream & | os, | |
vtkIndent | indent | |||
) |
void vtkInteractorStyleCutter::OnMouseMove | ( | ) | [virtual] |
Definition at line 72 of file vtkInteractorStyleCutter.cxx.
References CurrentPosition, and Points.
00073 { 00074 if (!this->Interactor || !this->Moving) 00075 { 00076 return; 00077 } 00078 00079 this->CurrentPosition[0] = this->Interactor->GetEventPosition()[0]; 00080 this->CurrentPosition[1] = this->Interactor->GetEventPosition()[1]; 00081 00082 //mouse move event 00083 this->Points->SetPoint(this->PointID, this->CurrentPosition[0], 00084 this->CurrentPosition[1], 0); 00085 00086 this->Interactor->Render(); 00087 }
void vtkInteractorStyleCutter::OnLeftButtonDown | ( | ) | [virtual] |
Definition at line 90 of file vtkInteractorStyleCutter.cxx.
References BboxActor, CurrentPosition, Initialize(), Lines, Moving, PointID, and Points.
00091 { 00092 if (!this->Interactor) 00093 { 00094 return; 00095 } 00096 00097 this->CurrentPosition[0] = this->Interactor->GetEventPosition()[0]; 00098 this->CurrentPosition[1] = this->Interactor->GetEventPosition()[1]; 00099 00100 if(!this->Moving) 00101 { 00102 this->Initialize(); 00103 00104 //Call this before accessing CurrentRenderer 00105 this->FindPokedRenderer(this->CurrentPosition[0], this->CurrentPosition[1]); 00106 this->CurrentRenderer->AddProp( BboxActor ); 00107 } 00108 00109 this->Moving = 1; 00110 00111 this->Points->SetPoint(this->PointID, this->CurrentPosition[0], 00112 this->CurrentPosition[1], 0); 00113 this->PointID = this->Points->InsertNextPoint( this->CurrentPosition[0], 00114 this->CurrentPosition[1], 0); 00115 00116 this->Lines->InsertCellPoint( this->PointID ); 00117 this->Lines->UpdateCellCount( this->PointID + 1 ); 00118 this->BboxActor->VisibilityOn(); 00119 00120 this->Interactor->Render(); 00121 }
void vtkInteractorStyleCutter::OnRightButtonDown | ( | ) | [virtual] |
Definition at line 124 of file vtkInteractorStyleCutter.cxx.
References EndLoop(), Moving, and Points.
00125 { 00126 if (!this->Interactor || !this->Moving) 00127 { 00128 return; 00129 } 00130 00131 double xyz[3]; 00132 this->Points->GetPoint( 0, xyz ); 00133 this->Points->SetPoint(this->PointID, xyz); 00134 00135 //Save current state 00136 this->EndLoop(); 00137 00138 this->Interactor->Render(); 00139 this->Moving = 0; 00140 }
void vtkInteractorStyleCutter::VisibilityOff | ( | ) |
Definition at line 184 of file vtkInteractorStyleCutter.cxx.
References BboxActor.
Referenced by vtk3DSurfaceSTLWidget::SetCuttingMode().
00185 { 00186 this->BboxActor->VisibilityOff(); 00187 }
vtkInteractorStyleCutter::vtkGetObjectMacro | ( | LoopPoints | , | |
vtkPoints | ||||
) |
vtkInteractorStyleCutter::vtkGetVector3Macro | ( | Direction | , | |
double | ||||
) |
void vtkInteractorStyleCutter::EndLoop | ( | ) | [protected, virtual] |
Definition at line 153 of file vtkInteractorStyleCutter.cxx.
References LoopPoints, and Points.
Referenced by OnRightButtonDown().
00154 { 00155 double pi[3],fpi[4]; 00156 int numPts = this->Points->GetNumberOfPoints()-1; 00157 this->LoopPoints->SetNumberOfPoints( numPts ); 00158 vtkCamera *camera = this->CurrentRenderer->GetActiveCamera(); 00159 int state = camera->GetParallelProjection (); 00160 camera->ParallelProjectionOn(); 00161 00162 for (int i=0; i < numPts; i++) 00163 { 00164 this->Points->GetPoint(i, pi); 00165 this->CurrentRenderer->SetDisplayPoint(pi[0], pi[1], 0); 00166 this->CurrentRenderer->DisplayToWorld(); 00167 00168 this->CurrentRenderer->GetWorldPoint( fpi ); 00169 if ( fpi[3] ) 00170 { 00171 fpi[0] /= fpi[3]; 00172 fpi[1] /= fpi[3]; 00173 fpi[2] /= fpi[3]; 00174 } 00175 this->LoopPoints->SetPoint( i, fpi[0], fpi[1], fpi[2] ); 00176 } 00177 00178 //Set direction of extrusion, should save this state before camera moves 00179 camera->GetDirectionOfProjection( this->Direction ); 00180 //camera->SetParallelProjection( state ); 00181 }
void vtkInteractorStyleCutter::Initialize | ( | ) | [protected] |
Definition at line 143 of file vtkInteractorStyleCutter.cxx.
References Lines, PointID, and Points.
Referenced by OnLeftButtonDown().
00144 { 00145 this->Points->Reset(); 00146 this->Lines->Reset(); 00147 00148 this->PointID = this->Points->InsertNextPoint( 0, 0, 0); 00149 this->Lines->InsertNextCell( 1 ); 00150 this->Lines->InsertCellPoint( 0 ); 00151 }
void vtkInteractorStyleCutter::operator= | ( | const vtkInteractorStyleCutter & | ) | [private] |
int vtkInteractorStyleCutter::CurrentPosition[2] [protected] |
Definition at line 61 of file vtkInteractorStyleCutter.h.
Referenced by OnLeftButtonDown(), OnMouseMove(), and vtkInteractorStyleCutter().
double vtkInteractorStyleCutter::Direction[3] [protected] |
vtkPoints* vtkInteractorStyleCutter::Points [protected] |
Definition at line 65 of file vtkInteractorStyleCutter.h.
Referenced by EndLoop(), Initialize(), OnLeftButtonDown(), OnMouseMove(), OnRightButtonDown(), vtkInteractorStyleCutter(), and ~vtkInteractorStyleCutter().
vtkIdType vtkInteractorStyleCutter::PointID [protected] |
Definition at line 68 of file vtkInteractorStyleCutter.h.
Referenced by Initialize(), and OnLeftButtonDown().
int vtkInteractorStyleCutter::Moving [protected] |
Definition at line 71 of file vtkInteractorStyleCutter.h.
Referenced by OnLeftButtonDown(), OnRightButtonDown(), and vtkInteractorStyleCutter().
vtkActor2D* vtkInteractorStyleCutter::BboxActor [protected] |
Definition at line 73 of file vtkInteractorStyleCutter.h.
Referenced by OnLeftButtonDown(), VisibilityOff(), vtkInteractorStyleCutter(), and ~vtkInteractorStyleCutter().
vtkCellArray* vtkInteractorStyleCutter::Lines [protected] |
Definition at line 74 of file vtkInteractorStyleCutter.h.
Referenced by Initialize(), OnLeftButtonDown(), vtkInteractorStyleCutter(), and ~vtkInteractorStyleCutter().
vtkPoints* vtkInteractorStyleCutter::LoopPoints [protected] |
Definition at line 75 of file vtkInteractorStyleCutter.h.
Referenced by EndLoop(), vtkInteractorStyleCutter(), and ~vtkInteractorStyleCutter().