https://github.com/root-project/root
Raw File
Tip revision: f76c27e8dc29fa77f1e0cf950133463acc968bbe authored by Pere Mato on 13 October 2015, 10:41:18 UTC
Update ROOT version files to v6.04/06.
Tip revision: f76c27e
CsgOps.h
// @(#)root/gl:$Id$
// Author:  Timur Pocheptsov  01/04/2005

#ifndef ROOT_CsgOps
#define ROOT_CsgOps

#ifndef ROOT_Rtype
#include "Rtypes.h"
#endif

class TBuffer3D;

namespace RootCsg {

   // I need TBaseMesh to have an opaque pointer
   // to hidden representation of resulting mesh.

class TBaseMesh {
public:

   virtual ~TBaseMesh(){}
   virtual UInt_t NumberOfPolys()const = 0;
   virtual UInt_t NumberOfVertices()const = 0;
   virtual UInt_t SizeOfPoly(UInt_t polyIndex)const = 0;
   virtual const Double_t *GetVertex(UInt_t vertNum)const = 0;
   virtual Int_t GetVertexIndex(UInt_t polyNum, UInt_t vertNum)const = 0; };

   TBaseMesh *ConvertToMesh(const TBuffer3D &buff);
   TBaseMesh *BuildUnion(const TBaseMesh *leftOperand, const TBaseMesh *rightOperand);
   TBaseMesh *BuildIntersection(const TBaseMesh *leftOperand, const TBaseMesh *rightOperand);
   TBaseMesh *BuildDifference(const TBaseMesh *leftOperand, const TBaseMesh *rightOperand);
}

#endif
back to top