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

Three 3D vertices defining one of the facets in STL input file. More...

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

+ Collaboration diagram for EicStlFacet:

Public Member Functions

 EicStlFacet (EicStlVertex *const v1, EicStlVertex *const v2, EicStlVertex *const v3)
 
 ~EicStlFacet ()
 
const EicStlKeykey () const
 
int Calculate ()
 
void SetCounter (unsigned counter)
 
void DecrementCounter (void)
 
void IncrementCounter (void)
 
unsigned GetCounter (void) const
 
const vEntryvertices (void) const
 
const TVector3 & GetNormal (void) const
 
void SetEdge (unsigned iq, EicStlFacetEdge *edge)
 
const EicStlFacetEdgeedge (unsigned iq) const
 

Public Attributes

std::vector< EicStlVertex * > mVbuffer
 
EicStlKeymKey
 
TVector3 mNormal
 
vEntrymVertices
 
EicStlFacetEdgemEdges [3]
 
unsigned mCounter
 

Detailed Description

Three 3D vertices defining one of the facets in STL input file.

Note
Triangular STL facet is oriented, but only during assmebly creation; vertices are sitting in the vEntry map (see below) in their EicStlKey order; as of Oct'2017 there is no more concept of mirror vertices (and mirror edges), but orientation is considered undefined upon export (in other words imported STL files are not trusted for consistency);

Definition at line 24 of file EicStlFacet.h.

View newest version in sPHENIX GitHub at line 24 of file EicStlFacet.h

Constructor & Destructor Documentation

EicStlFacet::EicStlFacet ( EicStlVertex *const  v1,
EicStlVertex *const  v2,
EicStlVertex *const  v3 
)

Main constructor

Parameters
v11-st vertex
v22-d vertex
v33-d vertex

Definition at line 13 of file EicStlFacet.cxx.

View newest version in sPHENIX GitHub at line 13 of file EicStlFacet.cxx

References mVbuffer.

EicStlFacet::~EicStlFacet ( )
inline

Destructor; just need to clean up the keys

Definition at line 34 of file EicStlFacet.h.

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

References mKey, and mVertices.

Member Function Documentation

int EicStlFacet::Calculate ( void  )

Printout method; basically exploits EicStlVertex printout

Definition at line 21 of file EicStlFacet.cxx.

View newest version in sPHENIX GitHub at line 21 of file EicStlFacet.cxx

References EicStlKeyCompare(), EicStlVertex::GetMergedVertex(), GetVertexArrayKey(), it, EicStlVertex::key(), mKey, mNormal, mVbuffer, mVertices, and vtx().

Referenced by EicStlMediaGroup::CalculateFacets().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void EicStlFacet::DecrementCounter ( void  )
inline

Definition at line 55 of file EicStlFacet.h.

View newest version in sPHENIX GitHub at line 55 of file EicStlFacet.h

References mCounter.

Referenced by EicStlMediaGroup::CoupleFacetToAssembly().

+ Here is the caller graph for this function:

const EicStlFacetEdge* EicStlFacet::edge ( unsigned  iq) const
inline

Definition at line 65 of file EicStlFacet.h.

View newest version in sPHENIX GitHub at line 65 of file EicStlFacet.h

Referenced by EicStlMediaGroup::CoupleFacetToAssembly(), EicCompositeShape::LocalFillBuffer3D(), and SetEdge().

+ Here is the caller graph for this function:

unsigned EicStlFacet::GetCounter ( void  ) const
inline

Definition at line 57 of file EicStlFacet.h.

View newest version in sPHENIX GitHub at line 57 of file EicStlFacet.h

References mCounter.

Referenced by EicStlMediaGroup::CoupleFacetToAssembly(), and EicStlMediaGroup::SplitIntoAssemblies().

+ Here is the caller graph for this function:

const TVector3& EicStlFacet::GetNormal ( void  ) const
inline

Definition at line 60 of file EicStlFacet.h.

View newest version in sPHENIX GitHub at line 60 of file EicStlFacet.h

References mNormal.

Referenced by EicStlMediaGroup::CoupleFacetToAssembly(), EicStlFactory::DumpTmpStlFile(), and EicStlMediaGroup::SplitIntoAssemblies().

+ Here is the caller graph for this function:

void EicStlFacet::IncrementCounter ( void  )
inline

Definition at line 56 of file EicStlFacet.h.

View newest version in sPHENIX GitHub at line 56 of file EicStlFacet.h

References mCounter.

const EicStlKey* EicStlFacet::key ( ) const
inline

Access method; returns unique read-only STL key for this facet

Definition at line 45 of file EicStlFacet.h.

View newest version in sPHENIX GitHub at line 45 of file EicStlFacet.h

References mKey.

Referenced by EicStlMediaGroup::CalculateFacets().

+ Here is the caller graph for this function:

void EicStlFacet::SetCounter ( unsigned  counter)
inline

Definition at line 54 of file EicStlFacet.h.

View newest version in sPHENIX GitHub at line 54 of file EicStlFacet.h

References mCounter.

Referenced by EicStlMediaGroup::CalculateFacets().

+ Here is the caller graph for this function:

void EicStlFacet::SetEdge ( unsigned  iq,
EicStlFacetEdge edge 
)
inline

Definition at line 62 of file EicStlFacet.h.

View newest version in sPHENIX GitHub at line 62 of file EicStlFacet.h

References edge(), and mEdges.

Referenced by EicStlMediaGroup::AllocateEdges().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 59 of file EicStlFacet.h.

View newest version in sPHENIX GitHub at line 59 of file EicStlFacet.h

References mVertices.

Referenced by EicStlMediaGroup::AllocateEdges(), EicStlMediaGroup::CalculateFacets(), and EicStlFactory::DumpTmpStlFile().

+ Here is the caller graph for this function:

Member Data Documentation

unsigned EicStlFacet::mCounter

Definition at line 88 of file EicStlFacet.h.

View newest version in sPHENIX GitHub at line 88 of file EicStlFacet.h

Referenced by DecrementCounter(), GetCounter(), IncrementCounter(), and SetCounter().

EicStlFacetEdge* EicStlFacet::mEdges[3]

Definition at line 84 of file EicStlFacet.h.

View newest version in sPHENIX GitHub at line 84 of file EicStlFacet.h

Referenced by SetEdge().

EicStlKey* EicStlFacet::mKey

Facet unique 3*3*8-byte STL key

Definition at line 73 of file EicStlFacet.h.

View newest version in sPHENIX GitHub at line 73 of file EicStlFacet.h

Referenced by Calculate(), key(), and ~EicStlFacet().

TVector3 EicStlFacet::mNormal

Normal to this facet, calculated by hand as a (v2-v1)x(v3-v1) vector product

Definition at line 75 of file EicStlFacet.h.

View newest version in sPHENIX GitHub at line 75 of file EicStlFacet.h

Referenced by Calculate(), and GetNormal().

std::vector<EicStlVertex*> EicStlFacet::mVbuffer

Definition at line 65 of file EicStlFacet.h.

View newest version in sPHENIX GitHub at line 65 of file EicStlFacet.h

Referenced by Calculate(), EicStlFacet(), and EicCompositeShape::LocalFillBuffer3D().

vEntry* EicStlFacet::mVertices

Definition at line 78 of file EicStlFacet.h.

View newest version in sPHENIX GitHub at line 78 of file EicStlFacet.h

Referenced by Calculate(), vertices(), and ~EicStlFacet().


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