https://github.com/root-project/root
Raw File
Tip revision: 47c0b480023f5a4e7221a94e0aa1a616e744800e authored by Pere Mato on 14 July 2015, 10:54:01 UTC
Update ROOT version files to v6.04/02.
Tip revision: 47c0b48
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