#include <PlaneDirectionManager.h>
Public Member Functions | |
PlaneDirectionManager (int radio, double colour[3], int opacity) | |
~PlaneDirectionManager () | |
void | SetRenderer (vtkRenderer *render) |
void | SetVectors (std::vector< double > lstPointsx, std::vector< double > lstPointsy, std::vector< double > lstPointsz) |
void | UpdateDirections () throw (std::exception) |
std::vector < PlaneDirectionManagerData * > | GetPlanesData () |
void | addRemoveActor (int index, bool addremove) |
void | changeColor (int index, double r, double g, double b) |
PlaneDirectionManagerData * | GetPlaneDirectionManagerData (int id) |
void | WriteInformation (std::string filename, double *spc=NULL) |
void | SetArrowSize (int arrowsize) |
Private Member Functions | |
void | RemoveAllActorsFromIndex (int n=0) throw (std::exception) |
void | UpdateVectors () throw (std::exception) |
void | UpdateActors () |
void | AddActors () |
Private Attributes | |
std::vector< double > | _lstPointsx |
std::vector< double > | _lstPointsy |
std::vector< double > | _lstPointsz |
std::vector < PlaneDirectionManagerData * > | _vectdata |
vtkRenderer * | _render |
int | _radio |
double * | _colour |
int | _opacity |
Definition at line 14 of file PlaneDirectionManager.h.
PlaneDirectionManager::PlaneDirectionManager | ( | int | radio, | |
double | colour[3], | |||
int | opacity | |||
) |
PlaneDirectionManager::~PlaneDirectionManager | ( | ) |
Definition at line 15 of file PlaneDirectionManager.cxx.
References RemoveAllActorsFromIndex().
00015 { 00016 RemoveAllActorsFromIndex(); 00017 }
void PlaneDirectionManager::AddActors | ( | ) | [private] |
Definition at line 35 of file PlaneDirectionManager.cxx.
References _render, and _vectdata.
Referenced by UpdateDirections().
00035 { 00036 for(int i = 0; i < _vectdata.size();i++){ 00037 _render->AddViewProp (_vectdata[i]->GetActor()); 00038 } 00039 }
void PlaneDirectionManager::addRemoveActor | ( | int | index, | |
bool | addremove | |||
) |
Definition at line 83 of file PlaneDirectionManager.cxx.
References _render, and _vectdata.
Referenced by PlaneDirectionViewer::addRemoveActor().
00083 { 00084 00085 if(index < _vectdata.size()){ 00086 if(addremove){ 00087 _render->AddViewProp (_vectdata[index]->GetActor()); 00088 }else{ 00089 _render->RemoveViewProp (_vectdata[index]->GetActor()); 00090 } 00091 } 00092 }
void PlaneDirectionManager::changeColor | ( | int | index, | |
double | r, | |||
double | g, | |||
double | b | |||
) |
Definition at line 94 of file PlaneDirectionManager.cxx.
References PlaneDirectionManagerData::ChangeColour(), and GetPlaneDirectionManagerData().
Referenced by PlaneDirectionViewer::changeColor().
00095 { 00096 GetPlaneDirectionManagerData(index)->ChangeColour(r,g,b); 00097 }
PlaneDirectionManagerData * PlaneDirectionManager::GetPlaneDirectionManagerData | ( | int | id | ) |
Definition at line 99 of file PlaneDirectionManager.cxx.
References _vectdata.
Referenced by changeColor().
00100 { 00101 return _vectdata[id]; 00102 }
std::vector<PlaneDirectionManagerData*> PlaneDirectionManager::GetPlanesData | ( | ) | [inline] |
Definition at line 25 of file PlaneDirectionManager.h.
References _vectdata.
Referenced by PlaneDirectionViewer::UpdateDirections().
00025 { 00026 return _vectdata; 00027 }
void PlaneDirectionManager::RemoveAllActorsFromIndex | ( | int | n = 0 |
) | throw (std::exception) [private] |
Definition at line 40 of file PlaneDirectionManager.cxx.
Referenced by UpdateVectors(), and ~PlaneDirectionManager().
00040 { 00041 /*due to incompleate set of points to create the plane 00042 */ 00043 if(_render==NULL){ 00044 throw std::exception(); 00045 } 00046 for(int i = _vectdata.size()-1; i >= n;i--){ 00047 _render->RemoveViewProp(_vectdata[i]->GetActor()); 00048 delete _vectdata[i]; 00049 _vectdata.pop_back(); 00050 } 00051 }
void PlaneDirectionManager::SetArrowSize | ( | int | arrowsize | ) |
Definition at line 148 of file PlaneDirectionManager.cxx.
References _radio.
Referenced by PlaneDirectionViewer::SetArrowSize().
00148 { 00149 _radio = arrowsize; 00150 }
void PlaneDirectionManager::SetRenderer | ( | vtkRenderer * | render | ) |
Definition at line 19 of file PlaneDirectionManager.cxx.
References _render.
Referenced by PlaneDirectionViewer::SetRenderer().
00019 { 00020 _render = render; 00021 }
void PlaneDirectionManager::SetVectors | ( | std::vector< double > | lstPointsx, | |
std::vector< double > | lstPointsy, | |||
std::vector< double > | lstPointsz | |||
) |
Definition at line 22 of file PlaneDirectionManager.cxx.
References _lstPointsx, _lstPointsy, and _lstPointsz.
Referenced by PlaneDirectionViewer::SetVectors().
00022 { 00023 00024 _lstPointsx = lstPointsx; 00025 _lstPointsy = lstPointsy; 00026 _lstPointsz = lstPointsz; 00027 }
void PlaneDirectionManager::UpdateActors | ( | ) | [private] |
Definition at line 77 of file PlaneDirectionManager.cxx.
References _vectdata.
Referenced by UpdateDirections().
00077 { 00078 for(int i = 0; i < _vectdata.size();i++){ 00079 _vectdata[i]->UpdateActor(); 00080 } 00081 }
void PlaneDirectionManager::UpdateDirections | ( | ) | throw (std::exception) |
Definition at line 29 of file PlaneDirectionManager.cxx.
References AddActors(), UpdateActors(), and UpdateVectors().
Referenced by PlaneDirectionViewer::UpdateDirections().
00029 { 00030 UpdateVectors(); 00031 UpdateActors(); 00032 AddActors(); 00033 00034 }
void PlaneDirectionManager::UpdateVectors | ( | ) | throw (std::exception) [private] |
Definition at line 52 of file PlaneDirectionManager.cxx.
References _colour, _lstPointsx, _lstPointsy, _lstPointsz, _opacity, _radio, _vectdata, RemoveAllActorsFromIndex(), PlaneDirectionManagerData::setPoint0(), PlaneDirectionManagerData::setPoint1(), and PlaneDirectionManagerData::setPoint2().
Referenced by UpdateDirections().
00052 { 00053 PlaneDirectionManagerData* temp; 00054 bool deletelast = false; 00055 int currentdata = 0; 00056 for(int i = 0; i < _lstPointsx.size();i++){ 00057 if(i % 3 == 0){ 00058 if(_vectdata.size()>currentdata){ 00059 temp = _vectdata[currentdata]; 00060 }else{ 00061 temp = new PlaneDirectionManagerData(_radio, _colour, _opacity); 00062 _vectdata.push_back(temp); 00063 } 00064 temp->setPoint0(_lstPointsx[i],_lstPointsy[i],_lstPointsz[i]); 00065 deletelast = true; 00066 }else if(i % 3 == 1){ 00067 temp->setPoint1(_lstPointsx[i],_lstPointsy[i],_lstPointsz[i]); 00068 }else if(i % 3 == 2){ 00069 temp->setPoint2(_lstPointsx[i],_lstPointsy[i],_lstPointsz[i]); 00070 currentdata++; 00071 deletelast = false; 00072 } 00073 } 00074 RemoveAllActorsFromIndex(currentdata); 00075 }
void PlaneDirectionManager::WriteInformation | ( | std::string | filename, | |
double * | spc = NULL | |||
) |
Definition at line 104 of file PlaneDirectionManager.cxx.
References _vectdata.
Referenced by PlaneDirectionViewer::WriteInformation().
00104 { 00105 FILE *ff; 00106 ff = fopen( filename.c_str() , "w+" ); 00107 if(spc ==NULL){ 00108 spc = new double[3]; 00109 spc[0] = 1; 00110 spc[1] = 1; 00111 spc[2] = 1; 00112 } 00113 if (ff!=NULL) 00114 { 00115 for(int i = 0; i < _vectdata.size();i++){ 00116 00117 double* p0 = _vectdata[i]->getPoint0(); 00118 double* p1 = _vectdata[i]->getPoint1(); 00119 double* p2 = _vectdata[i]->getPoint2(); 00120 double* dir = _vectdata[i]->GetDirection(); 00121 00122 double p0x = p0[0]/spc[0]; 00123 double p0y = p0[1]/spc[1]; 00124 double p0z = p0[2]/spc[2]; 00125 00126 double p1x = p1[0]/spc[0]; 00127 double p1y = p1[1]/spc[1]; 00128 double p1z = p1[2]/spc[2]; 00129 00130 double p2x = p2[0]/spc[0]; 00131 double p2y = p2[1]/spc[1]; 00132 double p2z = p2[2]/spc[2]; 00133 00134 double dirx = dir[0]/spc[0]; 00135 double diry = dir[1]/spc[1]; 00136 double dirz = dir[2]/spc[2]; 00137 00138 fprintf(ff,"Dir%d\n",i); 00139 fprintf(ff,"\tP0[%f, %f, %f]\tP1[%f, %f, %f]\tP2[%f, %f, %f]\tDir[%f, %f, %f] \n", 00140 p0x,p0y,p0z, p1x,p1y,p1z, p2x,p2y,p2z, dirx,diry,dirz); 00141 } 00142 fclose(ff); 00143 } else { // else ff 00144 printf("PlaneDirectionManager::WriteInformation ...Error... creating file"); 00145 } //ff 00146 }
double* PlaneDirectionManager::_colour [private] |
Definition at line 55 of file PlaneDirectionManager.h.
Referenced by PlaneDirectionManager(), and UpdateVectors().
std::vector<double> PlaneDirectionManager::_lstPointsx [private] |
Definition at line 40 of file PlaneDirectionManager.h.
Referenced by SetVectors(), and UpdateVectors().
std::vector<double> PlaneDirectionManager::_lstPointsy [private] |
Definition at line 41 of file PlaneDirectionManager.h.
Referenced by SetVectors(), and UpdateVectors().
std::vector<double> PlaneDirectionManager::_lstPointsz [private] |
Definition at line 42 of file PlaneDirectionManager.h.
Referenced by SetVectors(), and UpdateVectors().
int PlaneDirectionManager::_opacity [private] |
Definition at line 56 of file PlaneDirectionManager.h.
Referenced by PlaneDirectionManager(), and UpdateVectors().
int PlaneDirectionManager::_radio [private] |
Definition at line 54 of file PlaneDirectionManager.h.
Referenced by PlaneDirectionManager(), SetArrowSize(), and UpdateVectors().
vtkRenderer* PlaneDirectionManager::_render [private] |
Definition at line 52 of file PlaneDirectionManager.h.
Referenced by AddActors(), addRemoveActor(), and SetRenderer().
std::vector<PlaneDirectionManagerData*> PlaneDirectionManager::_vectdata [private] |
Definition at line 44 of file PlaneDirectionManager.h.
Referenced by AddActors(), addRemoveActor(), GetPlaneDirectionManagerData(), GetPlanesData(), UpdateActors(), UpdateVectors(), and WriteInformation().