22 class TXTRU :
public TShape {
25 TXTRU(
const char *name,
const char *title,
const char *material,
27 TXTRU(
const TXTRU &xtru);
29 TXTRU& operator=(
const TXTRU& rhs);
31 virtual void Copy(TObject &xtru)
const;
32 virtual void DefineSection(Int_t secNum, Float_t z, Float_t scale=1.,
33 Float_t x0=0., Float_t y0=0.);
34 virtual void DefineVertex(Int_t pointNum, Float_t x, Float_t y);
35 virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
36 virtual const TBuffer3D &GetBuffer3D(Int_t)
const;
37 virtual Int_t GetNxy()
const {
return fNxy; }
38 virtual Int_t GetNz()
const {
return fNz; }
39 virtual Float_t GetOutlinePointX(Int_t pointNum)
const;
40 virtual Float_t GetOutlinePointY(Int_t pointNum)
const;
41 virtual Float_t GetSectionX0(Int_t secNum)
const;
42 virtual Float_t GetSectionY0(Int_t secNum)
const;
43 virtual Float_t GetSectionScale(Int_t secNum)
const;
44 virtual Float_t GetSectionZ(Int_t secNum)
const;
45 virtual Float_t *GetXvtx()
const {
return fXvtx; }
46 virtual Float_t *GetYvtx()
const {
return fYvtx; }
47 virtual Float_t *GetZ()
const {
return fZ; }
48 virtual Float_t *GetScale()
const {
return fScale; }
49 virtual Float_t *GetX0()
const {
return fX0; }
50 virtual Float_t *GetY0()
const {
return fY0; }
51 virtual void Print(Option_t *option=
"")
const;
52 virtual void Sizeof3D()
const;
53 void SplitConcavePolygon(Bool_t split = kTRUE);
54 virtual void TruncateNxy(Int_t npts);
55 virtual void TruncateNz(Int_t npts);
59 virtual void SetPoints(Double_t *points)
const;
72 enum EXYChecked {kUncheckedXY, kMalformedXY,
73 kConvexCCW, kConvexCW,
74 kConcaveCCW, kConcaveCW};
75 enum EZChecked {kUncheckedZ, kMalformedZ,
76 kConvexIncZ, kConvexDecZ,
77 kConcaveIncZ, kConcaveDecZ};
79 EXYChecked fPolygonShape;
88 void DumpPoints(
int npoints,
float *pointbuff)
const;
89 void DumpSegments(
int nsegments,
int *segbuff)
const;
90 void DumpPolygons(
int npolygons,
int *polybuff,
int buffsize)
const;