#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 36 of file PlaneDirectionManager.cxx.
References _render, and _vectdata.
Referenced by UpdateDirections().
00036 { 00037 int i; 00038 for(i = 0; i < (int)_vectdata.size();i++){ 00039 _render->AddViewProp (_vectdata[i]->GetActor()); 00040 } 00041 }
void PlaneDirectionManager::addRemoveActor | ( | int | index, | |
bool | addremove | |||
) |
Definition at line 90 of file PlaneDirectionManager.cxx.
References _render, and _vectdata.
Referenced by PlaneDirectionViewer::addRemoveActor().
00091 { 00092 if(index < (int)_vectdata.size()){ 00093 if(addremove){ 00094 _render->AddViewProp (_vectdata[index]->GetActor()); 00095 }else{ 00096 _render->RemoveViewProp (_vectdata[index]->GetActor()); 00097 } 00098 } 00099 }
void PlaneDirectionManager::changeColor | ( | int | index, | |
double | r, | |||
double | g, | |||
double | b | |||
) |
Definition at line 101 of file PlaneDirectionManager.cxx.
References PlaneDirectionManagerData::ChangeColour(), and GetPlaneDirectionManagerData().
Referenced by PlaneDirectionViewer::changeColor().
00102 { 00103 GetPlaneDirectionManagerData(index)->ChangeColour(r,g,b); 00104 }
PlaneDirectionManagerData * PlaneDirectionManager::GetPlaneDirectionManagerData | ( | int | id | ) |
Definition at line 106 of file PlaneDirectionManager.cxx.
References _vectdata.
Referenced by changeColor().
00107 { 00108 return _vectdata[id]; 00109 }
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 43 of file PlaneDirectionManager.cxx.
Referenced by UpdateVectors(), and ~PlaneDirectionManager().
00043 { 00044 /*due to incompleate set of points to create the plane 00045 */ 00046 if(_render==NULL){ 00047 throw std::exception(); 00048 } 00049 for(int i = _vectdata.size()-1; i >= n;i--){ 00050 _render->RemoveViewProp(_vectdata[i]->GetActor()); 00051 delete _vectdata[i]; 00052 _vectdata.pop_back(); 00053 } 00054 }
void PlaneDirectionManager::SetArrowSize | ( | int | arrowsize | ) |
Definition at line 156 of file PlaneDirectionManager.cxx.
References _radio.
Referenced by PlaneDirectionViewer::SetArrowSize().
00156 { 00157 _radio = arrowsize; 00158 }
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 81 of file PlaneDirectionManager.cxx.
References _vectdata.
Referenced by UpdateDirections().
00082 { 00083 int i; 00084 for(i = 0; i < (int)_vectdata.size();i++) 00085 { 00086 _vectdata[i]->UpdateActor(); 00087 } 00088 }
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 55 of file PlaneDirectionManager.cxx.
References _colour, _lstPointsx, _lstPointsy, _lstPointsz, _opacity, _radio, _vectdata, RemoveAllActorsFromIndex(), PlaneDirectionManagerData::setPoint0(), PlaneDirectionManagerData::setPoint1(), and PlaneDirectionManagerData::setPoint2().
Referenced by UpdateDirections().
00055 { 00056 PlaneDirectionManagerData* temp; 00057 bool deletelast = false; 00058 int currentdata = 0; 00059 int i; 00060 for(i = 0; i < (int)_lstPointsx.size();i++){ 00061 if(i % 3 == 0){ 00062 if((int)_vectdata.size()>currentdata){ 00063 temp = _vectdata[currentdata]; 00064 }else{ 00065 temp = new PlaneDirectionManagerData(_radio, _colour, _opacity); 00066 _vectdata.push_back(temp); 00067 } 00068 temp->setPoint0(_lstPointsx[i],_lstPointsy[i],_lstPointsz[i]); 00069 deletelast = true; 00070 }else if(i % 3 == 1){ 00071 temp->setPoint1(_lstPointsx[i],_lstPointsy[i],_lstPointsz[i]); 00072 }else if(i % 3 == 2){ 00073 temp->setPoint2(_lstPointsx[i],_lstPointsy[i],_lstPointsz[i]); 00074 currentdata++; 00075 deletelast = false; 00076 } 00077 } 00078 RemoveAllActorsFromIndex(currentdata); 00079 }
void PlaneDirectionManager::WriteInformation | ( | std::string | filename, | |
double * | spc = NULL | |||
) |
Definition at line 111 of file PlaneDirectionManager.cxx.
References _vectdata.
Referenced by PlaneDirectionViewer::WriteInformation().
00111 { 00112 FILE *ff; 00113 ff = fopen( filename.c_str() , "w+" ); 00114 if(spc ==NULL){ 00115 spc = new double[3]; 00116 spc[0] = 1; 00117 spc[1] = 1; 00118 spc[2] = 1; 00119 } 00120 if (ff!=NULL) 00121 { 00122 int i; 00123 for(i = 0; i < (int)_vectdata.size();i++){ 00124 00125 double* p0 = _vectdata[i]->getPoint0(); 00126 double* p1 = _vectdata[i]->getPoint1(); 00127 double* p2 = _vectdata[i]->getPoint2(); 00128 double* dir = _vectdata[i]->GetDirection(); 00129 00130 double p0x = p0[0]/spc[0]; 00131 double p0y = p0[1]/spc[1]; 00132 double p0z = p0[2]/spc[2]; 00133 00134 double p1x = p1[0]/spc[0]; 00135 double p1y = p1[1]/spc[1]; 00136 double p1z = p1[2]/spc[2]; 00137 00138 double p2x = p2[0]/spc[0]; 00139 double p2y = p2[1]/spc[1]; 00140 double p2z = p2[2]/spc[2]; 00141 00142 double dirx = dir[0]/spc[0]; 00143 double diry = dir[1]/spc[1]; 00144 double dirz = dir[2]/spc[2]; 00145 00146 fprintf(ff,"Dir%d\n",i); 00147 fprintf(ff,"\tP0[%f, %f, %f]\tP1[%f, %f, %f]\tP2[%f, %f, %f]\tDir[%f, %f, %f] \n", 00148 p0x,p0y,p0z, p1x,p1y,p1z, p2x,p2y,p2z, dirx,diry,dirz); 00149 } 00150 fclose(ff); 00151 } else { // else ff 00152 printf("PlaneDirectionManager::WriteInformation ...Error... creating file"); 00153 } //ff 00154 }
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().