EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EicStlMediaGroup Class Reference

#include <EicRoot/blob/master/eic/cad/EicStlMediaGroup.h>

+ Collaboration diagram for EicStlMediaGroup:

Public Member Functions

 EicStlMediaGroup ()
 
 ~EicStlMediaGroup ()
 
const vEntryvertices (void) const
 
const eEntryedges (void) const
 
const fEntryfacets (void) const
 
const std::vector
< EicStlAssembly * > & 
assemblies (void) const
 
void AddVertex (EicStlVertex *vertex)
 
int SplitIntoAssemblies (double tolerance=0.0, bool easy=false)
 

Public Attributes

std::multimap< double,
EicStlVertex * > 
xCoord
 
std::multimap< double,
EicStlVertex * > 
yCoord
 
std::multimap< double,
EicStlVertex * > 
zCoord
 
std::vector< EicStlFacet * > mFbuffer
 

Private Member Functions

void MergeDegenerateVertices (double tolerance)
 
void AddVertexToCurrentGroup (std::vector< std::vector< EicStlVertex * > > &ngroups, EicStlVertex *vtx)
 
void CalculateFacets (void)
 
void AllocateEdges (void)
 
void CoupleFacetToAssembly (EicStlFacet *facet, bool flip)
 

Private Attributes

vEntrymVertices
 
eEntrymEdges
 
fEntrymFacets
 
std::vector< EicStlAssembly * > mAssemblies
 
bool mEdgeTotalOwnerCountOk
 
bool mEdgeSimpleSharingOk
 

Detailed Description

Definition at line 20 of file EicStlMediaGroup.h.

View newest version in sPHENIX GitHub at line 20 of file EicStlMediaGroup.h

Constructor & Destructor Documentation

EicStlMediaGroup::EicStlMediaGroup ( )

Definition at line 16 of file EicStlMediaGroup.cxx.

View newest version in sPHENIX GitHub at line 16 of file EicStlMediaGroup.cxx

References EicStlKeyCompare(), mEdges, mFacets, and mVertices.

+ Here is the call graph for this function:

EicStlMediaGroup::~EicStlMediaGroup ( )
inline

Definition at line 23 of file EicStlMediaGroup.h.

View newest version in sPHENIX GitHub at line 23 of file EicStlMediaGroup.h

Member Function Documentation

void EicStlMediaGroup::AddVertex ( EicStlVertex vertex)
inline

Definition at line 30 of file EicStlMediaGroup.h.

View newest version in sPHENIX GitHub at line 30 of file EicStlMediaGroup.h

References EicStlVertex::key().

Referenced by EicStlFactory::PreAllocateFacet().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void EicStlMediaGroup::AddVertexToCurrentGroup ( std::vector< std::vector< EicStlVertex * > > &  ngroups,
EicStlVertex vtx 
)
private

Definition at line 26 of file EicStlMediaGroup.cxx.

View newest version in sPHENIX GitHub at line 26 of file EicStlMediaGroup.cxx

References EicStlVertex::DegenerateNeighbors3D(), EicStlVertex::IsMerged(), and EicStlVertex::SetMergedFlag().

Referenced by MergeDegenerateVertices().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void EicStlMediaGroup::AllocateEdges ( void  )
private

Definition at line 211 of file EicStlMediaGroup.cxx.

View newest version in sPHENIX GitHub at line 211 of file EicStlMediaGroup.cxx

References EicStlFacetEdge::AddFacet(), EicStlFacetEdge::facets(), EicStlFacetEdge::key(), mEdges, mEdgeSimpleSharingOk, mEdgeTotalOwnerCountOk, mFacets, EicStlVertex::Print(), printf(), EicStlFacet::SetEdge(), EicStlFacetEdge::vertices(), EicStlFacet::vertices(), and vtx().

Referenced by SplitIntoAssemblies().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const std::vector<EicStlAssembly*>& EicStlMediaGroup::assemblies ( void  ) const
inline

Definition at line 28 of file EicStlMediaGroup.h.

View newest version in sPHENIX GitHub at line 28 of file EicStlMediaGroup.h

References mAssemblies.

Referenced by EicStlFactory::_ConstructGeometry(), EicStlFactory::CreateRootFile(), and EicCompositeShape::LocalFillBuffer3D().

+ Here is the caller graph for this function:

void EicStlMediaGroup::CalculateFacets ( void  )
private

Definition at line 161 of file EicStlMediaGroup.cxx.

View newest version in sPHENIX GitHub at line 161 of file EicStlMediaGroup.cxx

References EicStlFacet::Calculate(), EicStlVertex::GetMergedVertex(), EicStlVertex::IsMerged(), EicStlFacet::key(), mFacets, mFbuffer, mVertices, EicStlFacet::SetCounter(), EicStlFacet::vertices(), and vtx().

Referenced by SplitIntoAssemblies().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void EicStlMediaGroup::CoupleFacetToAssembly ( EicStlFacet facet,
bool  flip 
)
private

Couple facet to the currently populated assembly

Parameters
facetfacet pointer

Definition at line 270 of file EicStlMediaGroup.cxx.

View newest version in sPHENIX GitHub at line 270 of file EicStlMediaGroup.cxx

References EicStlFacet::DecrementCounter(), EicStlFacet::edge(), EicStlFacetEdge::facets(), EicStlFacet::GetCounter(), EicStlFacet::GetNormal(), mAssemblies, printf(), rp(), v1, v2, and EicStlFacetEdge::vertices().

Referenced by SplitIntoAssemblies().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const eEntry* EicStlMediaGroup::edges ( void  ) const
inline

Definition at line 26 of file EicStlMediaGroup.h.

View newest version in sPHENIX GitHub at line 26 of file EicStlMediaGroup.h

References mEdges.

const fEntry* EicStlMediaGroup::facets ( void  ) const
inline

Definition at line 27 of file EicStlMediaGroup.h.

View newest version in sPHENIX GitHub at line 27 of file EicStlMediaGroup.h

References mFacets.

Referenced by EicCompositeShape::LocalFillBuffer3D().

+ Here is the caller graph for this function:

void EicStlMediaGroup::MergeDegenerateVertices ( double  tolerance)
private

Ordered multimap of edge chains in this STL file; well, they are not necessarily unique?

Definition at line 41 of file EicStlMediaGroup.cxx.

View newest version in sPHENIX GitHub at line 41 of file EicStlMediaGroup.cxx

References EicStlVertex::AddDegenerateNeighbors3D(), AddVertexToCurrentGroup(), EicStlVertex::DegenerateNeighbors1D(), EicStlVertex::DegenerateNeighbors3D(), EicStlKey::GetData(), EicStlVertex::IncrementDegenerateNeighbor1D(), EicStlVertex::IsMerged(), EicStlVertex::key(), mVertices, printf(), EicStlVertex::SetMergedVertex(), Acts::Test::tolerance, vtx(), xCoord, yCoord, and zCoord.

Referenced by SplitIntoAssemblies().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int EicStlMediaGroup::SplitIntoAssemblies ( double  tolerance = 0.0,
bool  easy = false 
)

Definition at line 370 of file EicStlMediaGroup.cxx.

View newest version in sPHENIX GitHub at line 370 of file EicStlMediaGroup.cxx

References AllocateEdges(), CalculateFacets(), CoupleFacetToAssembly(), EicStlVertex::DistanceToOrigin(), EicStlAssembly::facets(), EicStlVertex::facets(), EicStlFacet::GetCounter(), EicStlKey::GetData(), EicStlFacet::GetNormal(), EicStlVertex::key(), mAssemblies, mEdgeSimpleSharingOk, mEdgeTotalOwnerCountOk, MergeDegenerateVertices(), mVertices, printf(), and vtx().

Referenced by EicStlFactory::_ConstructGeometry(), EicStlFactory::CreateRootFile(), and EicCompositeShape::LocalFillBuffer3D().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const vEntry* EicStlMediaGroup::vertices ( void  ) const
inline

Definition at line 25 of file EicStlMediaGroup.h.

View newest version in sPHENIX GitHub at line 25 of file EicStlMediaGroup.h

References mVertices.

Referenced by EicStlFactory::_ConstructGeometry(), EicCompositeShape::LocalFillBuffer3D(), and EicStlFactory::PreAllocateFacet().

+ Here is the caller graph for this function:

Member Data Documentation

std::vector<EicStlAssembly*> EicStlMediaGroup::mAssemblies
private

Array of identified independent assemblies

Definition at line 46 of file EicStlMediaGroup.h.

View newest version in sPHENIX GitHub at line 46 of file EicStlMediaGroup.h

Referenced by assemblies(), CoupleFacetToAssembly(), and SplitIntoAssemblies().

eEntry* EicStlMediaGroup::mEdges
private

Ordered map of vertex edges in this STL file

Definition at line 42 of file EicStlMediaGroup.h.

View newest version in sPHENIX GitHub at line 42 of file EicStlMediaGroup.h

Referenced by AllocateEdges(), edges(), and EicStlMediaGroup().

bool EicStlMediaGroup::mEdgeSimpleSharingOk
private

Definition at line 61 of file EicStlMediaGroup.h.

View newest version in sPHENIX GitHub at line 61 of file EicStlMediaGroup.h

Referenced by AllocateEdges(), and SplitIntoAssemblies().

bool EicStlMediaGroup::mEdgeTotalOwnerCountOk
private

Definition at line 61 of file EicStlMediaGroup.h.

View newest version in sPHENIX GitHub at line 61 of file EicStlMediaGroup.h

Referenced by AllocateEdges(), and SplitIntoAssemblies().

fEntry* EicStlMediaGroup::mFacets
private

Ordered map of facets in this STL file

Definition at line 44 of file EicStlMediaGroup.h.

View newest version in sPHENIX GitHub at line 44 of file EicStlMediaGroup.h

Referenced by AllocateEdges(), CalculateFacets(), EicStlMediaGroup(), and facets().

std::vector<EicStlFacet*> EicStlMediaGroup::mFbuffer

Definition at line 35 of file EicStlMediaGroup.h.

View newest version in sPHENIX GitHub at line 35 of file EicStlMediaGroup.h

Referenced by CalculateFacets(), and EicStlFactory::PreAllocateFacet().

vEntry* EicStlMediaGroup::mVertices
private

Ordered map of vertices in this STL file

Definition at line 40 of file EicStlMediaGroup.h.

View newest version in sPHENIX GitHub at line 40 of file EicStlMediaGroup.h

Referenced by CalculateFacets(), EicStlMediaGroup(), MergeDegenerateVertices(), SplitIntoAssemblies(), and vertices().

std::multimap<double, EicStlVertex*> EicStlMediaGroup::xCoord

Definition at line 34 of file EicStlMediaGroup.h.

View newest version in sPHENIX GitHub at line 34 of file EicStlMediaGroup.h

Referenced by MergeDegenerateVertices(), and EicStlFactory::PreAllocateFacet().

std::multimap<double, EicStlVertex*> EicStlMediaGroup::yCoord

Definition at line 34 of file EicStlMediaGroup.h.

View newest version in sPHENIX GitHub at line 34 of file EicStlMediaGroup.h

Referenced by MergeDegenerateVertices(), and EicStlFactory::PreAllocateFacet().

std::multimap<double, EicStlVertex*> EicStlMediaGroup::zCoord

Definition at line 34 of file EicStlMediaGroup.h.

View newest version in sPHENIX GitHub at line 34 of file EicStlMediaGroup.h

Referenced by MergeDegenerateVertices(), and EicStlFactory::PreAllocateFacet().


The documentation for this class was generated from the following files: