ug4
subdivision_volumes.h File Reference

Go to the source code of this file.

Namespaces

 ug
 the ug namespace
 

Enumerations

enum  ug::GlobalBoundaryRefinementRule {
  ug::LINEAR , ug::SUBDIV_SURF_LOOP_SCHEME , ug::SUBDIV_SURF_AVERAGING_SCHEME , ug::SUBDIV_SURF_BUTTERFLY_SCHEME ,
  ug::SUBDIV_VOL
}
 enumeration for identification of global boundary refinement rule to be used More...
 

Functions

void ug::ApplyConstrainedSmoothSubdivisionVolumesToTopLevel (MultiGrid &mg, MGSubsetHandler &sh, MGSubsetHandler &markSH, const char *linearManifoldSubsets)
 
template<class TAPosition >
void ug::ApplySmoothManifoldPosToTopLevelAveragingScheme (MultiGrid &mg, TAPosition &aPos, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH)
 Toplevel vertex repositioning function for subdivision surfaces refinement (Averaging scheme) More...
 
template<class TAPosition >
void ug::ApplySmoothManifoldPosToTopLevelButterflyScheme (MultiGrid &mg, TAPosition &aPos, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH)
 Toplevel vertex repositioning function for subdivision surfaces refinement (Butterfly scheme) More...
 
template<class TAPosition >
void ug::ApplySmoothManifoldPosToTopLevelLoopScheme (MultiGrid &mg, TAPosition &aPos, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH, bool bCreaseSurf)
 Toplevel vertex repositioning function for subdivision surfaces refinement (by C. Loop, 1987) More...
 
template<class TAPosition >
void ug::ApplySmoothSubdivisionSurfacesToTopLevel (MultiGrid &mg, TAPosition &aPos, MGSubsetHandler &sh, MGSubsetHandler &markSH, const char *linearManifoldSubsets, bool bCreaseSurf)
 Wrapper procedures for smooth subdivision surfaces/volumes hierarchy creation. More...
 
template<class TAPosition >
void ug::ApplySmoothSubdivisionSurfacesToTopLevel (MultiGrid &mg, TAPosition &aPos, MGSubsetHandler &sh, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH, bool bCreaseSurf)
 Function to create a smooth subdivision volumes hierarchy. More...
 
void ug::ApplySmoothSubdivisionVolumesToTopLevel (MultiGrid &mg, MGSubsetHandler &sh, MGSubsetHandler &markSH, const char *linearManifoldSubsets)
 
void ug::ApplySmoothSubdivisionVolumesToTopLevel (MultiGrid &mg, MGSubsetHandler &sh, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH, bool bConstrained)
 Function to create a smooth subdivision volumes hierarchy. More...
 
void ug::ApplySmoothVolumePosToTopLevel (MultiGrid &mg, MGSubsetHandler &markSH, bool bConstrained)
 Toplevel vertex repositioning function for subdivision volumes refinement. More...
 
void ug::CalculateConstrainedSmoothVolumePosInTopLevel (MultiGrid &mg, MGSubsetHandler &markSH, APosition &aSmoothVolPos_toc)
 Toplevel vertex smoothing function for subdivision volumes refinement. More...
 
void ug::CalculateNumElemsVertexAttachmentInTopLevel (MultiGrid &mg, AInt &aNumElems_toc, AInt &aNumElems_prism, AInt &aNumElems_hex)
 Function for calculating the number of associated volumes of all toplevel vertices. More...
 
void ug::CalculateNumManifoldEdgesVertexAttachmentInParentLevel (MultiGrid &mg, MGSubsetHandler &markSH, AInt &aNumManifoldEdges, bool bCreaseSurf)
 Function for calculating the number of associated manifold edges of all parent level vertices. More...
 
void ug::CalculateNumManifoldFacesVertexAttachmentInTopLevel (MultiGrid &mg, MGSubsetHandler &markSH, AInt &aNumManifoldFaces_tri, AInt &aNumManifoldFaces_quad)
 Function for calculating the number of associated manifold faces of all toplevel manifold vertices. More...
 
template<class TAPosition >
void ug::CalculateSmoothCreaseManifoldPosInParentLevelLoopScheme (MultiGrid &mg, TAPosition &aPos, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH, TAPosition &aSmoothBndPosEvenVrt, TAPosition &aSmoothBndPosOddVrt, AInt &aNumManifoldEdges)
 Parent level vertex smoothing function for subdivision crease surfaces refinement (by C. Loop, 1987) More...
 
template<class TAPosition >
void ug::CalculateSmoothManifoldPosInParentLevelButterflyScheme (MultiGrid &mg, TAPosition &aPos, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH, TAPosition &aSmoothBndPosOddVrt, AInt &aNumManifoldEdges)
 Parent level vertex smoothing function for subdivision surfaces refinement (Butterfly scheme) More...
 
template<class TAPosition >
void ug::CalculateSmoothManifoldPosInParentLevelLoopScheme (MultiGrid &mg, TAPosition &aPos, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH, TAPosition &aSmoothBndPosEvenVrt, TAPosition &aSmoothBndPosOddVrt, AInt &aNumManifoldEdges)
 Parent level vertex smoothing function for subdivision surfaces refinement (by C. Loop, 1987) More...
 
template<class TAPosition >
void ug::CalculateSmoothManifoldPosInTopLevelAveragingScheme (MultiGrid &mg, TAPosition &aPos, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH, TAPosition &aSmoothBndPos_tri, TAPosition &aSmoothBndPos_quad)
 Toplevel vertex smoothing function for subdivision surfaces refinement (Averaging scheme) More...
 
void ug::CalculateSmoothVolumePosInTopLevel (MultiGrid &mg, MGSubsetHandler &markSH, APosition &aSmoothVolPos_toc, APosition &aSmoothVolPos_prism, APosition &aSmoothVolPos_hex)
 Toplevel vertex smoothing function for subdivision volumes refinement. More...
 
void ug::CheckValences (MultiGrid &mg, MGSubsetHandler &markSH, const char *filename)
 Function for checking the number of associated volumes of all edges. More...
 
GlobalBoundaryRefinementRule ug::GetBoundaryRefinementRule ()
 get procedure for boundary refinement rule variable More...
 
void ug::InitLinearManifoldSubsetHandler (MultiGrid &mg, MGSubsetHandler &sh, MGSubsetHandler &linearManifoldSH, const char *linearManifoldSubsets)
 Procedure to initialize the linear boundary manifold subsets SubsetHandler with user-specified subsets. More...
 
void ug::PrintSubdivisionVolumesRefinementMask ()
 Function for printing the subdivision volumes tet-oct refinement mask. More...
 
template<class TAPosition >
void ug::ProjectHierarchyToSubdivisionLimit (MultiGrid &mg, TAPosition &aPos)
 Projection function for smooth subdivision (volumes+surface) refinement. More...
 
void ug::SetBoundaryRefinementRule (GlobalBoundaryRefinementRule refRule)
 setting procedure for global boundary refinement rule variable More...
 
void ug::SplitOctahedronToTetrahedrons (Grid &grid, Octahedron *oct, Volume *parentVol, std::vector< Tetrahedron * > &vTetsOut, int bestDiag)
 Function for splitting an octahedron to 4 sub-tetrahedrons. More...
 
void ug::TetrahedralizeHybridTetOctGrid (MultiGrid &mg, int bestDiag)
 Conversion function for hybrid tetra-/octahedral multigrids. More...