ug4
|
#include <vector>
#include <cassert>
#include "lib_grid/lg_base.h"
#include "lib_grid/algorithms/debug_util.h"
#include "lib_grid/grid_objects/tetrahedron_rules.h"
#include "lib_grid/algorithms/attachment_util.h"
#include "lib_grid/file_io/file_io.h"
#include "lib_grid/algorithms/subdivision/subdivision_loop.h"
#include "lib_grid/parallelization/util/compol_attachment_reduce.h"
#include "lib_grid/parallelization/util/compol_copy_attachment.h"
#include "lib_grid/parallelization/util/attachment_operations.hpp"
#include "lib_grid/parallelization/distributed_grid.h"
#include "pcl/pcl_interface_communicator.h"
#include "common/profiler/profiler.h"
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... | |