CsgOps.h

Go to the documentation of this file.
00001 // @(#)root/gl:$Id: CsgOps.h 20882 2007-11-19 11:31:26Z rdm $
00002 // Author:  Timur Pocheptsov  01/04/2005
00003 
00004 #ifndef ROOT_CsgOps
00005 #define ROOT_CsgOps
00006 
00007 #ifndef ROOT_Rtype
00008 #include "Rtypes.h"
00009 #endif
00010 
00011 class TBuffer3D;
00012 
00013 namespace RootCsg {
00014 
00015    // I need TBaseMesh to have an opaque pointer
00016    // to hidden representation of resulting mesh.
00017 
00018 class TBaseMesh {
00019 public:
00020 
00021    virtual ~TBaseMesh(){}
00022    virtual UInt_t NumberOfPolys()const = 0;
00023    virtual UInt_t NumberOfVertices()const = 0;
00024    virtual UInt_t SizeOfPoly(UInt_t polyIndex)const = 0;
00025    virtual const Double_t *GetVertex(UInt_t vertNum)const = 0;
00026    virtual Int_t GetVertexIndex(UInt_t polyNum, UInt_t vertNum)const = 0; };
00027 
00028    TBaseMesh *ConvertToMesh(const TBuffer3D &buff);
00029    TBaseMesh *BuildUnion(const TBaseMesh *leftOperand, const TBaseMesh *rightOperand);
00030    TBaseMesh *BuildIntersection(const TBaseMesh *leftOperand, const TBaseMesh *rightOperand);
00031    TBaseMesh *BuildDifference(const TBaseMesh *leftOperand, const TBaseMesh *rightOperand);
00032 }
00033 
00034 #endif

Generated on Tue Jul 5 14:16:41 2011 for ROOT_528-00b_version by  doxygen 1.5.1