library: libGeom #include "TGeoArb8.h" |
TGeoArb8
class description - header file - source file - inheritance tree (.pdf)
protected:
TGeoArb8(const TGeoArb8&)
TGeoArb8& operator=(const TGeoArb8&)
public:
TGeoArb8()
TGeoArb8(Double_t dz, Double_t* vertices = 0)
TGeoArb8(const char* name, Double_t dz, Double_t* vertices = 0)
virtual ~TGeoArb8()
virtual Double_t Capacity() const
static TClass* Class()
virtual void ComputeBBox()
virtual void ComputeNormal(Double_t* point, Double_t* dir, Double_t* norm)
void ComputeTwist()
virtual Bool_t Contains(Double_t* point) const
virtual Double_t DistFromInside(Double_t* point, Double_t* dir, Int_t iact = 1, Double_t step = TGeoShape::Big(), Double_t* safe = 0) const
virtual Double_t DistFromOutside(Double_t* point, Double_t* dir, Int_t iact = 1, Double_t step = TGeoShape::Big(), Double_t* safe = 0) const
Double_t DistToPlane(Double_t* point, Double_t* dir, Int_t ipl, Bool_t in) const
virtual TGeoVolume* Divide(TGeoVolume* voldiv, const char* divname, Int_t iaxis, Int_t ndiv, Double_t start, Double_t step)
virtual Double_t GetAxisRange(Int_t iaxis, Double_t& xlo, Double_t& xhi) const
virtual void GetBoundingCylinder(Double_t* param) const
virtual Int_t GetByteCount() const
Double_t GetDz() const
virtual Int_t GetFittingBox(const TGeoBBox* parambox, TGeoMatrix* mat, Double_t& dx, Double_t& dy, Double_t& dz) const
virtual TGeoShape* GetMakeRuntimeShape(TGeoShape*, TGeoMatrix*) const
virtual Int_t GetNmeshVertices() const
static void GetPlaneNormal(Double_t* p1, Double_t* p2, Double_t* p3, Double_t* norm)
Double_t GetTwist(Int_t iseg) const
Double_t* GetVertices()
static Bool_t InsidePolygon(Double_t x, Double_t y, Double_t* pts)
virtual void InspectShape() const
virtual TClass* IsA() const
virtual Bool_t IsCylType() const
static Bool_t IsSamePoint(Double_t* p1, Double_t* p2)
Bool_t IsTwisted() const
virtual Double_t Safety(Double_t* point, Bool_t in = kTRUE) const
Double_t SafetyToFace(Double_t* point, Int_t iseg, Bool_t in) const
virtual void SavePrimitive(ostream& out, Option_t* option = "")
virtual void SetDimensions(Double_t* param)
void SetDz(Double_t dz)
void SetPlaneVertices(Double_t zpl, Double_t* vertices) const
virtual void SetPoints(Double_t* points) const
virtual void SetPoints(Float_t* points) const
virtual void SetVertex(Int_t vnum, Double_t x, Double_t y)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Sizeof3D() const
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
protected:
Double_t fDz half length in Z
Double_t* fTwist ! [4] tangents of twist angles
Double_t fXY[8][2] list of vertices
public:
static const TGeoArb8::EGeoArb8Type kArb8Trap
static const TGeoArb8::EGeoArb8Type kArb8Tra
________________________________________________________________________
TGeoArb8 - a arbitrary trapezoid with less than 8 vertices standing on
two paralel planes perpendicular to Z axis. Parameters :
- dz - half length in Z;
- xy[8][2] - vector of (x,y) coordinates of vertices
- first four points (xy[i][j], i<4, j<2) are the (x,y)
coordinates of the vertices sitting on the -dz plane;
- last four points (xy[i][j], i>=4, j<2) are the (x,y)
coordinates of the vertices sitting on the +dz plane;
The order of defining the vertices of an arb8 is the following :
- point 0 is connected with points 1,3,4
- point 1 is connected with points 0,2,5
- point 2 is connected with points 1,3,6
- point 3 is connected with points 0,2,7
- point 4 is connected with points 0,5,7
- point 5 is connected with points 1,4,6
- point 6 is connected with points 2,5,7
- point 7 is connected with points 3,4,6
Points can be identical in order to create shapes with less than
8 vertices.
TGeoArb8(Double_t dz, Double_t *vertices)
Constructor. If the array of vertices is not null, this should be
in the format : (x0, y0, x1, y1, ... , x7, y7)
TGeoArb8(const char *name, Double_t dz, Double_t *vertices)
Named constructor. If the array of vertices is not null, this should be
in the format : (x0, y0, x1, y1, ... , x7, y7)
void ComputeBBox()
Computes bounding box for an Arb8 shape.
void ComputeTwist()
Computes tangents of twist angles (angles between projections on XY plane
of corresponding -dz +dz edges). Called after last point [7] was set.
Double_t DistToPlane(Double_t *point, Double_t *dir, Int_t ipl, Bool_t in)
Computes distance to plane ipl :
ipl=0 : points 0,4,1,5
ipl=1 : points 1,5,2,6
ipl=2 : points 2,6,3,7
ipl=3 : points 3,7,0,4
void GetBoundingCylinder(Double_t *param)
--- Fill vector param[4] with the bounding cylinder parameters. The order
is the following : Rmin, Rmax, Phi1, Phi2
--- first compute rmin/rmax
void SetDimensions(Double_t *param)
Set all arb8 params in one step.
param[0] = dz
param[1] = x0
param[2] = y0
...
void Sizeof3D()
Fill size of this 3-D object
Author: Andrei Gheata 31/01/02
Last update: root/geom:$Name: $:$Id: TGeoArb8.cxx,v 1.53 2006/07/11 09:14:05 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.