TGeoArb8


class description - source file - inheritance tree

class TGeoArb8 : public TGeoBBox


    public:
TGeoArb8 TGeoArb8() TGeoArb8 TGeoArb8(Double_t dz, Double_t* vertices = 0) TGeoArb8 TGeoArb8(const TGeoArb8&) virtual void ~TGeoArb8() static TClass* Class() virtual void ComputeBBox() void ComputeTwist() virtual Bool_t Contains(Double_t* point) const virtual Double_t DistToIn(Double_t* point, Double_t* dir, Int_t iact = 1, Double_t step = 0, Double_t* safe = 0) const virtual Double_t DistToOut(Double_t* point, Double_t* dir, Int_t iact = 1, Double_t step = 0, Double_t* safe = 0) const Double_t DistToPlane(Double_t* point, Double_t* dir, Int_t ipl, Bool_t in) const virtual Double_t DistToSurf(Double_t* point, Double_t* dir) const virtual TGeoVolume* Divide(TGeoVolume* voldiv, const char* divname, Int_t iaxis, Int_t ndiv, Double_t start, Double_t step) virtual TGeoVolume* Divide(TGeoVolume* voldiv, const char* divname, Int_t iaxis, Double_t step) virtual Int_t GetByteCount() const Double_t GetDz() const virtual TGeoShape* GetMakeRuntimeShape(TGeoShape* mother) const Double_t* GetVertices() virtual void InspectShape() const virtual TClass* IsA() const Bool_t IsTwisted() const virtual void NextCrossing(TGeoParamCurve* c, Double_t* point) const virtual void Paint(Option_t* option) virtual Double_t Safety(Double_t* point, Double_t* spoint, Option_t* option) const virtual void SetDimensions(Double_t* param) void SetPlaneVertices(Double_t zpl, Double_t* vertices) const virtual void SetPoints(Double_t* buff) const virtual void SetPoints(Float_t* buff) 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)

Data Members


    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


See also

TGeoTrap

Class Description

                                                                        
 TGeoTrap                                                               
                                                                        
 TRAP is a general trapezoid, i.e. one for which the faces perpendicular
 to z are trapezia and their centres are not the same x, y. It has 11   
 parameters: the half length in z, the polar angles from the centre of  
 the face at low z to that at high z, H1 the half length in y at low z, 
 LB1 the half length in x at low z and y low edge, LB2 the half length  
 in x at low z and y high edge, TH1 the angle w.r.t. the y axis from the
 centre of low y edge to the centre of the high y edge, and H2, LB2,    
 LH2, TH2, the corresponding quantities at high z.                      
                                                                        


/*

*/


TGeoArb8()
 dummy ctor

TGeoArb8(Double_t dz, Double_t *vertices) :TGeoBBox(0,0,0)
 constructor. If the array of vertices is not null, this should be
 in the format : (x0, y0, x1, y1, ... , x7, y7)

~TGeoArb8()
 destructor

void SetVertex(Int_t vnum, Double_t x, Double_t y)
  set values for a given vertex

void ComputeBBox()
 compute bounding box for a Arb8

void ComputeTwist()
 compute tangents of twist angles (angles between projections on XY plane
 of corresponding -dz +dz edges). Called after last point [7] was set.

Bool_t Contains(Double_t *point) const
 test if point is inside this sphere
 first check Z range

Double_t DistToPlane(Double_t *point, Double_t *dir, Int_t ipl, Bool_t in) const
 compute 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

Double_t DistToIn(Double_t *point, Double_t *dir, Int_t iact, Double_t step, Double_t *safe) const
 compute distance from outside point to surface of the arb8

Double_t DistToOut(Double_t *point, Double_t *dir, Int_t iact, Double_t step, Double_t *safe) const
 compute distance from outside point to surface of the arb8

Double_t DistToSurf(Double_t *point, Double_t *dir) const
 computes the distance to next surface of the sphere along a ray
 starting from given point to the given direction.

TGeoVolume* Divide(TGeoVolume *voldiv, const char *divname, Int_t iaxis, Int_t ndiv, Double_t start, Double_t step)

TGeoVolume* Divide(TGeoVolume *voldiv, const char *divname, Int_t iaxis, Double_t step)
 Divide all range of iaxis in range/step cells

void InspectShape() const
 print shape parameters

void Paint(Option_t *option)
 paint this shape according to option

void NextCrossing(TGeoParamCurve *c, Double_t *point) const
 computes next intersection point of curve c with this shape

Double_t Safety(Double_t *point, Double_t *spoint, Option_t *option) const
 computes the closest distance from given point to this shape, according
 to option. The matching point on the shape is stored in spoint.

void SetPlaneVertices(Double_t zpl, Double_t *vertices) const
 compute intersection points between plane at zpl and non-horizontal edges

void SetDimensions(Double_t *param)
 set arb8 params in one step :

void SetPoints(Double_t *buff) const
 create arb8 mesh points

void SetPoints(Float_t *buff) const
 create arb8 mesh points

void Sizeof3D() const
 fill size of this 3-D object



Inline Functions


              Int_t GetByteCount() const
           Double_t GetDz() const
          Double_t* GetVertices()
             Bool_t IsTwisted() const
         TGeoShape* GetMakeRuntimeShape(TGeoShape* mother) const
            TClass* Class()
            TClass* IsA() const
               void ShowMembers(TMemberInspector& insp, char* parent)
               void Streamer(TBuffer& b)
               void StreamerNVirtual(TBuffer& b)
           TGeoArb8 TGeoArb8(const TGeoArb8&)


Author: Andrei Gheata 31/01/02
Last update: root/geom:$Name: $:$Id: TGeoArb8.cxx,v 1.7 2002/07/15 15:32:25 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *


ROOT page - Class index - 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.