12 #ifndef ROOT_TEveTriangleSet
13 #define ROOT_TEveTriangleSet
24 class TEveTriangleSet :
public TEveElementList,
28 friend class TEveTriangleSetEditor;
29 friend class TEveTriangleSetGL;
31 TEveTriangleSet(
const TEveTriangleSet&);
32 TEveTriangleSet& operator=(
const TEveTriangleSet&);
46 TEveTriangleSet(Int_t nv, Int_t nt, Bool_t norms=kFALSE, Bool_t cols=kFALSE);
49 virtual Bool_t CanEditMainTransparency()
const {
return kTRUE; }
51 Int_t GetNVerts()
const {
return fNVerts; }
52 Int_t GetNTrings()
const {
return fNTrings; }
54 Float_t* Vertex(Int_t i) {
return &(fVerts[3*i]); }
55 Int_t* Triangle(Int_t i) {
return &(fTrings[3*i]); }
56 Float_t* TriangleNormal(Int_t i) {
return &(fTringNorms[3*i]); }
57 UChar_t* TriangleColor(Int_t i) {
return &(fTringCols[3*i]); }
59 void SetVertex(Int_t i, Float_t x, Float_t y, Float_t z)
60 { Float_t* v = Vertex(i); v[0] = x; v[1] = y; v[2] = z; }
61 void SetTriangle(Int_t i, Int_t v0, Int_t v1, Int_t v2)
62 { Int_t* t = Triangle(i); t[0] = v0; t[1] = v1; t[2] = v2; }
63 void SetTriangleColor(Int_t i, UChar_t r, UChar_t g, UChar_t b, UChar_t a=255)
64 { UChar_t* c = TriangleColor(i); c[0] = r; c[1] = g; c[2] = b; c[3] = a; }
66 void GenerateTriangleNormals();
67 void GenerateRandomColors();
68 void GenerateZNormalColors(Float_t fac=20, Int_t min=-20, Int_t max=20,
69 Bool_t interp=kFALSE, Bool_t wrap=kFALSE);
71 virtual void ComputeBBox();
72 virtual void Paint(Option_t* option=
"");
74 void SetTransparency(Char_t tr) { SetMainTransparency(tr); }
76 static TEveTriangleSet* ReadTrivialFile(
const char* file);
78 ClassDef(TEveTriangleSet, 0);