Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

BFLVorOperator.h

Go to the documentation of this file.
00001 
00002 //                                                                   //
00003 //authors: Costas Andreopoulos, Elias Athanasopoulos, George Tzanakos//
00004 //                Physics Department, University of Athens           //
00005 //                                                  October 28, 1999 //
00007 
00008 #ifndef BFLVOROPERATOR_H
00009 #define BFLVOROPERATOR_H
00010 
00011 #include <iostream>
00012 #include <TMath.h>
00013 #include "TVector2.h"
00014 #include "TObjArray.h"
00015 
00016 //#include "BField/TIntList.h"
00017 //#include "BField/BFLNode.h"
00018 
00019 class TIntList;
00020 class BFLNode;
00021 class BFLWingedEdge;
00022 class BFLVtx;
00023 class BFLPolyg;
00024 class BFLEdge;
00025 
00026 class BFLVorOperator: public TObject
00027 {
00028 public:
00029 
00030   BFLVorOperator() { }
00031   BFLVorOperator(BFLWingedEdge * vor);
00032   ~BFLVorOperator();
00033   
00034   TIntList * RetrieveEdgesIncidentToVtx(Int_t vtx) const;
00035   TIntList * RetrievePolygonsIncidentToVtx(Int_t vtx) const;
00036   TIntList * RetrieveEdgesSurrPolygon(Int_t poly) const;
00037   TIntList * RetrieveVtxSurrPolygon(Int_t poly) const;
00038 
00039   Int_t IsInTheCircle(TObjArray * CirclePoints, BFLNode * point) const;
00040   BFLNode VtxPosition(TObjArray * PointsOnCircle) const;
00041   BFLNode FindNewVtx(Int_t EdgeID) const;
00042   Int_t FindCurrentPolygon(Int_t GuessedID = -1) const;
00043   Int_t MoveToNextPolygon(Int_t PolygID, Int_t EdgeID) const;
00044   Bool_t EdgeHasNewVtx(Int_t EdgeID) const;
00045   Bool_t EdgeIsInsideNewPolygon(Int_t EdgeID) const;
00046   Bool_t VtxIsInsideNewPolyg(Int_t VtxID) const;
00047   void ResetVtxCache(void);
00048   Float_t GeneratorsDist(Int_t igen, Int_t jgen) const;  
00049   Float_t DistanceFrom(Int_t igen) const;
00050   Int_t GetFirstIntersectEdge(void) const;
00051   Int_t GetNextIntersectEdge(Int_t PrEdgeID) const;
00052   Int_t Clockwise(BFLNode * nA, BFLNode * nB, BFLNode * nC) const;
00053 
00054   virtual void SetCurrentPolygID(Int_t pid) { fCurrentPolygID = pid; }
00055   virtual Int_t GetCurrentPolygID(void) const { return fCurrentPolygID; }
00056 
00057   virtual void SetCurrentGen(BFLNode * gen) { fCurrentGen = gen; }  
00058   virtual BFLNode * GetCurrentGen(void) const { return fCurrentGen; }
00059           
00060 private:
00061   Int_t fCurrentPolygID;
00062   BFLNode * fCurrentGen;  
00063   TObjArray * fGenerators;
00064   BFLWingedEdge * fVor;
00065   TIntList * fInVtxCache;
00066   TIntList * fOutVtxCache;
00067 
00068   ClassDef(BFLVorOperator,0)   // Class operating on Winged Edge structure
00069 }; 
00070 
00071 #endif

Generated on Mon Feb 15 11:06:26 2010 for loon by  doxygen 1.3.9.1