ROOT  6.06/08
Reference Guide
Classes | Typedefs | Functions | Variables
RootCsg Namespace Reference

I've modified some very nice bounding box tree code from Gino van der Bergen's Free Solid Library below. More...

Classes

class  TBaseMesh
 

Typedefs

typedef TBBoxLeaf * LeafPtr_t
 
typedef TBBoxNode * NodePtr_t
 
typedef TBBoxInternal * InternalPtr_t
 
typedef std::vector< Int_tPIndexList_t
 
typedef PIndexList_t::iterator PIndexIt_t
 
typedef std::vector< PIndexList_tOverlapTable_t
 
typedef TPolygonBase< TBlenderVProp, NullType_t > TestPolygon_t
 
typedef TMesh< TestPolygon_t, TVertexBase > AMesh_t
 
typedef TMesh< TestPolygon_t, TCVertex > AConnectedMesh_t
 
typedef TMeshWrapper< AMesh_tAMeshWrapper_t
 
typedef TConnectedMeshWrapper< AConnectedMesh_tAConnectedMeshWrapper_t
 

Functions

TBaseMeshConvertToMesh (const TBuffer3D &buff)
 
TBaseMeshBuildUnion (const TBaseMesh *leftOperand, const TBaseMesh *rightOperand)
 
TBaseMeshBuildIntersection (const TBaseMesh *leftOperand, const TBaseMesh *rightOperand)
 
TBaseMeshBuildDifference (const TBaseMesh *leftOperand, const TBaseMesh *rightOperand)
 
Int_t sign (Double_t x)
 
Bool_t fuzzy_zero (Double_t x)
 
Bool_t fuzzy_zero2 (Double_t x)
 
Bool_t operator== (const Tuple2 &t1, const Tuple2 &t2)
 
TVector2 operator+ (const TVector2 &v1, const TVector2 &v2)
 
TVector2 operator- (const TVector2 &v1, const TVector2 &v2)
 
TVector2 operator- (const TVector2 &v)
 
TVector2 operator* (const TVector2 &v, Double_t s)
 
TVector2 operator* (Double_t s, const TVector2 &v)
 
TVector2 operator/ (const TVector2 &v, Double_t s)
 
Double_t dot (const TVector2 &v1, const TVector2 &v2)
 
Double_t length2 (const TVector2 &v)
 
Double_t length (const TVector2 &v)
 
Bool_t fuzzy_zero (const TVector2 &v)
 
Bool_t fuzzy_equal (const TVector2 &v1, const TVector2 &v2)
 
Double_t Angle (const TVector2 &v1, const TVector2 &v2)
 
TPoint2 operator+ (const TPoint2 &p, const TVector2 &v)
 
TPoint2 operator- (const TPoint2 &p, const TVector2 &v)
 
TVector2 operator- (const TPoint2 &p1, const TPoint2 &p2)
 
Double_t distance (const TPoint2 &p1, const TPoint2 &p2)
 
Double_t distance2 (const TPoint2 &p1, const TPoint2 &p2)
 
TPoint2 lerp (const TPoint2 &p1, const TPoint2 &p2, Double_t t)
 
Bool_t operator== (const Tuple3 &t1, const Tuple3 &t2)
 
TVector3 operator* (const TVector3 &v, Double_t s)
 
TVector3 operator/ (const TVector3 &v, Double_t s)
 
TVector3 operator+ (const TVector3 &v1, const TVector3 &v2)
 
TVector3 operator- (const TVector3 &v1, const TVector3 &v2)
 
TVector3 operator- (const TVector3 &v)
 
TVector3 operator* (Double_t s, const TVector3 &v)
 
TVector3 operator* (const TVector3 &v1, const TVector3 &v2)
 
Double_t dot (const TVector3 &v1, const TVector3 &v2)
 
Double_t length2 (const TVector3 &v)
 
Double_t length (const TVector3 &v)
 
Bool_t fuzzy_zero (const TVector3 &v)
 
Bool_t fuzzy_equal (const TVector3 &v1, const TVector3 &v2)
 
Double_t Angle (const TVector3 &v1, const TVector3 &v2)
 
TVector3 cross (const TVector3 &v1, const TVector3 &v2)
 
Double_t triple (const TVector3 &v1, const TVector3 &v2, const TVector3 &v3)
 
TPoint3 operator+ (const TPoint3 &p, const TVector3 &v)
 
TPoint3 operator- (const TPoint3 &p, const TVector3 &v)
 
TVector3 operator- (const TPoint3 &p1, const TPoint3 &p2)
 
Double_t distance (const TPoint3 &p1, const TPoint3 &p2)
 
Double_t distance2 (const TPoint3 &p1, const TPoint3 &p2)
 
TPoint3 lerp (const TPoint3 &p1, const TPoint3 &p2, Double_t t)
 
Bool_t operator== (const Tuple4 &t1, const Tuple4 &t2)
 
TVector3 operator* (const TMatrix3x3 &m, const TVector3 &v)
 
TVector3 operator* (const TVector3 &v, const TMatrix3x3 &m)
 
TMatrix3x3 operator* (const TMatrix3x3 &m1, const TMatrix3x3 &m2)
 
TMatrix3x3 mmult_transpose_left (const TMatrix3x3 &m1, const TMatrix3x3 &m2)
 
TMatrix3x3 mmult_transpose_right (const TMatrix3x3 &m1, const TMatrix3x3 &m2)
 
Bool_t intersect (const TBBox &a, const TBBox &b)
 
Bool_t intersect (const TPlane3 &p1, const TPlane3 &p2, TLine3 &output)
 
Bool_t intersect_2d_no_bounds_check (const TLine3 &l1, const TLine3 &l2, Int_t majAxis, Double_t &l1Param, Double_t &l2Param)
 
Bool_t intersect_2d_bounds_check (const TLine3 &l1, const TLine3 &l2, Int_t majAxis, Double_t &l1Param, Double_t &l2Param)
 
Int_t compute_classification (const Double_t &distance, const Double_t &epsil)
 
template<typename TGBinder >
Bool_t intersect_poly_with_line_2d (const TLine3 &l, const TGBinder &p1, const TPlane3 &plane, Double_t &a, Double_t &b)
 
template<typename TGBinder >
Bool_t instersect_poly_with_line_3d (const TLine3 &l, const TGBinder &p1, const TPlane3 &plane, Double_t &a)
 
template<typename TGBinder >
Bool_t point_in_polygon_test_3d (const TGBinder &p1, const TPlane3 &plane, const TPoint3 &origin, const TPoint3 &pointOnPlane)
 
template<typename TGBinder >
TPoint3 polygon_mid_point (const TGBinder &p1)
 
template<typename TGBinder >
Int_t which_side (const TGBinder &p1, const TPlane3 &plane1)
 
template<typename TGBinder >
TLine3 polygon_mid_point_ray (const TGBinder &p1, const TPlane3 &plane)
 
template<typename TGBinder >
TPlane3 compute_plane (const TGBinder &poly)
 
template<typename TGBinder >
TBBox fit_bbox (const TGBinder &p1)
 
template<typename TGBinderA , typename TGBinderB >
Bool_t intersect_polygons (const TGBinderA &p1, const TGBinderB &p2, const TPlane3 &plane1, const TPlane3 &plane2)
 
template<class TMesh >
void build_split_group (const TMesh &meshA, const TMesh &meshB, const TBBoxTree &treeA, const TBBoxTree &treeB, OverlapTable_t &aOverlapsB, OverlapTable_t &bOverlapsA)
 
template<class CMesh , class TMesh >
void partition_mesh (CMesh &mesh, const TMesh &mesh2, const OverlapTable_t &table)
 
template<typename CMesh , typename TMesh >
void classify_mesh (const TMesh &meshA, const TBBoxTree &aTree, CMesh &meshB)
 
template<typename CMesh , typename TMesh >
void extract_classification (CMesh &meshA, TMesh &newMesh, Int_t classification, Bool_t reverse)
 
template<typename MeshA , typename MeshB >
void copy_mesh (const MeshA &source, MeshB &output)
 
void build_tree (const AMesh_t &mesh, TBBoxTree &tree)
 
void extract_classification_preserve (const AMesh_t &meshA, const AMesh_t &meshB, const TBBoxTree &aTree, const TBBoxTree &bTree, const OverlapTable_t &aOverlapsB, const OverlapTable_t &bOverlapsA, Int_t aClassification, Int_t bClassification, Bool_t reverseA, Bool_t reverseB, AMesh_t &output)
 
void extract_classification (const AMesh_t &meshA, const AMesh_t &meshB, const TBBoxTree &aTree, const TBBoxTree &bTree, const OverlapTable_t &aOverlapsB, const OverlapTable_t &bOverlapsA, Int_t aClassification, Int_t bClassification, Bool_t reverseA, Bool_t reverseB, AMesh_t &output)
 
AMesh_tbuild_intersection (const AMesh_t &meshA, const AMesh_t &meshB, Bool_t preserve)
 
AMesh_tbuild_union (const AMesh_t &meshA, const AMesh_t &meshB, Bool_t preserve)
 
AMesh_tbuild_difference (const AMesh_t &meshA, const AMesh_t &meshB, Bool_t preserve)
 

Variables

const Double_t epsilon = 1e-10
 
const Double_t epsilon2 = 1e-20
 
const Double_t infinity = 1e50
 
const Int_t cofacTable [3][2] = {{1,2}, {0,2}, {0,1}}
 

Detailed Description

I've modified some very nice bounding box tree code from Gino van der Bergen's Free Solid Library below.

It's basically the same code - but I've hacked out the transformation stuff as I didn't understand it. I've also made it far less elegant! Laurence Bourn.

Typedef Documentation

§ AConnectedMesh_t

typedef TMesh<TestPolygon_t,TCVertex > RootCsg::AConnectedMesh_t

Definition at line 2384 of file CsgOps.cxx.

§ AConnectedMeshWrapper_t

typedef TConnectedMeshWrapper<AConnectedMesh_t> RootCsg::AConnectedMeshWrapper_t

Definition at line 2386 of file CsgOps.cxx.

§ AMesh_t

typedef TMesh<TestPolygon_t,TVertexBase> RootCsg::AMesh_t

Definition at line 2383 of file CsgOps.cxx.

§ AMeshWrapper_t

typedef TMeshWrapper<AMesh_t> RootCsg::AMeshWrapper_t

Definition at line 2385 of file CsgOps.cxx.

§ InternalPtr_t

typedef TBBoxInternal* RootCsg::InternalPtr_t

Definition at line 1520 of file CsgOps.cxx.

§ LeafPtr_t

typedef TBBoxLeaf* RootCsg::LeafPtr_t

Definition at line 1509 of file CsgOps.cxx.

§ NodePtr_t

typedef TBBoxNode* RootCsg::NodePtr_t

Definition at line 1510 of file CsgOps.cxx.

§ OverlapTable_t

typedef std::vector< PIndexList_t > RootCsg::OverlapTable_t

Definition at line 2103 of file CsgOps.cxx.

§ PIndexIt_t

typedef PIndexList_t::iterator RootCsg::PIndexIt_t

Definition at line 2102 of file CsgOps.cxx.

§ PIndexList_t

typedef std::vector<Int_t> RootCsg::PIndexList_t

Definition at line 2101 of file CsgOps.cxx.

§ TestPolygon_t

typedef TPolygonBase<TBlenderVProp, NullType_t> RootCsg::TestPolygon_t

Definition at line 2382 of file CsgOps.cxx.

Function Documentation

§ Angle() [1/2]

Double_t RootCsg::Angle ( const TVector2 v1,
const TVector2 v2 
)

Definition at line 368 of file CsgOps.cxx.

Referenced by operator==(), TArrow::SetDefaultAngle(), and TArrow::SetOption().

§ Angle() [2/2]

Double_t RootCsg::Angle ( const TVector3 v1,
const TVector3 v2 
)

Definition at line 809 of file CsgOps.cxx.

Referenced by operator/().

§ build_difference()

AMesh_t* RootCsg::build_difference ( const AMesh_t meshA,
const AMesh_t meshB,
Bool_t  preserve 
)

Definition at line 2629 of file CsgOps.cxx.

Referenced by BuildDifference().

§ build_intersection()

AMesh_t* RootCsg::build_intersection ( const AMesh_t meshA,
const AMesh_t meshB,
Bool_t  preserve 
)

Definition at line 2575 of file CsgOps.cxx.

Referenced by BuildIntersection().

§ build_split_group()

template<class TMesh >
void RootCsg::build_split_group ( const TMesh &  meshA,
const TMesh &  meshB,
const TBBoxTree &  treeA,
const TBBoxTree &  treeB,
OverlapTable_t aOverlapsB,
OverlapTable_t bOverlapsA 
)

Definition at line 2391 of file CsgOps.cxx.

Referenced by build_difference(), build_intersection(), and build_union().

§ build_tree()

void RootCsg::build_tree ( const AMesh_t mesh,
TBBoxTree &  tree 
)

Definition at line 2505 of file CsgOps.cxx.

Referenced by build_difference(), build_intersection(), and build_union().

§ build_union()

AMesh_t* RootCsg::build_union ( const AMesh_t meshA,
const AMesh_t meshB,
Bool_t  preserve 
)

Definition at line 2602 of file CsgOps.cxx.

Referenced by BuildUnion().

§ BuildDifference()

TBaseMesh * RootCsg::BuildDifference ( const TBaseMesh leftOperand,
const TBaseMesh rightOperand 
)

Definition at line 2737 of file CsgOps.cxx.

Referenced by TGLScenePad::BuildComposite(), and RootCsg::TBaseMesh::~TBaseMesh().

§ BuildIntersection()

TBaseMesh * RootCsg::BuildIntersection ( const TBaseMesh leftOperand,
const TBaseMesh rightOperand 
)

Definition at line 2730 of file CsgOps.cxx.

Referenced by TGLScenePad::BuildComposite(), and RootCsg::TBaseMesh::~TBaseMesh().

§ BuildUnion()

TBaseMesh * RootCsg::BuildUnion ( const TBaseMesh leftOperand,
const TBaseMesh rightOperand 
)

Definition at line 2723 of file CsgOps.cxx.

Referenced by TGLScenePad::BuildComposite(), and RootCsg::TBaseMesh::~TBaseMesh().

§ classify_mesh()

template<typename CMesh , typename TMesh >
void RootCsg::classify_mesh ( const TMesh &  meshA,
const TBBoxTree &  aTree,
CMesh &  meshB 
)

Definition at line 2440 of file CsgOps.cxx.

Referenced by extract_classification(), and extract_classification_preserve().

§ compute_classification()

Int_t RootCsg::compute_classification ( const Double_t distance,
const Double_t epsil 
)

Definition at line 1732 of file CsgOps.cxx.

Referenced by intersect_polygons().

§ compute_plane()

template<typename TGBinder >
TPlane3 RootCsg::compute_plane ( const TGBinder &  poly)

Definition at line 1837 of file CsgOps.cxx.

Referenced by intersect_polygons().

§ ConvertToMesh()

TBaseMesh * RootCsg::ConvertToMesh ( const TBuffer3D buff)

Definition at line 2656 of file CsgOps.cxx.

Referenced by TGLScenePad::AddObject(), and RootCsg::TBaseMesh::~TBaseMesh().

§ copy_mesh()

template<typename MeshA , typename MeshB >
void RootCsg::copy_mesh ( const MeshA &  source,
MeshB &  output 
)

Definition at line 2488 of file CsgOps.cxx.

Referenced by extract_classification_preserve().

§ cross()

TVector3 RootCsg::cross ( const TVector3 v1,
const TVector3 v2 
)

§ distance() [1/2]

Double_t RootCsg::distance ( const TPoint2 &  p1,
const TPoint2 &  p2 
)

§ distance() [2/2]

Double_t RootCsg::distance ( const TPoint3 &  p1,
const TPoint3 &  p2 
)

Definition at line 919 of file CsgOps.cxx.

§ distance2() [1/2]

Double_t RootCsg::distance2 ( const TPoint2 &  p1,
const TPoint2 &  p2 
)

Definition at line 475 of file CsgOps.cxx.

§ distance2() [2/2]

Double_t RootCsg::distance2 ( const TPoint3 &  p1,
const TPoint3 &  p2 
)

Definition at line 926 of file CsgOps.cxx.

§ dot() [1/2]

Double_t RootCsg::dot ( const TVector2 v1,
const TVector2 v2 
)

§ dot() [2/2]

Double_t RootCsg::dot ( const TVector3 v1,
const TVector3 v2 
)

Definition at line 774 of file CsgOps.cxx.

§ extract_classification() [1/2]

template<typename CMesh , typename TMesh >
void RootCsg::extract_classification ( CMesh &  meshA,
TMesh &  newMesh,
Int_t  classification,
Bool_t  reverse 
)

§ extract_classification() [2/2]

void RootCsg::extract_classification ( const AMesh_t meshA,
const AMesh_t meshB,
const TBBoxTree &  aTree,
const TBBoxTree &  bTree,
const OverlapTable_t aOverlapsB,
const OverlapTable_t bOverlapsA,
Int_t  aClassification,
Int_t  bClassification,
Bool_t  reverseA,
Bool_t  reverseB,
AMesh_t output 
)

Definition at line 2549 of file CsgOps.cxx.

§ extract_classification_preserve()

void RootCsg::extract_classification_preserve ( const AMesh_t meshA,
const AMesh_t meshB,
const TBBoxTree &  aTree,
const TBBoxTree &  bTree,
const OverlapTable_t aOverlapsB,
const OverlapTable_t bOverlapsA,
Int_t  aClassification,
Int_t  bClassification,
Bool_t  reverseA,
Bool_t  reverseB,
AMesh_t output 
)

Definition at line 2519 of file CsgOps.cxx.

Referenced by build_difference(), build_intersection(), and build_union().

§ fit_bbox()

template<typename TGBinder >
TBBox RootCsg::fit_bbox ( const TGBinder &  p1)

Definition at line 1861 of file CsgOps.cxx.

Referenced by build_tree().

§ fuzzy_equal() [1/2]

Bool_t RootCsg::fuzzy_equal ( const TVector2 v1,
const TVector2 v2 
)

Definition at line 361 of file CsgOps.cxx.

§ fuzzy_equal() [2/2]

Bool_t RootCsg::fuzzy_equal ( const TVector3 v1,
const TVector3 v2 
)

Definition at line 802 of file CsgOps.cxx.

§ fuzzy_zero() [1/3]

Bool_t RootCsg::fuzzy_zero ( Double_t  x)

§ fuzzy_zero() [2/3]

Bool_t RootCsg::fuzzy_zero ( const TVector2 v)

Definition at line 354 of file CsgOps.cxx.

§ fuzzy_zero() [3/3]

Bool_t RootCsg::fuzzy_zero ( const TVector3 v)

Definition at line 795 of file CsgOps.cxx.

§ fuzzy_zero2()

Bool_t RootCsg::fuzzy_zero2 ( Double_t  x)

Definition at line 103 of file CsgOps.cxx.

Referenced by operator/().

§ instersect_poly_with_line_3d()

template<typename TGBinder >
Bool_t RootCsg::instersect_poly_with_line_3d ( const TLine3 &  l,
const TGBinder &  p1,
const TPlane3 &  plane,
Double_t a 
)

Definition at line 1766 of file CsgOps.cxx.

§ intersect() [1/2]

Bool_t RootCsg::intersect ( const TBBox &  a,
const TBBox &  b 
)

§ intersect() [2/2]

Bool_t RootCsg::intersect ( const TPlane3 &  p1,
const TPlane3 &  p2,
TLine3 &  output 
)

Definition at line 1691 of file CsgOps.cxx.

§ intersect_2d_bounds_check()

Bool_t RootCsg::intersect_2d_bounds_check ( const TLine3 &  l1,
const TLine3 &  l2,
Int_t  majAxis,
Double_t l1Param,
Double_t l2Param 
)

Definition at line 1722 of file CsgOps.cxx.

Referenced by intersect_poly_with_line_2d().

§ intersect_2d_no_bounds_check()

Bool_t RootCsg::intersect_2d_no_bounds_check ( const TLine3 &  l1,
const TLine3 &  l2,
Int_t  majAxis,
Double_t l1Param,
Double_t l2Param 
)

Definition at line 1705 of file CsgOps.cxx.

Referenced by intersect_2d_bounds_check().

§ intersect_poly_with_line_2d()

template<typename TGBinder >
Bool_t RootCsg::intersect_poly_with_line_2d ( const TLine3 &  l,
const TGBinder &  p1,
const TPlane3 &  plane,
Double_t a,
Double_t b 
)

Definition at line 1741 of file CsgOps.cxx.

Referenced by intersect_polygons().

§ intersect_polygons()

template<typename TGBinderA , typename TGBinderB >
Bool_t RootCsg::intersect_polygons ( const TGBinderA &  p1,
const TGBinderB &  p2,
const TPlane3 &  plane1,
const TPlane3 &  plane2 
)

Definition at line 1872 of file CsgOps.cxx.

Referenced by partition_mesh().

§ length() [1/2]

Double_t RootCsg::length ( const TVector2 v)

Definition at line 347 of file CsgOps.cxx.

Referenced by __rdtsc(), TEveJetCone::AddEllipticCone(), TLatex::Analyse(), begin_request_handler(), TKSocket::BlockWrite(), TApplicationRemote::Broadcast(), TProof::Broadcast(), TCurlyArc::Build(), TGeoNavigator::cd(), TLatex::CheckLatexSyntax(), TGeoNavigator::CheckPath(), TAxis::ChooseTimeFormat(), TWinNTSystem::CollectMembers(), TGTextLine::DelText(), TGFont::DrawChars(), FCGX_ROOT_send_file(), ROOT::MacOSX::X11::EventTranslator::FindKeyGrabView(), ROOT::MacOSX::X11::EventTranslator::GenerateKeyPressEvent(), ROOT::MacOSX::X11::EventTranslator::GenerateKeyReleaseEvent(), TFilePrefetch::GetBlockFromCache(), TMathText::GetBoundingBox(), TWinNTSystem::GetEffectiveGid(), TWinNTSystem::GetEffectiveUid(), TGText::GetFileName(), TWinNTSystem::GetGid(), TWinNTSystem::GetGroupInfo(), TWinNTSystem::GetGUIThreadId(), TCling::GetIncludePath(), TMVA::MethodBase::GetLine(), TGTextLine::GetLineLength(), TGWin32::GetProperty(), TGTextLine::GetText(), TAttAxis::GetTitleFont(), TWinNTSystem::GetUid(), TWinNTSystem::GetUserInfo(), TMVA::PDF::GetValInverse(), TSystem::GetVolumes(), TGTextLine::GetWord(), TMathText::GetXsize(), TMathText::GetYsize(), XrdProofPhyConn::Init(), XrdProofConn::Init(), TGTextView::IsSaved(), TRootSniffer::IsScanGlobalDir(), TUDPSocket::IsValid(), TSocket::IsValid(), TArcBall::MapToSphere(), BidirMMapPipe_impl::PageChunk::mmapVariety(), TEveVector2T< TT >::NegateXY(), TEveVectorT< Float_t >::NegateXYZ(), TEveVectorT< Float_t >::Normalize(), TArrow::PaintArrow(), TLatex::PaintLatex1(), TMathText::PaintMathText(), TPolyLineShape::PaintNode(), TMatrixTSparse< Double_t >::Randomize(), TMatrixTSparse< Double_t >::RandomizePD(), randomnation(), TBranchElement::ReadLeavesMakeClass(), TStreamerInfoActions::ReadTNamed(), TGWin32VirtualXProxy::RealObject(), ROOT::Recvn(), TSSLSocket::RecvRaw(), TPSocket::RecvRaw(), TXSocket::RecvRaw(), ROOT::TMetaUtils::RemoveTemplateArgsFromName(), TPSocket::Send(), TUnixSystem::SendBuf(), TWinNTSystem::SendBuf(), ROOT::MacOSX::X11::Detail::SendKeyPressEvent(), ROOT::MacOSX::X11::Detail::SendKeyReleaseEvent(), TPSocket::SendRaw(), TXSocket::SendRaw(), THttpCallArg::SetBinData(), TText::SetMbTitle(), TEveJetCone::SetNDiv(), TAxis3D::SetOption(), TH1::SetOption(), THttpCallArg::SetPostData(), THttpCallArg::SetQuery(), TStyle::SetScreenFactor(), TAttAxis::SetTickLength(), TGLAxis::SetTickMarksLength(), TParallelCoordVar::SetTitle(), TParallelCoordVar::SetValues(), TGFont::TextHeight(), TNetXNGFile::TNetXNGFile(), TUnixSystem::UnixRecv(), TUnixSystem::UnixSend(), and TNetXNGFile::WriteBuffer().

§ length() [2/2]

Double_t RootCsg::length ( const TVector3 v)

Definition at line 788 of file CsgOps.cxx.

§ length2() [1/2]

Double_t RootCsg::length2 ( const TVector2 v)

Definition at line 340 of file CsgOps.cxx.

§ length2() [2/2]

Double_t RootCsg::length2 ( const TVector3 v)

Definition at line 781 of file CsgOps.cxx.

§ lerp() [1/2]

TPoint2 RootCsg::lerp ( const TPoint2 &  p1,
const TPoint2 &  p2,
Double_t  t 
)

Definition at line 483 of file CsgOps.cxx.

§ lerp() [2/2]

TPoint3 RootCsg::lerp ( const TPoint3 &  p1,
const TPoint3 &  p2,
Double_t  t 
)

Definition at line 933 of file CsgOps.cxx.

§ mmult_transpose_left()

TMatrix3x3 RootCsg::mmult_transpose_left ( const TMatrix3x3 &  m1,
const TMatrix3x3 &  m2 
)

Definition at line 1186 of file CsgOps.cxx.

§ mmult_transpose_right()

TMatrix3x3 RootCsg::mmult_transpose_right ( const TMatrix3x3 &  m1,
const TMatrix3x3 &  m2 
)

Definition at line 1201 of file CsgOps.cxx.

§ operator*() [1/8]

TVector2 RootCsg::operator* ( const TVector2 v,
Double_t  s 
)

Definition at line 228 of file CsgOps.cxx.

§ operator*() [2/8]

TVector2 RootCsg::operator* ( Double_t  s,
const TVector2 v 
)

Definition at line 236 of file CsgOps.cxx.

§ operator*() [3/8]

TVector3 RootCsg::operator* ( const TVector3 v,
Double_t  s 
)

Definition at line 654 of file CsgOps.cxx.

§ operator*() [4/8]

TVector3 RootCsg::operator* ( Double_t  s,
const TVector3 v 
)

Definition at line 760 of file CsgOps.cxx.

§ operator*() [5/8]

TVector3 RootCsg::operator* ( const TVector3 v1,
const TVector3 v2 
)

Definition at line 767 of file CsgOps.cxx.

§ operator*() [6/8]

TVector3 RootCsg::operator* ( const TMatrix3x3 &  m,
const TVector3 v 
)

Definition at line 1163 of file CsgOps.cxx.

§ operator*() [7/8]

TVector3 RootCsg::operator* ( const TVector3 v,
const TMatrix3x3 &  m 
)

Definition at line 1170 of file CsgOps.cxx.

§ operator*() [8/8]

TMatrix3x3 RootCsg::operator* ( const TMatrix3x3 &  m1,
const TMatrix3x3 &  m2 
)

Definition at line 1177 of file CsgOps.cxx.

§ operator+() [1/4]

TVector2 RootCsg::operator+ ( const TVector2 v1,
const TVector2 v2 
)

Definition at line 204 of file CsgOps.cxx.

§ operator+() [2/4]

TPoint2 RootCsg::operator+ ( const TPoint2 &  p,
const TVector2 v 
)

Definition at line 443 of file CsgOps.cxx.

§ operator+() [3/4]

TVector3 RootCsg::operator+ ( const TVector3 v1,
const TVector3 v2 
)

Definition at line 739 of file CsgOps.cxx.

§ operator+() [4/4]

TPoint3 RootCsg::operator+ ( const TPoint3 &  p,
const TVector3 v 
)

Definition at line 898 of file CsgOps.cxx.

§ operator-() [1/8]

TVector2 RootCsg::operator- ( const TVector2 v1,
const TVector2 v2 
)

Definition at line 212 of file CsgOps.cxx.

§ operator-() [2/8]

TVector2 RootCsg::operator- ( const TVector2 v)

Definition at line 220 of file CsgOps.cxx.

§ operator-() [3/8]

TPoint2 RootCsg::operator- ( const TPoint2 &  p,
const TVector2 v 
)

Definition at line 451 of file CsgOps.cxx.

§ operator-() [4/8]

TVector2 RootCsg::operator- ( const TPoint2 &  p1,
const TPoint2 &  p2 
)

Definition at line 459 of file CsgOps.cxx.

§ operator-() [5/8]

TVector3 RootCsg::operator- ( const TVector3 v1,
const TVector3 v2 
)

Definition at line 746 of file CsgOps.cxx.

§ operator-() [6/8]

TVector3 RootCsg::operator- ( const TVector3 v)

Definition at line 753 of file CsgOps.cxx.

§ operator-() [7/8]

TPoint3 RootCsg::operator- ( const TPoint3 &  p,
const TVector3 v 
)

Definition at line 905 of file CsgOps.cxx.

§ operator-() [8/8]

TVector3 RootCsg::operator- ( const TPoint3 &  p1,
const TPoint3 &  p2 
)

Definition at line 912 of file CsgOps.cxx.

§ operator/() [1/2]

TVector2 RootCsg::operator/ ( const TVector2 v,
Double_t  s 
)

Definition at line 244 of file CsgOps.cxx.

§ operator/() [2/2]

TVector3 RootCsg::operator/ ( const TVector3 v,
Double_t  s 
)

Definition at line 661 of file CsgOps.cxx.

§ operator==() [1/3]

Bool_t RootCsg::operator== ( const Tuple2 &  t1,
const Tuple2 &  t2 
)

Definition at line 137 of file CsgOps.cxx.

§ operator==() [2/3]

Bool_t RootCsg::operator== ( const Tuple3 &  t1,
const Tuple3 &  t2 
)

Definition at line 526 of file CsgOps.cxx.

§ operator==() [3/3]

Bool_t RootCsg::operator== ( const Tuple4 &  t1,
const Tuple4 &  t2 
)

Definition at line 982 of file CsgOps.cxx.

§ partition_mesh()

template<class CMesh , class TMesh >
void RootCsg::partition_mesh ( CMesh &  mesh,
const TMesh &  mesh2,
const OverlapTable_t table 
)

Definition at line 2403 of file CsgOps.cxx.

Referenced by extract_classification(), and extract_classification_preserve().

§ point_in_polygon_test_3d()

template<typename TGBinder >
Bool_t RootCsg::point_in_polygon_test_3d ( const TGBinder &  p1,
const TPlane3 &  plane,
const TPoint3 &  origin,
const TPoint3 &  pointOnPlane 
)

Definition at line 1782 of file CsgOps.cxx.

Referenced by instersect_poly_with_line_3d().

§ polygon_mid_point()

template<typename TGBinder >
TPoint3 RootCsg::polygon_mid_point ( const TGBinder &  p1)

Definition at line 1801 of file CsgOps.cxx.

Referenced by polygon_mid_point_ray().

§ polygon_mid_point_ray()

template<typename TGBinder >
TLine3 RootCsg::polygon_mid_point_ray ( const TGBinder &  p1,
const TPlane3 &  plane 
)

Definition at line 1829 of file CsgOps.cxx.

Referenced by classify_mesh().

§ sign()

Int_t RootCsg::sign ( Double_t  x)

§ triple()

Double_t RootCsg::triple ( const TVector3 v1,
const TVector3 v2,
const TVector3 v3 
)

Definition at line 823 of file CsgOps.cxx.

Referenced by operator==().

§ which_side()

template<typename TGBinder >
Int_t RootCsg::which_side ( const TGBinder &  p1,
const TPlane3 &  plane1 
)

Definition at line 1813 of file CsgOps.cxx.

Variable Documentation

§ cofacTable

const Int_t RootCsg::cofacTable[3][2] = {{1,2}, {0,2}, {0,1}}

Definition at line 1687 of file CsgOps.cxx.

§ epsilon

const Double_t RootCsg::epsilon = 1e-10

Definition at line 83 of file CsgOps.cxx.

Referenced by fuzzy_zero(), and mmult_transpose_right().

§ epsilon2

const Double_t RootCsg::epsilon2 = 1e-20

Definition at line 84 of file CsgOps.cxx.

Referenced by fuzzy_zero2().

§ infinity

const Double_t RootCsg::infinity = 1e50