Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TPCON.h
Go to the documentation of this file.
1// @(#)root/g3d:$Id$
2// Author: Nenad Buncic 29/09/95
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TPCON
13#define ROOT_TPCON
14
15
16////////////////////////////////////////////////////////////////////////////
17// //
18// TPCON //
19// //
20// PCON is a polycone. It has at least 9 parameters, the lower phi limit, //
21// the range in phi, the number (at least two) of z planes where the //
22// radius is changing for each z boundary and the z coordinate, the //
23// minimum radius and the maximum radius. //
24// //
25////////////////////////////////////////////////////////////////////////////
26
27#include "TShape.h"
28
29
30const Int_t kDiv = 20; //default number of divisions
31
32
33class TPCON : public TShape {
34protected:
35 // Internal cache
36 mutable Double_t *fSiTab; //! Table of sin(fPhi1) .... sin(fPhil+fDphi1)
37 mutable Double_t *fCoTab; //! Table of cos(fPhi1) .... cos(fPhil+fDphi1)
38
39 Float_t fPhi1; // lower phi limit
40 Float_t fDphi1; // range in phi
41 Int_t fNdiv; // number of divisions
42 Int_t fNz; // number of z segments
43 Float_t *fRmin; //[fNz] pointer to array of inside radiuses
44 Float_t *fRmax; //[fNz] pointer to array of outside radiuses
45 Float_t *fDz; //[fNz] pointer to array of half lengths in z
46
47 TPCON(const TPCON&);
48 TPCON& operator=(const TPCON&);
49
50 virtual void MakeTableOfCoSin() const; // Create the table of the fSiTab; fCoTab
51 virtual void FillTableOfCoSin(Double_t phi, Double_t angstep,Int_t n) const; // Fill the table of cosin
52 void SetPoints(Double_t *points) const override;
53 virtual Bool_t SetSegsAndPols(TBuffer3D & buffer) const;
54
55public:
56 TPCON();
57 TPCON(const char *name, const char *title, const char *material, Float_t phi1, Float_t dphi1, Int_t nz);
58 ~TPCON() override;
59
60 virtual void DefineSection(Int_t secNum, Float_t z, Float_t rmin, Float_t rmax);
61 Int_t DistancetoPrimitive(Int_t px, Int_t py) override;
62 const TBuffer3D &GetBuffer3D(Int_t reqSections) const override;
63 virtual Int_t GetNumberOfDivisions () const {if (fNdiv) return fNdiv; else return kDiv;}
64 virtual Float_t GetPhi1() const {return fPhi1;}
65 virtual Float_t GetDhi1() const {return fDphi1;}
66 virtual Int_t GetNz() const {return fNz;}
67 virtual Float_t *GetRmin() const {return fRmin;}
68 virtual Float_t *GetRmax() const {return fRmax;}
69 virtual Float_t *GetDz() const {return fDz;}
70 virtual Int_t GetNdiv() const {return fNdiv;}
71 virtual void SetNumberOfDivisions (Int_t p);
72 void Sizeof3D() const override;
73
74 ClassDefOverride(TPCON,2) //PCON shape
75};
76
77#endif
int Int_t
Definition RtypesCore.h:45
float Float_t
Definition RtypesCore.h:57
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t points
char name[80]
Definition TGX11.cxx:110
const Int_t kDiv
Definition TPCON.h:30
Generic 3D primitive description class.
Definition TBuffer3D.h:18
A polycone.
Definition TPCON.h:33
virtual void SetNumberOfDivisions(Int_t p)
Set number of divisions.
Definition TPCON.cxx:212
const TBuffer3D & GetBuffer3D(Int_t reqSections) const override
Get buffer 3d.
Definition TPCON.cxx:295
Double_t * fCoTab
Table of sin(fPhi1) .... sin(fPhil+fDphi1)
Definition TPCON.h:37
void Sizeof3D() const override
Return total X3D needed by TNode::ls (when called with option "x")
Definition TPCON.cxx:249
Float_t fPhi1
Table of cos(fPhi1) .... cos(fPhil+fDphi1)
Definition TPCON.h:39
virtual Float_t * GetRmax() const
Definition TPCON.h:68
Float_t * fRmax
Definition TPCON.h:44
virtual Int_t GetNz() const
Definition TPCON.h:66
virtual Int_t GetNdiv() const
Definition TPCON.h:70
virtual Int_t GetNumberOfDivisions() const
Definition TPCON.h:63
virtual Float_t * GetRmin() const
Definition TPCON.h:67
Int_t fNdiv
Definition TPCON.h:41
Int_t fNz
Definition TPCON.h:42
Float_t * fDz
Definition TPCON.h:45
virtual Float_t GetDhi1() const
Definition TPCON.h:65
TPCON & operator=(const TPCON &)
assignment operator
Definition TPCON.cxx:108
TPCON()
PCON shape default constructor.
Definition TPCON.cxx:47
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
Compute distance from point px,py to a PCON.
Definition TPCON.cxx:189
virtual Bool_t SetSegsAndPols(TBuffer3D &buffer) const
Set segments and polygons.
Definition TPCON.cxx:335
Float_t fDphi1
Definition TPCON.h:40
virtual Float_t GetPhi1() const
Definition TPCON.h:64
~TPCON() override
PCON shape default destructor.
Definition TPCON.cxx:152
Double_t * fSiTab
Definition TPCON.h:36
Float_t * fRmin
Definition TPCON.h:43
virtual void FillTableOfCoSin(Double_t phi, Double_t angstep, Int_t n) const
Fill the table of cos and sin to prepare drawing.
Definition TPCON.cxx:199
virtual void DefineSection(Int_t secNum, Float_t z, Float_t rmin, Float_t rmax)
Defines section secNum of the polycone.
Definition TPCON.cxx:174
void SetPoints(Double_t *points) const override
Create PCON points.
Definition TPCON.cxx:222
virtual Float_t * GetDz() const
Definition TPCON.h:69
virtual void MakeTableOfCoSin() const
Make table of cosine and sine.
Definition TPCON.cxx:128
This is the base class for all geometry shapes.
Definition TShape.h:35
const Int_t n
Definition legend1.C:16