library: libGeom #include "TGeoBBox.h" |
Inheritance Chart: | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
protected:
virtual void FillBuffer3D(TBuffer3D& buffer, Int_t reqSections, Bool_t localFrame) const public:
TGeoBBox() TGeoBBox(Double_t dx, Double_t dy, Double_t dz, Double_t* origin = 0) TGeoBBox(const char* name, Double_t dx, Double_t dy, Double_t dz, Double_t* origin = 0) TGeoBBox(Double_t* param) TGeoBBox(const TGeoBBox&) virtual ~TGeoBBox() static Bool_t AreOverlapping(const TGeoBBox* box1, const TGeoMatrix* mat1, const TGeoBBox* box2, const TGeoMatrix* mat2) virtual Double_t Capacity() const static TClass* Class() virtual void ComputeBBox() virtual void ComputeNormal(Double_t* point, Double_t* dir, Double_t* norm) virtual Bool_t Contains(Double_t* point) const virtual Bool_t CouldBeCrossed(Double_t* point, Double_t* dir) const virtual Int_t DistancetoPrimitive(Int_t px, Int_t py) 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 virtual TGeoVolume* Divide(TGeoVolume* voldiv, const char* divname, Int_t iaxis, Int_t ndiv, Double_t start, Double_t step) virtual const char* GetAxisName(Int_t iaxis) const virtual Double_t GetAxisRange(Int_t iaxis, Double_t& xlo, Double_t& xhi) const virtual void GetBoundingCylinder(Double_t* param) const virtual const TBuffer3D& GetBuffer3D(Int_t reqSections, Bool_t localFrame) const virtual Int_t GetByteCount() const virtual Double_t GetDX() const virtual Double_t GetDY() const virtual 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* mother, TGeoMatrix* mat) const virtual Int_t GetNmeshVertices() const virtual const Double_t* GetOrigin() const virtual void InspectShape() const virtual TClass* IsA() const virtual Bool_t IsCylType() const virtual Bool_t IsNullBox() const virtual Bool_t IsValidBox() const virtual TBuffer3D* MakeBuffer3D() const TGeoBBox& operator=(const TGeoBBox&) virtual Double_t Safety(Double_t* point, Bool_t in = kTRUE) const virtual void SavePrimitive(ostream& out, Option_t* option = "") void SetBoxDimensions(Double_t dx, Double_t dy, Double_t dz, Double_t* origin = 0) void SetBoxPoints(Double_t* points) const virtual void SetDimensions(Double_t* param) virtual void SetPoints(Double_t* points) const virtual void SetPoints(Float_t* points) const virtual void SetSegsAndPols(TBuffer3D& buffer) const virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Sizeof3D() const virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)
protected:
Double_t fDX X half-length Double_t fDY Y half-length Double_t fDZ Z half-length Double_t fOrigin[3] box origin
Constructor where half-lengths are provided.
Constructor with shape name.
Constructor based on the array of parameters param[0] - half-length in x param[1] - half-length in y param[2] - half-length in z
Check if 2 positioned boxes overlap.
Computes normal to closest surface from POINT.
Decides fast if the bounding box could be crossed by a vector.
Compute closest distance from point px,py to each corner.
--- Divide this box shape belonging to volume "voldiv" into ndiv equal volumes called divname, from start position with the given step. Returns pointer to created division cell volume. In case a wrong division axis is supplied, returns pointer to volume to be divided.
Compute distance from inside point to surface of the box. Boundary safe algorithm.
Compute distance from outside point to surface of the box. Boundary safe algorithm.
Get range of shape for a given axis.
Fill vector param[4] with the bounding cylinder parameters. The order is the following : Rmin, Rmax, Phi1, Phi2
Fills real parameters of a positioned box inside this one. Returns 0 if successfull.
In case shape has some negative parameters, these has to be computed in order to fit the mother
Creates a TBuffer3D describing *this* shape. Coordinates are in local reference frame.
Computes the closest distance from given point to this shape.
Save a primitive as a C++ statement(s) on output stream "out".
Set parameters of the box.
Set dimensions based on the array of parameters param[0] - half-length in x param[1] - half-length in y param[2] - half-length in z
/// fill size of this 3-D object / TVirtualGeoPainter *painter = gGeoManager->GetGeomPainter(); / if (painter) painter->AddSize3D(8, 12, 6);
Fills a static 3D buffer and returns a reference.
Fills the supplied buffer, with sections in desired frame See TBuffer3D.h for explanation of sections, frame etc.