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