37Bool_t REveGeoPolyShape::fgAutoEnforceTriangles = 
kTRUE;
 
   52   std::unique_ptr<RootCsg::TBaseMesh> res;
 
   60         for (
UInt_t i = 0; i < 
b3d->NbPnts(); ++i) {
 
   68      res.reset(RootCsg::ConvertToMesh(*
b3d.get()));
 
   70      auto node = 
comp->GetBoolNode();
 
   73      if (matr) { mleft = *matr; mright = *matr; }
 
   75      mleft.
Multiply(node->GetLeftMatrix());
 
   76      auto left = 
MakeGeoMesh(&mleft, node->GetLeftShape());
 
   78      mright.
Multiply(node->GetRightMatrix());
 
   79      auto right = 
MakeGeoMesh(&mright, node->GetRightShape());
 
   81      if (node->IsA() == 
TGeoUnion::Class()) res.reset(RootCsg::BuildUnion(left.get(), right.get()));
 
 
  108   for (
Int_t i = 0; i < 
nv; ++i) {
 
  109      auto v = 
mesh->GetVertex(i);
 
 
  352   return (
dx < 1
e-10) && (
dy < 1
e-10) && (
dz < 1
e-10);
 
 
  363      b.ClearSectionsValid();
 
  379      std::map<Edge_t, Int_t> edges;
 
  387            if (edges.find(
e) == edges.end()) {
 
  388               edges.insert(std::make_pair(
e, 0));
 
  400      for (
auto &
edge : edges) {
 
 
std::unique_ptr< RootCsg::TBaseMesh > MakeGeoMesh(TGeoMatrix *matr, TGeoShape *shape)
Function produces mesh for provided shape, applying matrix to the result.
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t dest
 
REveGeoManagerHolder Exception-safe global variable holders.
 
void FillRenderData(REveRenderData &rd)
 
static Bool_t fgAutoCalculateNormals
 
const TBuffer3D & GetBuffer3D(Int_t reqSections, Bool_t localFrame) const override
Fill static buffer 3D.
 
std::vector< UInt_t > fPolyDesc
 
static void SetAutoCalculateNormals(Bool_t f)
 
void EnforceTriangles()
Use GLU tesselator to replace all polygons with N > 3 with triangles.
 
void BuildFromShape(TGeoShape *shape, Int_t n_seg=60)
Produce all polygons from normal shape.
 
void BuildFromComposite(TGeoCompositeShape *cshp, Int_t n_seg=60)
Produce all polygons from composite shape.
 
std::vector< Double_t > fNormals
 
void FillBuffer3D(TBuffer3D &buffer, Int_t reqSections, Bool_t localFrame) const override
Fill the passed buffer 3D.
 
std::vector< Double_t > fVertices
 
static Bool_t GetAutoCalculateNormals()
 
void CalculateNormals()
CalculateNormals per polygon (flat shading)
 
static Bool_t GetAutoEnforceTriangles()
 
static Bool_t fgAutoEnforceTriangles
 
TBuffer3D * MakeBuffer3D() const override
Create buffer 3D and fill it with point/segment/poly data.
 
Int_t CheckPoints(const UInt_t *source, UInt_t *dest) const
CheckPoints.
 
void SetFromBuff3D(const TBuffer3D &buffer)
Set data-members from a Csg mesh.
 
static Bool_t Eq(const Double_t *p1, const Double_t *p2)
Test equality of points with epsilon 1e-10.
 
static TGeoManager * GetGeoManager()
Return static geo-manager that is used internally to make shapes lead a happy life.
 
Generic 3D primitive description class.
 
Composite shapes are Boolean combinations of two or more shape components.
 
Matrix class used for computing global transformations Should NOT be used for node definition.
 
void Multiply(const TGeoMatrix *right)
multiply to the right with an other transformation if right is identity matrix, just return
 
Geometrical transformation package.
 
virtual void LocalToMaster(const Double_t *local, Double_t *master) const
convert a point by multiplying its column vector (x, y, z, 1) to matrix inverse
 
Base abstract class for all shapes.
 
virtual TBuffer3D * MakeBuffer3D() const
 
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
 
T * Normal2Plane(const T v1[3], const T v2[3], const T v3[3], T normal[3])
Calculates a normal vector of a plane.
 
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.