#include <BFLWingedEdge.h>
Public Member Functions | |
| BFLWingedEdge (Long_t ngens=0) | |
| ~BFLWingedEdge () | |
| virtual void | SetGenerators (TObjArray *gens) |
| Long_t | Size (void) |
| void | Load (const Char_t *filename) |
| void | Save (const Char_t *filename="default.vor") |
| void | LoadNodalSet (const Char_t *filename) |
| void | SaveNodalSet (const Char_t *filename="default-nodes.vor") |
| void | LoadANSYSLookupTable (BfldGrid::Grid_t grid) |
| virtual TObjArray * | GetGenerators (void) |
| virtual Int_t | GetEdgeID (Int_t EdgeSlot) const |
| virtual Int_t | GetRightPolyg (Int_t EdgeSlot) const |
| virtual Int_t | GetLeftPolyg (Int_t EdgeSlot) const |
| virtual Int_t | GetStartVtx (Int_t EdgeSlot) const |
| virtual Int_t | GetEndVtx (Int_t EdgeSlot) const |
| virtual Int_t | GetCwPredecessor (Int_t EdgeSlot) const |
| virtual Int_t | GetCcwPredecessor (Int_t EdgeSlot) const |
| virtual Int_t | GetCwSuccessor (Int_t EdgeSlot) const |
| virtual Int_t | GetCcwSuccessor (Int_t EdgeSlot) const |
| virtual Int_t | GetPolygID (Int_t PolySlot) const |
| virtual Int_t | GetEdgeAroundPolyg (Int_t PolySlot) const |
| virtual BFLNode * | GetVtx (Int_t VtxSlot) const |
| virtual Int_t | GetVtxID (Int_t VtxSlot) const |
| virtual Int_t | GetEdgeAroundVtx (Int_t VtxSlot) const |
| virtual Bool_t | GetWeight (Int_t VtxSlot) const |
| virtual Float_t | GetX (Int_t VtxSlot) const |
| virtual Float_t | GetY (Int_t VtxSlot) const |
| virtual Int_t | GetNofPolygons (void) |
| virtual Int_t | GetNofVertices (void) |
| virtual Int_t | GetNofEdges (void) |
| virtual TObjArray * | GetPolygons (void) |
| virtual TObjArray * | GetVertices (void) |
| virtual TObjArray * | GetEdges (void) |
| virtual BFLPolyg * | GetPolygObj (Int_t slot) |
| virtual BFLVtx * | GetVtxObj (Int_t slot) |
| virtual BFLEdge * | GetEdgeObj (Int_t slot) |
| virtual BFLAnsysLookup | GetAnsysLookupTable (void) |
| virtual Int_t | GetLastPolygID (void) |
| virtual Int_t | GetLastVtxID (void) |
| virtual Int_t | GetLastEdgeID (void) |
| virtual Int_t | PolygonToGenerator (Int_t polygon) const |
| virtual Int_t | GeneratorToPolygon (Int_t generator) const |
| virtual Float_t | GetGeneratorX (Int_t igen) const |
| virtual Float_t | GetGeneratorY (Int_t igen) const |
| virtual Int_t | GetGeneratorID (Int_t igen) const |
| void | SetEdge (Int_t edge) |
| virtual void | SetPolyg (Int_t polyg) |
| virtual void | SetVtx (Int_t vtx) |
| virtual void | SetEdgeID (Int_t EdgeSlot, Int_t EdgeID) |
| virtual void | SetRightPolyg (Int_t EdgeSlot, Int_t rpolyg) |
| virtual void | SetLeftPolyg (Int_t EdgeSlot, Int_t lpolyg) |
| virtual void | SetStartVtx (Int_t EdgeSlot, Int_t svtx) |
| virtual void | SetEndVtx (Int_t EdgeSlot, Int_t evtx) |
| virtual void | SetCwPredecessor (Int_t EdgeSlot, Int_t cwpred) |
| virtual void | SetCcwPredecessor (Int_t EdgeSlot, Int_t ccwpred) |
| virtual void | SetCwSuccessor (Int_t EdgeSlot, Int_t cwsucc) |
| virtual void | SetCcwSuccessor (Int_t EdgeSlot, Int_t ccwsucc) |
| virtual void | SetPolygID (Int_t PolySlot, Int_t PolyID) |
| virtual void | SetEdgeAroundPolyg (Int_t PolySlot, Int_t edge) |
| virtual void | SetVtxID (Int_t VtxSlot, Int_t VtxID) |
| virtual void | SetEdgeAroundVtx (Int_t VtxSlot, Int_t edge) |
| virtual void | SetWeight (Int_t VtxSlot, Bool_t weight) |
| virtual void | SetX (Int_t VtxSlot, Float_t x) |
| virtual void | SetY (Int_t VtxSlot, Float_t y) |
| virtual void | SetPolygObj (BFLPolyg *polyg, Int_t slot) |
| virtual void | SetVtxObj (BFLVtx *vtx, Int_t slot) |
| virtual void | SetEdgeObj (BFLEdge *edge, Int_t slot) |
| void | AddEdge (Int_t EdgeSlot) |
| void | AddPolyg (Int_t PolySlot) |
| void | AddVtx (Int_t VtxSlot) |
| virtual void | DeleteVtx (Int_t vtx) |
| virtual void | DeleteEdge (Int_t edge) |
| virtual void | DeletePolygon (Int_t polyg) |
| void | PrintVoronoi (Int_t PrintWhat) |
| void | PrintPolygons (void) |
| void | PrintVertices (void) |
| void | PrintEdges (void) |
| void | Plot (void) |
| void | AddAvailableEdgeID (Int_t id) |
| void | AddAvailableVtxID (Int_t id) |
| Int_t | FirstAvailableVtxID (void) const |
| Int_t | FirstAvailableEdgeID (void) const |
| void | DeleteFirstAvailableVtxID (void) |
| void | DeleteFirstAvailableEdgeID (void) |
| Int_t | MaxAvailableEdgeID (void) const |
| Int_t | MaxAvailableVtxID (void) const |
Private Attributes | |
| Int_t | fNEdges |
| Int_t | fNVertices |
| Int_t | fNPolygons |
| TObjArray * | fEdges |
| TObjArray * | fVertices |
| TObjArray * | fPolygons |
| TObjArray * | fGenerators |
| TIntList * | fAvailableVtxIDs |
| TIntList * | fAvailableEdgeIDs |
| BFLAnsysLookup * | fANSYSTable |
|
|
Definition at line 21 of file BFLWingedEdge.cxx. 00021 : 00022 fNPolygons(0) 00023 { 00024 00025 // number of edges/vertices/polygons is estimated from 00026 //Euler's formula. --See Okabe/Boots/Sugihara p. 217. 00027 00028 00029 //fEdges = new TObjArray(3*ngens + 10); 00030 //fVertices = new TObjArray(2*ngens + 10); 00031 //fPolygons = new TObjArray(ngens + 10); 00032 // Apparently this is not large enough in some cases, although it's 00033 // hard to see why this should be so, except perhaps in a truly 00034 // pathological case. Nonetheless, here goes... 00035 00036 fEdges = new TObjArray(3*ngens + 100); 00037 fVertices = new TObjArray(2*ngens + 100); 00038 fPolygons = new TObjArray(ngens + 100); 00039 00040 00041 fAvailableVtxIDs = new TIntList(); 00042 fAvailableEdgeIDs = new TIntList(); 00043 00044 fGenerators = 0; 00045 00046 fANSYSTable = 0; 00047 }
|
|
|
Definition at line 50 of file BFLWingedEdge.cxx. References fEdges, fGenerators, fPolygons, and fVertices. 00051 {
00052 fEdges->Delete();
00053 delete fEdges;
00054
00055 fVertices->Delete();
00056 delete fVertices;
00057
00058 fPolygons->Delete();
00059 delete fPolygons;
00060
00061 if(fGenerators) {
00062 fGenerators->Delete();
00063 delete fGenerators;
00064 }
00065
00066 delete fAvailableVtxIDs;
00067 delete fAvailableEdgeIDs;
00068 }
|
|
|
Definition at line 148 of file BFLWingedEdge.cxx. References fAvailableEdgeIDs. Referenced by BFLVoronoiMaker::AddDistantGenerators(), and BFLVoronoiMaker::DeleteSubstructure(). 00149 {
00150 fAvailableEdgeIDs -> Add(id); // if it doesn't already exists
00151 fAvailableEdgeIDs -> Sort();
00152 }
|
|
|
Definition at line 101 of file BFLWingedEdge.cxx. References fAvailableVtxIDs. Referenced by BFLVoronoiMaker::AddDistantGenerators(), and BFLVoronoiMaker::DeleteSubstructure(). 00102 {
00103 fAvailableVtxIDs -> Add(id);
00104 fAvailableVtxIDs -> Sort();
00105 }
|
|
|
Definition at line 71 of file BFLWingedEdge.cxx. References fEdges, and SetEdgeID(). Referenced by BFLVoronoiMaker::AddDistantGenerators(), and BFLVoronoiMaker::AddNewEdge(). 00071 {
00072
00073 fEdges->AddAtAndExpand(new BFLEdge(EdgeSlot), EdgeSlot);
00074
00075 // The slot of this object at its container is by default its EdgeID
00076 Int_t EdgeID = EdgeSlot;
00077 SetEdgeID(EdgeSlot,EdgeID);
00078 }
|
|
|
Definition at line 81 of file BFLWingedEdge.cxx. References fPolygons, and SetPolygID(). Referenced by BFLVoronoiMaker::AddDistantGenerators(), and BFLVoronoiMaker::AddNewPolyg(). 00081 {
00082
00083 fPolygons->AddAtAndExpand(new BFLPolyg(PolySlot), PolySlot);
00084
00085 // The slot of this object at its container is by default its PolyID
00086 Int_t PolyID = PolySlot;
00087 SetPolygID(PolySlot,PolyID);
00088 }
|
|
|
Definition at line 91 of file BFLWingedEdge.cxx. References fVertices, and SetVtxID(). Referenced by BFLVoronoiMaker::AddDistantGenerators(), and BFLVoronoiMaker::AddNewVtx(). 00091 {
00092
00093 fVertices->AddAtAndExpand(new BFLVtx(VtxSlot), VtxSlot);
00094
00095 // The slot of this object at its container is by default its VtxID
00096 Int_t VtxID = VtxSlot;
00097 SetVtxID(VtxSlot,VtxID);
00098 }
|
|
|
Definition at line 230 of file BFLWingedEdge.h. References fEdges. Referenced by BFLVoronoiMaker::DeleteSubstructure().
|
|
|
Definition at line 178 of file BFLWingedEdge.cxx. References TIntList::AddAt(), fAvailableEdgeIDs, TIntList::First(), TIntList::NumberOfElements(), TIntList::Remove(), and TIntList::Sort(). Referenced by BFLVoronoiMaker::AddNewEdge(). 00179 {
00180 // Removes the first available vtx id
00181
00182 Int_t NextID;
00183
00184 fAvailableEdgeIDs->Sort();
00185 if(fAvailableEdgeIDs->NumberOfElements() == 1) {
00186 NextID = fAvailableEdgeIDs->First() + 1;
00187 fAvailableEdgeIDs->AddAt(NextID,1);
00188 }
00189 fAvailableEdgeIDs->Remove( fAvailableEdgeIDs->First() );
00190 }
|
|
|
Definition at line 132 of file BFLWingedEdge.cxx. References TIntList::AddAt(), fAvailableVtxIDs, TIntList::First(), TIntList::NumberOfElements(), TIntList::Remove(), and TIntList::Sort(). Referenced by BFLVoronoiMaker::AddNewVtx(). 00133 {
00134 // Removes the first available vtx id
00135
00136 Int_t NextID;
00137
00138 fAvailableVtxIDs->Sort();
00139 if(fAvailableVtxIDs->NumberOfElements() == 1) {
00140 NextID = fAvailableVtxIDs->First() + 1;
00141 fAvailableVtxIDs->AddAt(NextID,1);
00142 }
00143 fAvailableVtxIDs->Remove( fAvailableVtxIDs->First() );
00144 }
|
|
|
Definition at line 235 of file BFLWingedEdge.h. References fPolygons.
|
|
|
Definition at line 225 of file BFLWingedEdge.h. References fVertices. Referenced by BFLVoronoiMaker::DeleteSubstructure().
|
|
|
Definition at line 155 of file BFLWingedEdge.cxx. References fAvailableEdgeIDs, TIntList::First(), and TIntList::Sort(). Referenced by BFLVoronoiMaker::AddNewEdge(). 00156 {
00157 // Returns the first available edge id to be assigned to a newly
00158 // added edge. The commends of the FirstAvailableVtxID() are
00159 // relevant.
00160
00161 Int_t edge;
00162
00163 fAvailableEdgeIDs->Sort();
00164 edge = fAvailableEdgeIDs->First();
00165 //fAvailableEdgeIDs->Remove(edge); ????
00166
00167 return edge;
00168 }
|
|
|
Definition at line 108 of file BFLWingedEdge.cxx. References fAvailableVtxIDs, TIntList::First(), and TIntList::Sort(). Referenced by BFLVoronoiMaker::AddNewVtx(). 00109 {
00110 // Returns the first availabe vertex id to be assigned to a newly
00111 // added vertex. This can not simply accomodated with a counter of
00112 // existing vertices because when we delete a Voronoi substructure,
00113 // vertices are deleted so unwanted gaps are introduced. We must
00114 // refill these gaps before assigning new vertex ids.
00115
00116 Int_t vtx;
00117
00118 fAvailableVtxIDs->Sort();
00119 vtx = fAvailableVtxIDs->First();
00120
00121 return vtx;
00122 }
|
|
|
Definition at line 138 of file BFLWingedEdge.h. Referenced by BFLVorOperator::FindCurrentPolygon(), BFLVorOperator::FindNewVtx(), and BFLInterpolation::PlanarInterpolation(). 00138 { return generator; }
|
|
|
Definition at line 131 of file BFLWingedEdge.h. Referenced by BFLInterpolation::BilinearInterpolation(). 00131 { return *fANSYSTable; }
|
|
|
Definition at line 79 of file BFLWingedEdge.h. References fEdges. Referenced by BFLVorOperator::RetrieveEdgesIncidentToVtx(), and BFLVorOperator::RetrievePolygonsIncidentToVtx().
|
|
|
Definition at line 85 of file BFLWingedEdge.h. References fEdges. Referenced by BFLVorOperator::RetrieveEdgesIncidentToVtx(), and BFLVorOperator::RetrievePolygonsIncidentToVtx().
|
|
|
Definition at line 76 of file BFLWingedEdge.h. References fEdges. Referenced by BFLVorOperator::RetrieveEdgesSurrPolygon(), and BFLVorOperator::RetrieveVtxSurrPolygon().
|
|
|
Definition at line 82 of file BFLWingedEdge.h. References fEdges. Referenced by BFLVorOperator::RetrieveEdgesSurrPolygon(), and BFLVorOperator::RetrieveVtxSurrPolygon().
|
|
|
Definition at line 91 of file BFLWingedEdge.h. References fPolygons. Referenced by BFLVoronoiMaker::RemoveRefsToDeletedEdges(), BFLVorOperator::RetrieveEdgesSurrPolygon(), and BFLVorOperator::RetrieveVtxSurrPolygon().
|
|
|
Definition at line 100 of file BFLWingedEdge.h. References fVertices. Referenced by BFLVorOperator::RetrieveEdgesIncidentToVtx(), and BFLVorOperator::RetrievePolygonsIncidentToVtx().
|
|
|
Definition at line 61 of file BFLWingedEdge.h. References fEdges.
|
|
|
Definition at line 127 of file BFLWingedEdge.h. References fEdges. Referenced by BFLVoronoiMaker::WingedEdgePatch().
|
|
|
Definition at line 119 of file BFLWingedEdge.h. Referenced by BFLVoronoiMaker::MergeDataStructures(). 00119 { return fEdges; }
|
|
|
Definition at line 73 of file BFLWingedEdge.h. References fEdges. Referenced by BFLVoronoiMaker::DeleteSubstructure(), BFLVorOperator::EdgeHasNewVtx(), BFLVorOperator::EdgeIsInsideNewPolygon(), BFLVoronoiMaker::MarkVerticesToDelete(), BFLVorOperator::RetrieveVtxSurrPolygon(), and BFLVoronoiMaker::WingedEdgePatch().
|
|
|
Definition at line 146 of file BFLWingedEdge.h. References fGenerators. Referenced by BFLInterpolation::CNInterpolation(), BFLInterpolation::NNInterpolation(), and BFLInterpolation::PlanarInterpolation(). 00146 {
00147 return ((BFLNode *)(fGenerators->At(igen-1)))->GetNodeID();
00148 }
|
|
|
Definition at line 59 of file BFLWingedEdge.h. 00059 { return fGenerators; }
|
|
|
Definition at line 140 of file BFLWingedEdge.h. References fGenerators. Referenced by BFLVorOperator::DistanceFrom(), BFLVorOperator::FindNewVtx(), BFLVorOperator::GeneratorsDist(), BFLInterpolation::PlanarInterpolation(), and BFLVorOperator::VtxIsInsideNewPolyg(). 00140 {
00141 return ((BFLNode *)(fGenerators->At(igen-1)))->GetX();
00142 }
|
|
|
Definition at line 143 of file BFLWingedEdge.h. References fGenerators. Referenced by BFLVorOperator::DistanceFrom(), BFLVorOperator::FindNewVtx(), BFLVorOperator::GeneratorsDist(), BFLInterpolation::PlanarInterpolation(), and BFLVorOperator::VtxIsInsideNewPolyg(). 00143 {
00144 return ((BFLNode *)(fGenerators->At(igen-1)))->GetY();
00145 }
|
|
|
Definition at line 135 of file BFLWingedEdge.h. References fEdges. 00135 { return fEdges->GetLast(); }
|
|
|
Definition at line 133 of file BFLWingedEdge.h. References fPolygons. 00133 { return fPolygons->GetLast(); }
|
|
|
Definition at line 134 of file BFLWingedEdge.h. References fVertices. 00134 { return fVertices->GetLast(); }
|
|
|
|
Definition at line 115 of file BFLWingedEdge.h. References fEdges. 00115 { return fEdges->GetEntries(); }
|
|
|
Definition at line 113 of file BFLWingedEdge.h. References fPolygons. Referenced by BFLInterpolation::BFLInterpolation(), and SaveNodalSet(). 00113 { return fPolygons->GetEntries(); }
|
|
|
Definition at line 114 of file BFLWingedEdge.h. References fVertices. 00114 { return fVertices->GetEntries(); }
|
|
|
Definition at line 88 of file BFLWingedEdge.h. References fPolygons.
|
|
|
Definition at line 121 of file BFLWingedEdge.h. References fPolygons.
|
|
|
Definition at line 117 of file BFLWingedEdge.h. Referenced by BFLVoronoiMaker::MergeDataStructures(). 00117 { return fPolygons; }
|
|
|
Definition at line 64 of file BFLWingedEdge.h. References fEdges. Referenced by BFLVorOperator::FindNewVtx(), BFLVorOperator::MoveToNextPolygon(), BFLInterpolation::PlanarInterpolation(), BFLVoronoiMaker::RemoveRefsToDeletedEdges(), and BFLVorOperator::RetrievePolygonsIncidentToVtx().
|
|
|
|
Definition at line 118 of file BFLWingedEdge.h. Referenced by BFLVoronoiMaker::MergeDataStructures(). 00118 { return fVertices; }
|
|
|
Definition at line 94 of file BFLWingedEdge.h. References GetX(), and GetY(). Referenced by BFLInterpolation::NNInterpolation().
|
|
|
Definition at line 97 of file BFLWingedEdge.h. References fVertices.
|
|
|
Definition at line 124 of file BFLWingedEdge.h. References fVertices. Referenced by Plot().
|
|
|
Definition at line 103 of file BFLWingedEdge.h. References fVertices. Referenced by BFLVorOperator::VtxIsInsideNewPolyg().
|
|
|
Definition at line 106 of file BFLWingedEdge.h. References fVertices, and BFLNode::GetX(). Referenced by GetVtx().
|
|
|
Definition at line 109 of file BFLWingedEdge.h. References fVertices, and BFLNode::GetY(). Referenced by GetVtx().
|
|
|
Definition at line 375 of file BFLWingedEdge.cxx. References fAvailableEdgeIDs, fAvailableVtxIDs, fEdges, fPolygons, fVertices, ID, SetCcwPredecessor(), SetCcwSuccessor(), SetCwPredecessor(), SetCwSuccessor(), SetEdge(), SetEdgeAroundPolyg(), SetEdgeAroundVtx(), SetEndVtx(), SetLeftPolyg(), SetPolyg(), SetRightPolyg(), SetStartVtx(), SetVtx(), SetWeight(), SetX(), and SetY(). Referenced by BFLHandler::BFLHandler(). 00376 {
00377 Int_t MaxEdge, MaxVertex, MaxPolygon;
00378 Int_t ID, LeftPolyg, RightPolyg, StartVtx, EndVtx;
00379 Int_t CwSuccessor, CcwSuccessor;
00380 Int_t CwPredecessor, CcwPredecessor;
00381 Int_t EdgeAroundVtx, EdgeAroundPolyg, wght;
00382 Float_t X, Y;
00383 ifstream WEFILE(filename,std::ios::in);
00384
00385 // delete old Voronoi diagram
00386 if(fEdges) {
00387 fEdges->Delete();
00388 delete fEdges;
00389 }
00390 if(fVertices) {
00391 fVertices->Delete();
00392 delete fVertices;
00393 }
00394 if(fPolygons) {
00395 fPolygons->Delete();
00396 delete fPolygons;
00397 }
00398 if(fAvailableVtxIDs) delete fAvailableVtxIDs;
00399 if(fAvailableEdgeIDs) delete fAvailableEdgeIDs;
00400
00401 // allocate new containers
00402 fEdges = new TObjArray(100);
00403 fVertices = new TObjArray(100);
00404 fPolygons = new TObjArray(100);
00405 fAvailableVtxIDs = new TIntList();
00406 fAvailableEdgeIDs = new TIntList();
00407
00408 // -------------------- loading edges
00409 WEFILE >> MaxEdge;
00410 do {
00411 WEFILE >> ID;
00412 WEFILE >> LeftPolyg >> RightPolyg;
00413 WEFILE >> StartVtx >> EndVtx;
00414 WEFILE >> CwSuccessor >> CcwSuccessor;
00415 WEFILE >> CwPredecessor >> CcwPredecessor;
00416
00417 SetEdge(ID);
00418 SetRightPolyg(ID,RightPolyg);
00419 SetLeftPolyg(ID,LeftPolyg);
00420 SetStartVtx(ID,StartVtx);
00421 SetEndVtx(ID,EndVtx);
00422 SetCwPredecessor(ID,CwPredecessor);
00423 SetCcwPredecessor(ID,CcwPredecessor);
00424 SetCwSuccessor(ID,CwSuccessor);
00425 SetCcwSuccessor(ID,CcwSuccessor);
00426
00427 } while(ID != MaxEdge);
00428
00429 // -------------------- loading vertices
00430 WEFILE >> MaxVertex;
00431 do {
00432 WEFILE >> ID;
00433 WEFILE >> EdgeAroundVtx;
00434 WEFILE >> wght;
00435 WEFILE >> X >> Y;
00436
00437 SetVtx(ID);
00438 SetEdgeAroundVtx(ID,EdgeAroundVtx);
00439 if(wght) SetWeight(ID,kTRUE);
00440 else SetWeight(ID,kFALSE );
00441 SetX(ID,X);
00442 SetY(ID,Y);
00443 } while(ID != MaxVertex);
00444
00445 // -------------------- loading polygons
00446 WEFILE >> MaxPolygon;
00447 do {
00448 WEFILE >> ID;
00449 WEFILE >> EdgeAroundPolyg;
00450
00451 SetPolyg(ID);
00452 SetEdgeAroundPolyg(ID,EdgeAroundPolyg);
00453 } while(ID != MaxPolygon);
00454 }
|
|
|
Definition at line 520 of file BFLWingedEdge.cxx. References fANSYSTable. 00521 {
00522 if(fANSYSTable) delete fANSYSTable;
00523 fANSYSTable = new BFLAnsysLookup(grid);
00524 }
|
|
|
Definition at line 476 of file BFLWingedEdge.cxx. References fGenerators. Referenced by BFLHandler::BFLHandler(). 00477 {
00478 ifstream NSFILE(filename,std::ios::in);
00479 Int_t igenerator, NGens, nID, VorCell;
00480 Float_t x, y;
00481 Int_t VorCellLast = -999;
00482
00483 fGenerators = new TObjArray(100);
00484
00485 NSFILE >> NGens;
00486 for(igenerator = 0; igenerator < NGens; igenerator++) {
00487
00488 NSFILE >> nID >> VorCell >> x >> y;
00489 if (VorCell != VorCellLast)
00490 fGenerators->AddAtAndExpand(new BFLNode(nID,x,y),VorCell-1);
00491 VorCellLast = VorCell;
00492 }
00493 }
|
|
|
Definition at line 171 of file BFLWingedEdge.cxx. References fAvailableEdgeIDs, TIntList::Last(), and TIntList::Sort(). 00172 {
00173 fAvailableEdgeIDs->Sort();
00174 return fAvailableEdgeIDs->Last();
00175 }
|
|
|
Definition at line 125 of file BFLWingedEdge.cxx. References fAvailableVtxIDs, TIntList::Last(), and TIntList::Sort(). 00126 {
00127 fAvailableVtxIDs->Sort();
00128 return fAvailableVtxIDs->Last();
00129 }
|
|
|
Definition at line 279 of file BFLWingedEdge.cxx. References fEdges, BFLEdge::GetEndVtx(), BFLEdge::GetStartVtx(), GetVtxObj(), BFLVtx::GetX(), and BFLVtx::GetY(). 00280 {
00281 // This method generates a C macro that plots the Voronoi diagram
00282 // and its generators on a ROOT Canvas.
00283 //
00284 ofstream MACRO("VoronPlot.C",std::ios::out);
00285
00286 MACRO << "{" << endl;
00287 MACRO << "gROOT->Reset();" << endl;
00288
00289 MACRO << "TCanvas * c = new TCanvas(\"c\",\"Vor\",20,20,800,600);" << endl;
00290 MACRO << "c->Range(-3000.,-3000.,3000.,3000.);" << endl;
00291
00292 MACRO << "// Plotting Voronoi diagram " << endl;
00293 MACRO << "TLine * line = new TLine();" << endl;
00294 MACRO << "line->SetLineColor(9);" << endl;
00295
00296 TIter next(fEdges);
00297 BFLEdge * edge;
00298 while( (edge = (BFLEdge *)next()) ) {
00299
00300 Int_t svtxID = edge->GetStartVtx();
00301 Int_t evtxID = edge->GetEndVtx();
00302
00303 BFLVtx * Svtx = GetVtxObj(svtxID);
00304 BFLVtx * Evtx = GetVtxObj(evtxID);
00305
00306 Float_t xs = Svtx->GetX();
00307 Float_t ys = Svtx->GetY();
00308 Float_t xe = Evtx->GetX();
00309 Float_t ye = Evtx->GetY();
00310
00311 MACRO << "line->DrawLine(" << xs << "," << ys << ","
00312 << xe << "," << ye << ");" << endl;
00313 }
00314
00315 MACRO << "}" << endl;
00316 }
|
|
|
Definition at line 137 of file BFLWingedEdge.h. Referenced by BFLVorOperator::FindCurrentPolygon(), BFLInterpolation::PlanarInterpolation(), and BFLVorOperator::VtxIsInsideNewPolyg(). 00137 { return polygon; }
|
|
|
Definition at line 193 of file BFLWingedEdge.cxx. References fEdges, BFLEdge::GetCcwPredecessor(), BFLEdge::GetCcwSuccessor(), BFLEdge::GetCwPredecessor(), BFLEdge::GetCwSuccessor(), BFLEdge::GetEdgeID(), BFLEdge::GetEndVtx(), BFLEdge::GetLeftPolyg(), BFLEdge::GetRightPolyg(), and BFLEdge::GetStartVtx(). Referenced by PrintVoronoi(). 00194 {
00195 TIter next(fEdges);
00196 BFLEdge * edge;
00197
00198 cout << "\n************ PRINTING VORONOI EDGES *************" << endl;
00199
00200 while( (edge = (BFLEdge *)next()) ) {
00201
00202 cout << "* -------------- Edge id : "<< edge->GetEdgeID() << endl;
00203 cout << "*Left Polygon......" << edge->GetLeftPolyg() << endl;
00204 cout << "*Right Polygon....." << edge->GetRightPolyg() << endl;
00205 cout << "*Start Vtx........." << edge->GetStartVtx() << endl;
00206 cout << "*End Vtx..........." << edge->GetEndVtx() << endl;
00207 cout << "*CW Successor......" << edge->GetCwSuccessor() << endl;
00208 cout << "*CCW Successor....." << edge->GetCcwSuccessor() << endl;
00209 cout << "*CW Predecessor...." << edge->GetCwPredecessor() << endl;
00210 cout << "*CCW Predecessor..." << edge->GetCcwPredecessor()<< endl;
00211 }
00212 cout << endl;
00213 delete edge;
00214 }
|
|
|
Definition at line 241 of file BFLWingedEdge.cxx. References fPolygons, BFLPolyg::GetEdgeAroundPolyg(), and BFLPolyg::GetPolygID(). Referenced by PrintVoronoi(). 00242 {
00243 TIter next(fPolygons);
00244 BFLPolyg * polyg;
00245
00246 cout << "\n********** PRINTING VORONOI POLYGONS ***********" << endl;
00247
00248 while( (polyg = (BFLPolyg *)next()) ) {
00249
00250 cout << "* ----------- Polyg id : "<< polyg->GetPolygID() << endl;
00251 cout << "*Edge Around...." << polyg->GetEdgeAroundPolyg() << endl;
00252 }
00253 cout << endl;
00254 delete polyg;
00255 }
|
|
|
Definition at line 217 of file BFLWingedEdge.cxx. References fVertices, BFLVtx::GetEdgeAroundVtx(), BFLVtx::GetVtxID(), BFLVtx::GetWeight(), BFLVtx::GetX(), and BFLVtx::GetY(). Referenced by PrintVoronoi(). 00218 {
00219 TIter next(fVertices);
00220 BFLVtx * vtx;
00221 char wght;
00222
00223 cout << "\n********** PRINTING VORONOI VERTICES ***********" << endl;
00224
00225 while( (vtx = (BFLVtx *)next()) ) {
00226
00227 if(vtx->GetWeight()) wght = 'T';
00228 else wght = 'F';
00229
00230 cout << "* -------------- Vtx id : "<< vtx->GetVtxID() << endl;
00231 cout << "*Incident Edge...." << vtx->GetEdgeAroundVtx() << endl;
00232 cout << "*Vertex Weight...." << wght << endl;
00233 cout << "*Vertex X........." << vtx->GetX() << endl;
00234 cout << "*Vertex Y........." << vtx->GetY() << endl;
00235 }
00236 cout << endl;
00237 delete vtx;
00238 }
|
|
|
Definition at line 258 of file BFLWingedEdge.cxx. References PrintEdges(), PrintPolygons(), and PrintVertices(). 00259 {
00260 switch(PrintWhat){
00261 case(kEDGES):
00262 PrintEdges();
00263 break;
00264 case(kVERTICES):
00265 PrintVertices();
00266 break;
00267 case(kPOLYGONS):
00268 PrintPolygons();
00269 break;
00270 case(kALL):
00271 PrintEdges();
00272 PrintVertices();
00273 PrintPolygons();
00274 break;
00275 }
00276 }
|
|
|
Definition at line 319 of file BFLWingedEdge.cxx. References fEdges, fPolygons, fVertices, BFLEdge::GetCcwPredecessor(), BFLEdge::GetCcwSuccessor(), BFLEdge::GetCwPredecessor(), BFLEdge::GetCwSuccessor(), BFLPolyg::GetEdgeAroundPolyg(), BFLVtx::GetEdgeAroundVtx(), BFLEdge::GetEdgeID(), BFLEdge::GetEndVtx(), BFLEdge::GetLeftPolyg(), BFLPolyg::GetPolygID(), BFLEdge::GetRightPolyg(), BFLEdge::GetStartVtx(), BFLVtx::GetVtxID(), BFLVtx::GetWeight(), BFLVtx::GetX(), and BFLVtx::GetY(). 00320 {
00321 ofstream WEFILE(filename,std::ios::out);
00322
00323 // -------------------- saving edges
00324 TIter nexte(fEdges);
00325 BFLEdge * edge;
00326
00327 WEFILE << fEdges->GetLast() << endl;
00328 while( (edge = (BFLEdge *)nexte()) ) {
00329
00330 WEFILE << edge->GetEdgeID() << endl;
00331 WEFILE << edge->GetLeftPolyg() << "\t\t"
00332 << edge->GetRightPolyg() << endl;
00333 WEFILE << edge->GetStartVtx() << "\t\t"
00334 << edge->GetEndVtx() << endl;
00335 WEFILE << edge->GetCwSuccessor() << "\t\t"
00336 << edge->GetCcwSuccessor() << endl;
00337 WEFILE << edge->GetCwPredecessor() << "\t\t"
00338 << edge->GetCcwPredecessor() << endl;
00339 }
00340 delete edge;
00341
00342 // -------------------- saving vertices
00343 TIter nextv(fVertices);
00344 BFLVtx * vtx;
00345 Int_t wght;
00346
00347 WEFILE << fVertices->GetLast() << endl;
00348 while( (vtx = (BFLVtx *)nextv()) ) {
00349
00350 if(vtx->GetWeight()) wght = 1;
00351 else wght = 0;
00352
00353 WEFILE << vtx->GetVtxID() << endl;
00354 WEFILE << vtx->GetEdgeAroundVtx() << endl;
00355 WEFILE << wght << endl;
00356 WEFILE << vtx->GetX() << "\t\t" << vtx->GetY() << endl;
00357 }
00358 delete vtx;
00359
00360 // -------------------- saving polygons
00361 TIter nextp(fPolygons);
00362 BFLPolyg * polyg;
00363
00364 WEFILE << fPolygons->GetLast() << endl;
00365 while( (polyg = (BFLPolyg *)nextp()) ) {
00366
00367 WEFILE << polyg->GetPolygID() << endl;
00368 WEFILE << polyg->GetEdgeAroundPolyg() << endl;
00369 }
00370 delete polyg;
00371
00372 }
|
|
|
Definition at line 457 of file BFLWingedEdge.cxx. References fGenerators, BFLNode::GetNodeID(), GetNofPolygons(), BFLNode::GetX(), and BFLNode::GetY(). 00458 {
00459 ofstream NSFILE(filename,std::ios::out);
00460
00461 TIter next(fGenerators);
00462 BFLNode * generator;
00463 Int_t GeneratedCell = 1;
00464
00465 NSFILE << GetNofPolygons() << endl;
00466 while( (generator = (BFLNode *) next()) ) {
00467 NSFILE << generator->GetNodeID() << "\t\t"
00468 << GeneratedCell++ << "\t\t"
00469 << generator->GetX() << "\t\t"
00470 << generator->GetY() << endl;
00471 }
00472 delete generator;
00473 }
|
|
||||||||||||
|
Definition at line 180 of file BFLWingedEdge.h. References fEdges. Referenced by BFLVoronoiMaker::AddDistantGenerators(), Load(), and BFLVoronoiMaker::WingedEdgePatch().
|
|
||||||||||||
|
Definition at line 186 of file BFLWingedEdge.h. References fEdges. Referenced by BFLVoronoiMaker::AddDistantGenerators(), BFLVoronoiMaker::AddNewEdge(), Load(), and BFLVoronoiMaker::WingedEdgePatch().
|
|
||||||||||||
|
Definition at line 177 of file BFLWingedEdge.h. References fEdges. Referenced by BFLVoronoiMaker::AddDistantGenerators(), BFLVoronoiMaker::AddNewEdge(), Load(), and BFLVoronoiMaker::WingedEdgePatch().
|
|
||||||||||||
|
Definition at line 183 of file BFLWingedEdge.h. References fEdges. Referenced by BFLVoronoiMaker::AddDistantGenerators(), Load(), and BFLVoronoiMaker::WingedEdgePatch().
|
|
|
Definition at line 152 of file BFLWingedEdge.h. References fEdges. Referenced by Load().
|
|
||||||||||||
|
Definition at line 192 of file BFLWingedEdge.h. References fPolygons. Referenced by BFLVoronoiMaker::AddDistantGenerators(), BFLVoronoiMaker::AddNewPolyg(), Load(), and BFLVoronoiMaker::RemoveRefsToDeletedEdges().
|
|
||||||||||||
|
Definition at line 198 of file BFLWingedEdge.h. References fVertices. Referenced by BFLVoronoiMaker::AddDistantGenerators(), BFLVoronoiMaker::AddNewVtx(), and Load().
|
|
||||||||||||
|
Definition at line 162 of file BFLWingedEdge.h. References fEdges. Referenced by AddEdge(), and BFLVoronoiMaker::AddNewEdge().
|
|
||||||||||||
|
Definition at line 217 of file BFLWingedEdge.h. References fEdges. Referenced by BFLVoronoiMaker::MergeDataStructures(), and BFLVoronoiMaker::WingedEdgePatch(). 00217 {
00218 fEdges->AddAt(edge,slot);
00219 }
|
|
||||||||||||
|
Definition at line 174 of file BFLWingedEdge.h. References fEdges. Referenced by BFLVoronoiMaker::AddDistantGenerators(), BFLVoronoiMaker::AddNewEdge(), Load(), and BFLVoronoiMaker::WingedEdgePatch().
|
|
|
Definition at line 47 of file BFLWingedEdge.h. References fGenerators. 00047 { fGenerators = gens; }
|
|
||||||||||||
|
Definition at line 168 of file BFLWingedEdge.h. References fEdges. Referenced by BFLVoronoiMaker::AddDistantGenerators(), BFLVoronoiMaker::AddNewEdge(), and Load().
|
|
|
Definition at line 155 of file BFLWingedEdge.h. References fPolygons. Referenced by Load().
|
|
||||||||||||
|
Definition at line 189 of file BFLWingedEdge.h. References fPolygons. Referenced by BFLVoronoiMaker::AddNewPolyg(), and AddPolyg().
|
|
||||||||||||
|
Definition at line 211 of file BFLWingedEdge.h. References fPolygons. Referenced by BFLVoronoiMaker::MergeDataStructures(). 00211 {
00212 fPolygons->AddAt(polyg,slot);
00213 }
|
|
||||||||||||
|
Definition at line 165 of file BFLWingedEdge.h. References fEdges. Referenced by BFLVoronoiMaker::AddDistantGenerators(), BFLVoronoiMaker::AddNewEdge(), and Load().
|
|
||||||||||||
|
Definition at line 171 of file BFLWingedEdge.h. References fEdges. Referenced by BFLVoronoiMaker::AddDistantGenerators(), BFLVoronoiMaker::AddNewEdge(), Load(), and BFLVoronoiMaker::WingedEdgePatch().
|
|
|
Definition at line 158 of file BFLWingedEdge.h. References fVertices. Referenced by BFLVoronoiMaker::AddDistantGenerators(), and Load().
|
|
||||||||||||
|
Definition at line 195 of file BFLWingedEdge.h. References fVertices. Referenced by BFLVoronoiMaker::AddNewVtx(), and AddVtx().
|
|
||||||||||||
|
Definition at line 214 of file BFLWingedEdge.h. References fVertices. Referenced by BFLVoronoiMaker::MergeDataStructures(). 00214 {
00215 fVertices->AddAt(vtx,slot);
00216 }
|
|
||||||||||||
|
Definition at line 201 of file BFLWingedEdge.h. References fVertices. Referenced by BFLVoronoiMaker::AddDistantGenerators(), BFLVoronoiMaker::AddNewVtx(), and Load().
|
|
||||||||||||
|
Definition at line 204 of file BFLWingedEdge.h. References fVertices. Referenced by BFLVoronoiMaker::AddDistantGenerators(), BFLVoronoiMaker::AddNewVtx(), Load(), and BFLInterpolation::PlanarInterpolation().
|
|
||||||||||||
|
Definition at line 207 of file BFLWingedEdge.h. References fVertices. Referenced by BFLVoronoiMaker::AddDistantGenerators(), BFLVoronoiMaker::AddNewVtx(), Load(), and BFLInterpolation::PlanarInterpolation().
|
|
|
Definition at line 496 of file BFLWingedEdge.cxx. References fEdges, fPolygons, and fVertices. 00497 {
00498 Long_t size = 0;
00499
00500 TIter nextv(fVertices);
00501 BFLVtx * vtx;
00502 while( (vtx = (BFLVtx *)nextv()) ) size += sizeof(*vtx);
00503
00504 TIter nexte(fEdges);
00505 BFLEdge * edge;
00506 while( (edge = (BFLEdge *)nexte()) ) size += sizeof(*edge);
00507
00508 TIter nextp(fPolygons);
00509 BFLPolyg * polyg;
00510 while( (polyg = (BFLPolyg *)nextp()) ) size += sizeof(*polyg);
00511
00512 delete vtx;
00513 delete edge;
00514 delete polyg;
00515
00516 return size;
00517 }
|
|
|
Definition at line 266 of file BFLWingedEdge.h. Referenced by LoadANSYSLookupTable(). |
|
|
Definition at line 265 of file BFLWingedEdge.h. Referenced by AddAvailableEdgeID(), DeleteFirstAvailableEdgeID(), FirstAvailableEdgeID(), Load(), and MaxAvailableEdgeID(). |
|
|
Definition at line 264 of file BFLWingedEdge.h. Referenced by AddAvailableVtxID(), DeleteFirstAvailableVtxID(), FirstAvailableVtxID(), Load(), and MaxAvailableVtxID(). |
|
|
Definition at line 260 of file BFLWingedEdge.h. Referenced by AddEdge(), DeleteEdge(), GetCcwPredecessor(), GetCcwSuccessor(), GetCwPredecessor(), GetCwSuccessor(), GetEdgeID(), GetEdgeObj(), GetEndVtx(), GetLastEdgeID(), GetLeftPolyg(), GetNofEdges(), GetRightPolyg(), GetStartVtx(), Load(), Plot(), PrintEdges(), Save(), SetCcwPredecessor(), SetCcwSuccessor(), SetCwPredecessor(), SetCwSuccessor(), SetEdge(), SetEdgeID(), SetEdgeObj(), SetEndVtx(), SetLeftPolyg(), SetRightPolyg(), SetStartVtx(), Size(), and ~BFLWingedEdge(). |
|
|
Definition at line 263 of file BFLWingedEdge.h. Referenced by GetGeneratorID(), GetGeneratorX(), GetGeneratorY(), LoadNodalSet(), SaveNodalSet(), SetGenerators(), and ~BFLWingedEdge(). |
|
|
Definition at line 257 of file BFLWingedEdge.h. |
|
|
Definition at line 259 of file BFLWingedEdge.h. |
|
|
Definition at line 258 of file BFLWingedEdge.h. |
|
|
Definition at line 262 of file BFLWingedEdge.h. Referenced by AddPolyg(), DeletePolygon(), GetEdgeAroundPolyg(), GetLastPolygID(), GetNofPolygons(), GetPolygID(), GetPolygObj(), Load(), PrintPolygons(), Save(), SetEdgeAroundPolyg(), SetPolyg(), SetPolygID(), SetPolygObj(), Size(), and ~BFLWingedEdge(). |
|
|
Definition at line 261 of file BFLWingedEdge.h. Referenced by AddVtx(), DeleteVtx(), GetEdgeAroundVtx(), GetLastVtxID(), GetNofVertices(), GetVtxID(), GetVtxObj(), GetWeight(), GetX(), GetY(), Load(), PrintVertices(), Save(), SetEdgeAroundVtx(), SetVtx(), SetVtxID(), SetVtxObj(), SetWeight(), SetX(), SetY(), Size(), and ~BFLWingedEdge(). |
1.3.9.1