forked from root-project/root
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CsgOps.h
32 lines (23 loc) · 940 Bytes
/
CsgOps.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// @(#)root/gl:$Id$
// Author: Timur Pocheptsov 01/04/2005
#ifndef ROOT_CsgOps
#define ROOT_CsgOps
#include "Rtypes.h"
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