ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
Octree< Real > Class Template Reference

#include <MultiGridOctreeData.h>

Collaboration diagram for Octree< Real >:

Classes

struct  _Evaluator
 
struct  FaceEdges
 
struct  IsoEdge
 
struct  ProjectiveData
 
struct  SlabValues
 
struct  SliceValues
 
struct  XSliceValues
 

Public Types

typedef TreeOctNode::NeighborKey< 1, 1 > AdjacenctNodeKey
 
typedef TreeOctNode::ConstNeighborKey< 1, 1 > ConstAdjacenctNodeKey
 

Public Member Functions

template<int WeightDegree>
void _GetSampleDepthAndWeight (const SparseNodeData< Real, WeightDegree > &densityWeights, Point3D< Real > position, PointSupportKey< WeightDegree > &weightKey, Real &depth, Real &weight)
 
template<int WeightDegree>
void _GetSampleDepthAndWeight (const SparseNodeData< Real, WeightDegree > &densityWeights, Point3D< Real > position, ConstPointSupportKey< WeightDegree > &weightKey, Real &depth, Real &weight)
 
template<class V , int DataDegree>
Evaluate (const DenseNodeData< V, DataDegree > &coefficients, Point3D< Real > p, const BSplineData< DataDegree > &bsData) const
 
template<class V , int DataDegree>
Evaluate (const SparseNodeData< V, DataDegree > &coefficients, Point3D< Real > p, const BSplineData< DataDegree > &bsData) const
 
template<class V , int DataDegree>
V * Evaluate (const DenseNodeData< V, DataDegree > &coefficients, int &res, Real isoValue=0.f, int depth=-1, bool primal=false)
 
template<int NormalDegree>
int _HasNormals (TreeOctNode *node, const SparseNodeData< Point3D< Real >, NormalDegree > &normalInfo)
 
void _MakeComplete (void)
 
void _SetValidityFlags (void)
 
template<int NormalDegree>
void _ClipTree (const SparseNodeData< Point3D< Real >, NormalDegree > &normalInfo)
 
template<class V , int FEMDegree>
_getCenterValue (const ConstPointSupportKey< FEMDegree > &neighborKey, const TreeOctNode *node, const DenseNodeData< V, FEMDegree > &solution, const DenseNodeData< V, FEMDegree > &metSolution, const _Evaluator< FEMDegree > &evaluator, bool isInterior) const
 
template<class V , int FEMDegree>
_getCornerValue (const ConstPointSupportKey< FEMDegree > &neighborKey, const TreeOctNode *node, int corner, const DenseNodeData< V, FEMDegree > &solution, const DenseNodeData< V, FEMDegree > &metSolution, const _Evaluator< FEMDegree > &evaluator, bool isInterior) const
 
template<class V , int FEMDegree>
_getEdgeValue (const ConstPointSupportKey< FEMDegree > &neighborKey, const TreeOctNode *node, int edge, const DenseNodeData< V, FEMDegree > &solution, const DenseNodeData< V, FEMDegree > &metSolution, const _Evaluator< FEMDegree > &evaluator, bool isInterior) const
 
template<int FEMDegree>
std::pair< Real, Point3D< Real > > _getCornerValueAndGradient (const ConstPointSupportKey< FEMDegree > &neighborKey, const TreeOctNode *node, int corner, const DenseNodeData< Real, FEMDegree > &solution, const DenseNodeData< Real, FEMDegree > &metSolution, const _Evaluator< FEMDegree > &evaluator, bool isInterior) const
 
template<int FEMDegree>
std::pair< Real, Point3D< Real > > _getEdgeValueAndGradient (const ConstPointSupportKey< FEMDegree > &neighborKey, const TreeOctNode *node, int edge, const DenseNodeData< Real, FEMDegree > &solution, const DenseNodeData< Real, FEMDegree > &metSolution, const _Evaluator< FEMDegree > &evaluator, bool isInterior) const
 
template<class Vertex , int FEMDegree>
void SetSliceIsoCorners (const DenseNodeData< Real, FEMDegree > &solution, const DenseNodeData< Real, FEMDegree > &coarseSolution, Real isoValue, int depth, int slice, std::vector< SlabValues< Vertex > > &sValues, const _Evaluator< FEMDegree > &evaluator, int threads)
 
template<class Vertex , int FEMDegree>
void SetSliceIsoCorners (const DenseNodeData< Real, FEMDegree > &solution, const DenseNodeData< Real, FEMDegree > &coarseSolution, Real isoValue, int depth, int slice, int z, std::vector< SlabValues< Vertex > > &sValues, const _Evaluator< FEMDegree > &evaluator, int threads)
 
template<int WeightDegree, int ColorDegree, class Vertex >
void SetSliceIsoVertices (const BSplineData< ColorDegree > *colorBSData, const SparseNodeData< Real, WeightDegree > *densityWeights, const SparseNodeData< ProjectiveData< Point3D< Real > >, ColorDegree > *colorData, Real isoValue, int depth, int slice, int &vOffset, CoredMeshData< Vertex > &mesh, std::vector< SlabValues< Vertex > > &sValues, int threads)
 
template<int WeightDegree, int ColorDegree, class Vertex >
void SetSliceIsoVertices (const BSplineData< ColorDegree > *colorBSData, const SparseNodeData< Real, WeightDegree > *densityWeights, const SparseNodeData< ProjectiveData< Point3D< Real > >, ColorDegree > *colorData, Real isoValue, int depth, int slice, int z, int &vOffset, CoredMeshData< Vertex > &mesh, std::vector< SlabValues< Vertex > > &sValues, int threads)
 
template<int WeightDegree, int ColorDegree, class Vertex >
void SetXSliceIsoVertices (const BSplineData< ColorDegree > *colorBSData, const SparseNodeData< Real, WeightDegree > *densityWeights, const SparseNodeData< ProjectiveData< Point3D< Real > >, ColorDegree > *colorData, Real isoValue, int depth, int slab, int &vOffset, CoredMeshData< Vertex > &mesh, std::vector< SlabValues< Vertex > > &sValues, int threads)
 
template<class Vertex >
void CopyFinerSliceIsoEdgeKeys (int depth, int slice, std::vector< SlabValues< Vertex > > &sValues, int threads)
 
template<class Vertex >
void CopyFinerSliceIsoEdgeKeys (int depth, int slice, int z, std::vector< SlabValues< Vertex > > &sValues, int threads)
 
template<class Vertex >
void CopyFinerXSliceIsoEdgeKeys (int depth, int slab, std::vector< SlabValues< Vertex > > &sValues, int threads)
 
template<class Vertex >
void SetSliceIsoEdges (int depth, int slice, std::vector< SlabValues< Vertex > > &slabValues, int threads)
 
template<class Vertex >
void SetSliceIsoEdges (int depth, int slice, int z, std::vector< SlabValues< Vertex > > &slabValues, int threads)
 
template<class Vertex >
void SetXSliceIsoEdges (int depth, int slice, std::vector< SlabValues< Vertex > > &slabValues, int threads)
 
template<class Vertex >
void SetIsoSurface (int depth, int offset, const SliceValues< Vertex > &bValues, const SliceValues< Vertex > &fValues, const XSliceValues< Vertex > &xValues, CoredMeshData< Vertex > &mesh, bool polygonMesh, bool addBarycenter, int &vOffset, int threads)
 
template<int WeightDegree, int ColorDegree, class Vertex >
bool GetIsoVertex (const BSplineData< ColorDegree > *colorBSData, const SparseNodeData< Real, WeightDegree > *densityWeights, const SparseNodeData< ProjectiveData< Point3D< Real > >, ColorDegree > *colorData, Real isoValue, ConstPointSupportKey< WeightDegree > &weightKey, ConstPointSupportKey< ColorDegree > &colorKey, const TreeOctNode *node, int edgeIndex, int z, const SliceValues< Vertex > &sValues, Vertex &vertex)
 
template<int WeightDegree, int ColorDegree, class Vertex >
bool GetIsoVertex (const BSplineData< ColorDegree > *colorBSData, const SparseNodeData< Real, WeightDegree > *densityWeights, const SparseNodeData< ProjectiveData< Point3D< Real > >, ColorDegree > *colorData, Real isoValue, ConstPointSupportKey< WeightDegree > &weightKey, ConstPointSupportKey< ColorDegree > &colorKey, const TreeOctNode *node, int cornerIndex, const SliceValues< Vertex > &bValues, const SliceValues< Vertex > &fValues, Vertex &vertex)
 
 Octree (void)
 
template<class PointReal , int NormalDegree, int WeightDegree, int DataDegree, class Data , class _Data >
int SetTree (OrientedPointStream< PointReal > *pointStream, int minDepth, int maxDepth, int fullDepth, int splatDepth, Real samplesPerNode, Real scaleFactor, bool useConfidence, bool useNormalWeight, Real constraintWeight, int adaptiveExponent, SparseNodeData< Real, WeightDegree > &densityWeights, SparseNodeData< PointData< Real >, 0 > &pointInfo, SparseNodeData< Point3D< Real >, NormalDegree > &normalInfo, SparseNodeData< Real, NormalDegree > &nodeWeights, SparseNodeData< ProjectiveData< _Data >, DataDegree > *dataValues, XForm4x4< Real > &xForm, bool dirichlet=false, bool makeComplete=false)
 
template<int FEMDegree>
void EnableMultigrid (std::vector< int > *map)
 
template<int FEMDegree, int NormalDegree>
DenseNodeData< Real, FEMDegree > SetLaplacianConstraints (const SparseNodeData< Point3D< Real >, NormalDegree > &normalInfo)
 
template<int FEMDegree>
DenseNodeData< Real, FEMDegree > SolveSystem (SparseNodeData< PointData< Real >, 0 > &pointInfo, DenseNodeData< Real, FEMDegree > &constraints, bool showResidual, int iters, int maxSolveDepth, int cgDepth=0, double cgAccuracy=0)
 
template<int FEMDegree, int NormalDegree>
Real GetIsoValue (const DenseNodeData< Real, FEMDegree > &solution, const SparseNodeData< Real, NormalDegree > &nodeWeights)
 
template<int FEMDegree, int WeightDegree, int ColorDegree, class Vertex >
void GetMCIsoSurface (const SparseNodeData< Real, WeightDegree > *densityWeights, const SparseNodeData< ProjectiveData< Point3D< Real > >, ColorDegree > *colorData, const DenseNodeData< Real, FEMDegree > &solution, Real isoValue, CoredMeshData< Vertex > &mesh, bool nonLinearFit=true, bool addBarycenter=false, bool polygonMesh=false)
 
const TreeOctNodetree (void) const
 
size_t leaves (void) const
 
size_t nodes (void) const
 

Static Public Member Functions

template<int FEMDegree>
static void FunctionIndex (const TreeOctNode *node, int idx[3])
 
template<int FEMDegree>
static bool IsValidNode (const TreeOctNode *node, bool dirichlet)
 
template<class Vertex >
static int AddIsoPolygons (CoredMeshData< Vertex > &mesh, std::vector< std::pair< int, Vertex > > &polygon, bool polygonMesh, bool addBarycenter, int &vOffset)
 
static double MemoryUsage (void)
 

Public Attributes

int threads
 

Static Public Attributes

static const int CHILDREN = Cube::CORNERS
 
static double maxMemoryUsage
 

Protected Member Functions

template<int FEMDegree>
bool _IsValidNode (const TreeOctNode *node) const
 
bool _InBounds (Point3D< Real >) const
 
void _setFullDepth (int depth)
 
template<int FEMDegree>
void _setMultiColorIndices (int start, int end, std::vector< std::vector< int > > &indices) const
 
template<int FEMDegree>
int _SolveSystemGS (const BSplineData< FEMDegree > &bsData, SparseNodeData< PointData< Real >, 0 > &pointInfo, int depth, DenseNodeData< Real, FEMDegree > &solution, DenseNodeData< Real, FEMDegree > &constraints, DenseNodeData< Real, FEMDegree > &metSolutionConstraints, int iters, bool coarseToFine, bool showResidual=false, double *bNorm2=NULL, double *inRNorm2=NULL, double *outRNorm2=NULL, bool forceSilent=false)
 
template<int FEMDegree>
int _SolveSystemCG (const BSplineData< FEMDegree > &bsData, SparseNodeData< PointData< Real >, 0 > &pointInfo, int depth, DenseNodeData< Real, FEMDegree > &solution, DenseNodeData< Real, FEMDegree > &constraints, DenseNodeData< Real, FEMDegree > &metSolutionConstraints, int iters, bool coarseToFine, bool showResidual=false, double *bNorm2=NULL, double *inRNorm2=NULL, double *outRNorm2=NULL, double accuracy=0)
 
template<int FEMDegree>
int _SetMatrixRow (const SparseNodeData< PointData< Real >, 0 > &pointInfo, const typename TreeOctNode::Neighbors< BSplineIntegrationData< FEMDegree, FEMDegree >::OverlapSize > &neighbors, MatrixEntry< Real > *row, int offset, const typename BSplineIntegrationData< FEMDegree, FEMDegree >::FunctionIntegrator::Integrator &integrator, const Stencil< double, BSplineIntegrationData< FEMDegree, FEMDegree >::OverlapSize > &stencil, const BSplineData< FEMDegree > &bsData) const
 
template<int FEMDegree>
int _GetMatrixRowSize (const typename TreeOctNode::Neighbors< BSplineIntegrationData< FEMDegree, FEMDegree >::OverlapSize > &neighbors) const
 
template<int FEMDegree>
void _UpdateConstraintsFromCoarser (const SparseNodeData< PointData< Real >, 0 > &pointInfo, const typename TreeOctNode::Neighbors< BSplineIntegrationData< FEMDegree, FEMDegree >::OverlapSize > &neighbors, const typename TreeOctNode::Neighbors< BSplineIntegrationData< FEMDegree, FEMDegree >::OverlapSize > &pNeighbors, TreeOctNode *node, DenseNodeData< Real, FEMDegree > &constraints, const DenseNodeData< Real, FEMDegree > &metSolution, const typename BSplineIntegrationData< FEMDegree, FEMDegree >::FunctionIntegrator::ChildIntegrator &childIntegrator, const Stencil< double, BSplineIntegrationData< FEMDegree, FEMDegree >::OverlapSize > &stencil, const BSplineData< FEMDegree > &bsData) const
 
template<int FEMDegree>
void _UpdateConstraintsFromFiner (const typename BSplineIntegrationData< FEMDegree, FEMDegree >::FunctionIntegrator::ChildIntegrator &childIntegrator, const BSplineData< FEMDegree > &bsData, int highDepth, const DenseNodeData< Real, FEMDegree > &fineSolution, DenseNodeData< Real, FEMDegree > &coarseConstraints) const
 
template<int FEMDegree>
void _SetPointValuesFromCoarser (SparseNodeData< PointData< Real >, 0 > &pointInfo, int highDepth, const BSplineData< FEMDegree > &bsData, const DenseNodeData< Real, FEMDegree > &upSampledCoefficients)
 
template<int FEMDegree>
void _SetPointConstraintsFromFiner (const SparseNodeData< PointData< Real >, 0 > &pointInfo, int highDepth, const BSplineData< FEMDegree > &bsData, const DenseNodeData< Real, FEMDegree > &finerCoefficients, DenseNodeData< Real, FEMDegree > &metConstraints) const
 
template<int FEMDegree>
Real _CoarserFunctionValue (Point3D< Real > p, const PointSupportKey< FEMDegree > &neighborKey, const TreeOctNode *node, const BSplineData< FEMDegree > &bsData, const DenseNodeData< Real, FEMDegree > &upSampledCoefficients) const
 
template<int FEMDegree>
Real _FinerFunctionValue (Point3D< Real > p, const PointSupportKey< FEMDegree > &neighborKey, const TreeOctNode *node, const BSplineData< FEMDegree > &bsData, const DenseNodeData< Real, FEMDegree > &coefficients) const
 
template<int FEMDegree>
int _GetSliceMatrixAndUpdateConstraints (const SparseNodeData< PointData< Real >, 0 > &pointInfo, SparseMatrix< Real > &matrix, DenseNodeData< Real, FEMDegree > &constraints, typename BSplineIntegrationData< FEMDegree, FEMDegree >::FunctionIntegrator::Integrator &integrator, typename BSplineIntegrationData< FEMDegree, FEMDegree >::FunctionIntegrator::ChildIntegrator &childIntegrator, const BSplineData< FEMDegree > &bsData, int depth, int slice, const DenseNodeData< Real, FEMDegree > &metSolution, bool coarseToFine)
 
template<int FEMDegree>
int _GetMatrixAndUpdateConstraints (const SparseNodeData< PointData< Real >, 0 > &pointInfo, SparseMatrix< Real > &matrix, DenseNodeData< Real, FEMDegree > &constraints, typename BSplineIntegrationData< FEMDegree, FEMDegree >::FunctionIntegrator::Integrator &integrator, typename BSplineIntegrationData< FEMDegree, FEMDegree >::FunctionIntegrator::ChildIntegrator &childIntegrator, const BSplineData< FEMDegree > &bsData, int depth, const DenseNodeData< Real, FEMDegree > *metSolution, bool coarseToFine)
 
template<class C , int FEMDegree>
void _DownSample (int highDepth, DenseNodeData< C, FEMDegree > &constraints) const
 
template<class C , int FEMDegree>
void _UpSample (int highDepth, DenseNodeData< C, FEMDegree > &coefficients) const
 
template<int WeightDegree>
void _AddWeightContribution (SparseNodeData< Real, WeightDegree > &densityWeights, TreeOctNode *node, Point3D< Real > position, PointSupportKey< WeightDegree > &weightKey, Real weight=Real(1.0))
 
template<int WeightDegree>
Real _GetSamplesPerNode (const SparseNodeData< Real, WeightDegree > &densityWeights, const TreeOctNode *node, Point3D< Real > position, ConstPointSupportKey< WeightDegree > &weightKey) const
 
template<int WeightDegree>
Real _GetSamplesPerNode (const SparseNodeData< Real, WeightDegree > &densityWeights, TreeOctNode *node, Point3D< Real > position, PointSupportKey< WeightDegree > &weightKey)
 
template<int WeightDegree>
void _GetSampleDepthAndWeight (const SparseNodeData< Real, WeightDegree > &densityWeights, const TreeOctNode *node, Point3D< Real > position, ConstPointSupportKey< WeightDegree > &weightKey, Real &depth, Real &weight) const
 
template<int WeightDegree>
void _GetSampleDepthAndWeight (const SparseNodeData< Real, WeightDegree > &densityWeights, TreeOctNode *node, Point3D< Real > position, PointSupportKey< WeightDegree > &weightKey, Real &depth, Real &weight)
 
template<int DataDegree, class V >
void _SplatPointData (TreeOctNode *node, Point3D< Real > point, V v, SparseNodeData< V, DataDegree > &data, PointSupportKey< DataDegree > &dataKey)
 
template<int WeightDegree, int DataDegree, class V >
Real _SplatPointData (const SparseNodeData< Real, WeightDegree > &densityWeights, Point3D< Real > point, V v, SparseNodeData< V, DataDegree > &data, PointSupportKey< WeightDegree > &weightKey, PointSupportKey< DataDegree > &dataKey, int minDepth, int maxDepth, int dim=DIMENSION)
 
template<int WeightDegree, int DataDegree, class V >
void _MultiSplatPointData (const SparseNodeData< Real, WeightDegree > *densityWeights, Point3D< Real > point, V v, SparseNodeData< V, DataDegree > &data, PointSupportKey< WeightDegree > &weightKey, PointSupportKey< DataDegree > &dataKey, int maxDepth, int dim=DIMENSION)
 
template<class V , int DataDegree>
_Evaluate (const DenseNodeData< V, DataDegree > &coefficients, Point3D< Real > p, const BSplineData< DataDegree > &bsData, const ConstPointSupportKey< DataDegree > &neighborKey) const
 
template<class V , int DataDegree>
_Evaluate (const SparseNodeData< V, DataDegree > &coefficients, Point3D< Real > p, const BSplineData< DataDegree > &bsData, const ConstPointSupportKey< DataDegree > &dataKey) const
 

Static Protected Member Functions

template<int FEMDegree>
static int _Dimension (int depth)
 
static int _Resolution (int depth)
 
template<int FEMDegree>
static bool _IsInteriorlySupported (int d, int x, int y, int z)
 
template<int FEMDegree>
static bool _IsInteriorlySupported (const TreeOctNode *node)
 
template<int FEMDegree1, int FEMDegree2>
static bool _IsInteriorlyOverlapped (int d, int x, int y, int z)
 
template<int FEMDegree1, int FEMDegree2>
static bool _IsInteriorlyOverlapped (const TreeOctNode *node)
 
static void _DepthAndOffset (const TreeOctNode *node, int &d, int off[3])
 
static int _Depth (const TreeOctNode *node)
 
static void _StartAndWidth (const TreeOctNode *node, Point3D< Real > &start, Real &width)
 
static void _CenterAndWidth (const TreeOctNode *node, Point3D< Real > &center, Real &width)
 
template<int LeftRadius, int RightRadius>
static TreeOctNode::ConstNeighbors< LeftRadius+RightRadius+1 > & _Neighbors (TreeOctNode::ConstNeighborKey< LeftRadius, RightRadius > &key, int depth)
 
template<int LeftRadius, int RightRadius>
static TreeOctNode::Neighbors< LeftRadius+RightRadius+1 > & _Neighbors (TreeOctNode::NeighborKey< LeftRadius, RightRadius > &key, int depth)
 
template<int LeftRadius, int RightRadius>
static const TreeOctNode::template Neighbors< LeftRadius+RightRadius+1 > & _Neighbors (const typename TreeOctNode::template NeighborKey< LeftRadius, RightRadius > &key, int depth)
 
template<int LeftRadius, int RightRadius>
static const TreeOctNode::template ConstNeighbors< LeftRadius+RightRadius+1 > & _Neighbors (const typename TreeOctNode::template ConstNeighborKey< LeftRadius, RightRadius > &key, int depth)
 
static void _SetFullDepth (TreeOctNode *node, int depth)
 
template<int FEMDegree1, int FEMDegree2>
static void _SetParentOverlapBounds (const TreeOctNode *node, int &startX, int &endX, int &startY, int &endY, int &startZ, int &endZ)
 
template<class C , int FEMDegree>
static void _UpSample (int highDepth, const C *lowCoefficients, C *highCoefficients, bool dirichlet, int threads)
 

Protected Attributes

TreeOctNode _tree
 
TreeOctNode_spaceRoot
 
SortedTreeNodes _sNodes
 
int _splatDepth
 
int _maxDepth
 
int _minDepth
 
int _fullDepth
 
bool _constrainValues
 
bool _dirichlet
 
Real _scale
 
Point3D< Real > _center
 
int _multigridDegree
 

Detailed Description

template<class Real>
class Octree< Real >

Definition at line 304 of file MultiGridOctreeData.h.

Member Typedef Documentation

◆ AdjacenctNodeKey

template<class Real >
typedef TreeOctNode:: NeighborKey< 1 , 1 > Octree< Real >::AdjacenctNodeKey

Definition at line 310 of file MultiGridOctreeData.h.

◆ ConstAdjacenctNodeKey

template<class Real >
typedef TreeOctNode::ConstNeighborKey< 1 , 1 > Octree< Real >::ConstAdjacenctNodeKey

Definition at line 311 of file MultiGridOctreeData.h.

Constructor & Destructor Documentation

◆ Octree()

template<class Real >
Octree< Real >::Octree ( void  )

Member Function Documentation

◆ _AddWeightContribution()

template<class Real >
template<int WeightDegree>
void Octree< Real >::_AddWeightContribution ( SparseNodeData< Real, WeightDegree > &  densityWeights,
TreeOctNode node,
Point3D< Real >  position,
PointSupportKey< WeightDegree > &  weightKey,
Real  weight = Real(1.0) 
)
protected

◆ _CenterAndWidth()

template<class Real >
static void Octree< Real >::_CenterAndWidth ( const TreeOctNode node,
Point3D< Real > &  center,
Real &  width 
)
inlinestaticprotected

Definition at line 393 of file MultiGridOctreeData.h.

References Octree< Real >::_DepthAndOffset(), DIMENSION, and width.

◆ _ClipTree()

template<class Real >
template<int NormalDegree>
void Octree< Real >::_ClipTree ( const SparseNodeData< Point3D< Real >, NormalDegree > &  normalInfo)

◆ _CoarserFunctionValue()

template<class Real >
template<int FEMDegree>
Real Octree< Real >::_CoarserFunctionValue ( Point3D< Real >  p,
const PointSupportKey< FEMDegree > &  neighborKey,
const TreeOctNode node,
const BSplineData< FEMDegree > &  bsData,
const DenseNodeData< Real, FEMDegree > &  upSampledCoefficients 
) const
protected

◆ _Depth()

template<class Real >
static int Octree< Real >::_Depth ( const TreeOctNode node)
inlinestaticprotected

Definition at line 384 of file MultiGridOctreeData.h.

References OctNode< NodeData >::depth().

◆ _DepthAndOffset()

template<class Real >
static void Octree< Real >::_DepthAndOffset ( const TreeOctNode node,
int &  d,
int  off[3] 
)
inlinestaticprotected

◆ _Dimension()

template<class Real >
template<int FEMDegree>
static int Octree< Real >::_Dimension ( int  depth)
inlinestaticprotected

Definition at line 347 of file MultiGridOctreeData.h.

References BSplineData< Degree >::Dimension().

◆ _DownSample()

template<class Real >
template<class C , int FEMDegree>
void Octree< Real >::_DownSample ( int  highDepth,
DenseNodeData< C, FEMDegree > &  constraints 
) const
protected

◆ _Evaluate() [1/2]

template<class Real >
template<class V , int DataDegree>
V Octree< Real >::_Evaluate ( const DenseNodeData< V, DataDegree > &  coefficients,
Point3D< Real >  p,
const BSplineData< DataDegree > &  bsData,
const ConstPointSupportKey< DataDegree > &  neighborKey 
) const
protected

◆ _Evaluate() [2/2]

template<class Real >
template<class V , int DataDegree>
V Octree< Real >::_Evaluate ( const SparseNodeData< V, DataDegree > &  coefficients,
Point3D< Real >  p,
const BSplineData< DataDegree > &  bsData,
const ConstPointSupportKey< DataDegree > &  dataKey 
) const
protected

◆ _FinerFunctionValue()

template<class Real >
template<int FEMDegree>
Real Octree< Real >::_FinerFunctionValue ( Point3D< Real >  p,
const PointSupportKey< FEMDegree > &  neighborKey,
const TreeOctNode node,
const BSplineData< FEMDegree > &  bsData,
const DenseNodeData< Real, FEMDegree > &  coefficients 
) const
protected

◆ _getCenterValue()

template<class Real >
template<class V , int FEMDegree>
V Octree< Real >::_getCenterValue ( const ConstPointSupportKey< FEMDegree > &  neighborKey,
const TreeOctNode node,
const DenseNodeData< V, FEMDegree > &  solution,
const DenseNodeData< V, FEMDegree > &  metSolution,
const _Evaluator< FEMDegree > &  evaluator,
bool  isInterior 
) const

◆ _getCornerValue()

template<class Real >
template<class V , int FEMDegree>
V Octree< Real >::_getCornerValue ( const ConstPointSupportKey< FEMDegree > &  neighborKey,
const TreeOctNode node,
int  corner,
const DenseNodeData< V, FEMDegree > &  solution,
const DenseNodeData< V, FEMDegree > &  metSolution,
const _Evaluator< FEMDegree > &  evaluator,
bool  isInterior 
) const

◆ _getCornerValueAndGradient()

template<class Real >
template<int FEMDegree>
std::pair< Real , Point3D< Real > > Octree< Real >::_getCornerValueAndGradient ( const ConstPointSupportKey< FEMDegree > &  neighborKey,
const TreeOctNode node,
int  corner,
const DenseNodeData< Real, FEMDegree > &  solution,
const DenseNodeData< Real, FEMDegree > &  metSolution,
const _Evaluator< FEMDegree > &  evaluator,
bool  isInterior 
) const

◆ _getEdgeValue()

template<class Real >
template<class V , int FEMDegree>
V Octree< Real >::_getEdgeValue ( const ConstPointSupportKey< FEMDegree > &  neighborKey,
const TreeOctNode node,
int  edge,
const DenseNodeData< V, FEMDegree > &  solution,
const DenseNodeData< V, FEMDegree > &  metSolution,
const _Evaluator< FEMDegree > &  evaluator,
bool  isInterior 
) const

◆ _getEdgeValueAndGradient()

template<class Real >
template<int FEMDegree>
std::pair< Real , Point3D< Real > > Octree< Real >::_getEdgeValueAndGradient ( const ConstPointSupportKey< FEMDegree > &  neighborKey,
const TreeOctNode node,
int  edge,
const DenseNodeData< Real, FEMDegree > &  solution,
const DenseNodeData< Real, FEMDegree > &  metSolution,
const _Evaluator< FEMDegree > &  evaluator,
bool  isInterior 
) const

◆ _GetMatrixAndUpdateConstraints()

template<class Real >
template<int FEMDegree>
int Octree< Real >::_GetMatrixAndUpdateConstraints ( const SparseNodeData< PointData< Real >, 0 > &  pointInfo,
SparseMatrix< Real > &  matrix,
DenseNodeData< Real, FEMDegree > &  constraints,
typename BSplineIntegrationData< FEMDegree, FEMDegree >::FunctionIntegrator::Integrator &  integrator,
typename BSplineIntegrationData< FEMDegree, FEMDegree >::FunctionIntegrator::ChildIntegrator &  childIntegrator,
const BSplineData< FEMDegree > &  bsData,
int  depth,
const DenseNodeData< Real, FEMDegree > *  metSolution,
bool  coarseToFine 
)
protected

◆ _GetMatrixRowSize()

template<class Real >
template<int FEMDegree>
int Octree< Real >::_GetMatrixRowSize ( const typename TreeOctNode::Neighbors< BSplineIntegrationData< FEMDegree, FEMDegree >::OverlapSize > &  neighbors) const
protected

◆ _GetSampleDepthAndWeight() [1/4]

template<class Real >
template<int WeightDegree>
void Octree< Real >::_GetSampleDepthAndWeight ( const SparseNodeData< Real, WeightDegree > &  densityWeights,
const TreeOctNode node,
Point3D< Real >  position,
ConstPointSupportKey< WeightDegree > &  weightKey,
Real &  depth,
Real &  weight 
) const
protected

◆ _GetSampleDepthAndWeight() [2/4]

template<class Real >
template<int WeightDegree>
void Octree< Real >::_GetSampleDepthAndWeight ( const SparseNodeData< Real, WeightDegree > &  densityWeights,
Point3D< Real >  position,
ConstPointSupportKey< WeightDegree > &  weightKey,
Real &  depth,
Real &  weight 
)

◆ _GetSampleDepthAndWeight() [3/4]

template<class Real >
template<int WeightDegree>
void Octree< Real >::_GetSampleDepthAndWeight ( const SparseNodeData< Real, WeightDegree > &  densityWeights,
Point3D< Real >  position,
PointSupportKey< WeightDegree > &  weightKey,
Real &  depth,
Real &  weight 
)

◆ _GetSampleDepthAndWeight() [4/4]

template<class Real >
template<int WeightDegree>
void Octree< Real >::_GetSampleDepthAndWeight ( const SparseNodeData< Real, WeightDegree > &  densityWeights,
TreeOctNode node,
Point3D< Real >  position,
PointSupportKey< WeightDegree > &  weightKey,
Real &  depth,
Real &  weight 
)
protected

◆ _GetSamplesPerNode() [1/2]

template<class Real >
template<int WeightDegree>
Real Octree< Real >::_GetSamplesPerNode ( const SparseNodeData< Real, WeightDegree > &  densityWeights,
const TreeOctNode node,
Point3D< Real >  position,
ConstPointSupportKey< WeightDegree > &  weightKey 
) const
protected

◆ _GetSamplesPerNode() [2/2]

template<class Real >
template<int WeightDegree>
Real Octree< Real >::_GetSamplesPerNode ( const SparseNodeData< Real, WeightDegree > &  densityWeights,
TreeOctNode node,
Point3D< Real >  position,
PointSupportKey< WeightDegree > &  weightKey 
)
protected

◆ _GetSliceMatrixAndUpdateConstraints()

template<class Real >
template<int FEMDegree>
int Octree< Real >::_GetSliceMatrixAndUpdateConstraints ( const SparseNodeData< PointData< Real >, 0 > &  pointInfo,
SparseMatrix< Real > &  matrix,
DenseNodeData< Real, FEMDegree > &  constraints,
typename BSplineIntegrationData< FEMDegree, FEMDegree >::FunctionIntegrator::Integrator &  integrator,
typename BSplineIntegrationData< FEMDegree, FEMDegree >::FunctionIntegrator::ChildIntegrator &  childIntegrator,
const BSplineData< FEMDegree > &  bsData,
int  depth,
int  slice,
const DenseNodeData< Real, FEMDegree > &  metSolution,
bool  coarseToFine 
)
protected

◆ _HasNormals()

template<class Real >
template<int NormalDegree>
int Octree< Real >::_HasNormals ( TreeOctNode node,
const SparseNodeData< Point3D< Real >, NormalDegree > &  normalInfo 
)

◆ _InBounds()

template<class Real >
bool Octree< Real >::_InBounds ( Point3D< Real >  ) const
protected

◆ _IsInteriorlyOverlapped() [1/2]

template<class Real >
template<int FEMDegree1, int FEMDegree2>
static bool Octree< Real >::_IsInteriorlyOverlapped ( const TreeOctNode node)
inlinestaticprotected

Definition at line 376 of file MultiGridOctreeData.h.

References OctNode< NodeData >::depthAndOffset().

◆ _IsInteriorlyOverlapped() [2/2]

template<class Real >
template<int FEMDegree1, int FEMDegree2>
static bool Octree< Real >::_IsInteriorlyOverlapped ( int  d,
int  x,
int  y,
int  z 
)
inlinestaticprotected

◆ _IsInteriorlySupported() [1/2]

template<class Real >
template<int FEMDegree>
static bool Octree< Real >::_IsInteriorlySupported ( const TreeOctNode node)
inlinestaticprotected

Definition at line 359 of file MultiGridOctreeData.h.

References OctNode< NodeData >::depthAndOffset().

◆ _IsInteriorlySupported() [2/2]

template<class Real >
template<int FEMDegree>
static bool Octree< Real >::_IsInteriorlySupported ( int  d,
int  x,
int  y,
int  z 
)
inlinestaticprotected

◆ _IsValidNode()

template<class Real >
template<int FEMDegree>
bool Octree< Real >::_IsValidNode ( const TreeOctNode node) const
inlineprotected

Definition at line 331 of file MultiGridOctreeData.h.

References TreeNodeData::flags, and OctNode< NodeData >::nodeData.

◆ _MakeComplete()

template<class Real >
void Octree< Real >::_MakeComplete ( void  )

◆ _MultiSplatPointData()

template<class Real >
template<int WeightDegree, int DataDegree, class V >
void Octree< Real >::_MultiSplatPointData ( const SparseNodeData< Real, WeightDegree > *  densityWeights,
Point3D< Real >  point,
v,
SparseNodeData< V, DataDegree > &  data,
PointSupportKey< WeightDegree > &  weightKey,
PointSupportKey< DataDegree > &  dataKey,
int  maxDepth,
int  dim = DIMENSION 
)
protected

◆ _Neighbors() [1/4]

template<class Real >
template<int LeftRadius, int RightRadius>
static const TreeOctNode::template ConstNeighbors< LeftRadius + RightRadius + 1 >& Octree< Real >::_Neighbors ( const typename TreeOctNode::template ConstNeighborKey< LeftRadius, RightRadius > &  key,
int  depth 
)
inlinestaticprotected

Definition at line 407 of file MultiGridOctreeData.h.

◆ _Neighbors() [2/4]

template<class Real >
template<int LeftRadius, int RightRadius>
static const TreeOctNode::template Neighbors< LeftRadius + RightRadius + 1 >& Octree< Real >::_Neighbors ( const typename TreeOctNode::template NeighborKey< LeftRadius, RightRadius > &  key,
int  depth 
)
inlinestaticprotected

Definition at line 405 of file MultiGridOctreeData.h.

◆ _Neighbors() [3/4]

template<class Real >
template<int LeftRadius, int RightRadius>
static TreeOctNode::ConstNeighbors< LeftRadius + RightRadius + 1 >& Octree< Real >::_Neighbors ( TreeOctNode::ConstNeighborKey< LeftRadius, RightRadius > &  key,
int  depth 
)
inlinestaticprotected

Definition at line 401 of file MultiGridOctreeData.h.

◆ _Neighbors() [4/4]

template<class Real >
template<int LeftRadius, int RightRadius>
static TreeOctNode::Neighbors< LeftRadius + RightRadius + 1 >& Octree< Real >::_Neighbors ( TreeOctNode::NeighborKey< LeftRadius, RightRadius > &  key,
int  depth 
)
inlinestaticprotected

Definition at line 403 of file MultiGridOctreeData.h.

◆ _Resolution()

template<class Real >
static int Octree< Real >::_Resolution ( int  depth)
inlinestaticprotected

Definition at line 348 of file MultiGridOctreeData.h.

◆ _setFullDepth()

template<class Real >
void Octree< Real >::_setFullDepth ( int  depth)
protected

◆ _SetFullDepth()

template<class Real >
static void Octree< Real >::_SetFullDepth ( TreeOctNode node,
int  depth 
)
staticprotected

◆ _SetMatrixRow()

template<class Real >
template<int FEMDegree>
int Octree< Real >::_SetMatrixRow ( const SparseNodeData< PointData< Real >, 0 > &  pointInfo,
const typename TreeOctNode::Neighbors< BSplineIntegrationData< FEMDegree, FEMDegree >::OverlapSize > &  neighbors,
MatrixEntry< Real > *  row,
int  offset,
const typename BSplineIntegrationData< FEMDegree, FEMDegree >::FunctionIntegrator::Integrator &  integrator,
const Stencil< double, BSplineIntegrationData< FEMDegree, FEMDegree >::OverlapSize > &  stencil,
const BSplineData< FEMDegree > &  bsData 
) const
protected

◆ _setMultiColorIndices()

template<class Real >
template<int FEMDegree>
void Octree< Real >::_setMultiColorIndices ( int  start,
int  end,
std::vector< std::vector< int > > &  indices 
) const
protected

◆ _SetParentOverlapBounds()

template<class Real >
template<int FEMDegree1, int FEMDegree2>
static void Octree< Real >::_SetParentOverlapBounds ( const TreeOctNode node,
int &  startX,
int &  endX,
int &  startY,
int &  endY,
int &  startZ,
int &  endZ 
)
staticprotected

◆ _SetPointConstraintsFromFiner()

template<class Real >
template<int FEMDegree>
void Octree< Real >::_SetPointConstraintsFromFiner ( const SparseNodeData< PointData< Real >, 0 > &  pointInfo,
int  highDepth,
const BSplineData< FEMDegree > &  bsData,
const DenseNodeData< Real, FEMDegree > &  finerCoefficients,
DenseNodeData< Real, FEMDegree > &  metConstraints 
) const
protected

◆ _SetPointValuesFromCoarser()

template<class Real >
template<int FEMDegree>
void Octree< Real >::_SetPointValuesFromCoarser ( SparseNodeData< PointData< Real >, 0 > &  pointInfo,
int  highDepth,
const BSplineData< FEMDegree > &  bsData,
const DenseNodeData< Real, FEMDegree > &  upSampledCoefficients 
)
protected

◆ _SetValidityFlags()

template<class Real >
void Octree< Real >::_SetValidityFlags ( void  )

◆ _SolveSystemCG()

template<class Real >
template<int FEMDegree>
int Octree< Real >::_SolveSystemCG ( const BSplineData< FEMDegree > &  bsData,
SparseNodeData< PointData< Real >, 0 > &  pointInfo,
int  depth,
DenseNodeData< Real, FEMDegree > &  solution,
DenseNodeData< Real, FEMDegree > &  constraints,
DenseNodeData< Real, FEMDegree > &  metSolutionConstraints,
int  iters,
bool  coarseToFine,
bool  showResidual = false,
double *  bNorm2 = NULL,
double *  inRNorm2 = NULL,
double *  outRNorm2 = NULL,
double  accuracy = 0 
)
protected

◆ _SolveSystemGS()

template<class Real >
template<int FEMDegree>
int Octree< Real >::_SolveSystemGS ( const BSplineData< FEMDegree > &  bsData,
SparseNodeData< PointData< Real >, 0 > &  pointInfo,
int  depth,
DenseNodeData< Real, FEMDegree > &  solution,
DenseNodeData< Real, FEMDegree > &  constraints,
DenseNodeData< Real, FEMDegree > &  metSolutionConstraints,
int  iters,
bool  coarseToFine,
bool  showResidual = false,
double *  bNorm2 = NULL,
double *  inRNorm2 = NULL,
double *  outRNorm2 = NULL,
bool  forceSilent = false 
)
protected

◆ _SplatPointData() [1/2]

template<class Real >
template<int WeightDegree, int DataDegree, class V >
Real Octree< Real >::_SplatPointData ( const SparseNodeData< Real, WeightDegree > &  densityWeights,
Point3D< Real >  point,
v,
SparseNodeData< V, DataDegree > &  data,
PointSupportKey< WeightDegree > &  weightKey,
PointSupportKey< DataDegree > &  dataKey,
int  minDepth,
int  maxDepth,
int  dim = DIMENSION 
)
protected

◆ _SplatPointData() [2/2]

template<class Real >
template<int DataDegree, class V >
void Octree< Real >::_SplatPointData ( TreeOctNode node,
Point3D< Real >  point,
v,
SparseNodeData< V, DataDegree > &  data,
PointSupportKey< DataDegree > &  dataKey 
)
protected

◆ _StartAndWidth()

template<class Real >
static void Octree< Real >::_StartAndWidth ( const TreeOctNode node,
Point3D< Real > &  start,
Real &  width 
)
inlinestaticprotected

Definition at line 385 of file MultiGridOctreeData.h.

References Octree< Real >::_DepthAndOffset(), DIMENSION, and width.

◆ _UpdateConstraintsFromCoarser()

template<class Real >
template<int FEMDegree>
void Octree< Real >::_UpdateConstraintsFromCoarser ( const SparseNodeData< PointData< Real >, 0 > &  pointInfo,
const typename TreeOctNode::Neighbors< BSplineIntegrationData< FEMDegree, FEMDegree >::OverlapSize > &  neighbors,
const typename TreeOctNode::Neighbors< BSplineIntegrationData< FEMDegree, FEMDegree >::OverlapSize > &  pNeighbors,
TreeOctNode node,
DenseNodeData< Real, FEMDegree > &  constraints,
const DenseNodeData< Real, FEMDegree > &  metSolution,
const typename BSplineIntegrationData< FEMDegree, FEMDegree >::FunctionIntegrator::ChildIntegrator &  childIntegrator,
const Stencil< double, BSplineIntegrationData< FEMDegree, FEMDegree >::OverlapSize > &  stencil,
const BSplineData< FEMDegree > &  bsData 
) const
protected

◆ _UpdateConstraintsFromFiner()

template<class Real >
template<int FEMDegree>
void Octree< Real >::_UpdateConstraintsFromFiner ( const typename BSplineIntegrationData< FEMDegree, FEMDegree >::FunctionIntegrator::ChildIntegrator &  childIntegrator,
const BSplineData< FEMDegree > &  bsData,
int  highDepth,
const DenseNodeData< Real, FEMDegree > &  fineSolution,
DenseNodeData< Real, FEMDegree > &  coarseConstraints 
) const
protected

◆ _UpSample() [1/2]

template<class Real >
template<class C , int FEMDegree>
static void Octree< Real >::_UpSample ( int  highDepth,
const C *  lowCoefficients,
C *  highCoefficients,
bool  dirichlet,
int  threads 
)
staticprotected

◆ _UpSample() [2/2]

template<class Real >
template<class C , int FEMDegree>
void Octree< Real >::_UpSample ( int  highDepth,
DenseNodeData< C, FEMDegree > &  coefficients 
) const
protected

◆ AddIsoPolygons()

template<class Real >
template<class Vertex >
static int Octree< Real >::AddIsoPolygons ( CoredMeshData< Vertex > &  mesh,
std::vector< std::pair< int, Vertex > > &  polygon,
bool  polygonMesh,
bool  addBarycenter,
int &  vOffset 
)
static

◆ CopyFinerSliceIsoEdgeKeys() [1/2]

template<class Real >
template<class Vertex >
void Octree< Real >::CopyFinerSliceIsoEdgeKeys ( int  depth,
int  slice,
int  z,
std::vector< SlabValues< Vertex > > &  sValues,
int  threads 
)

◆ CopyFinerSliceIsoEdgeKeys() [2/2]

template<class Real >
template<class Vertex >
void Octree< Real >::CopyFinerSliceIsoEdgeKeys ( int  depth,
int  slice,
std::vector< SlabValues< Vertex > > &  sValues,
int  threads 
)

◆ CopyFinerXSliceIsoEdgeKeys()

template<class Real >
template<class Vertex >
void Octree< Real >::CopyFinerXSliceIsoEdgeKeys ( int  depth,
int  slab,
std::vector< SlabValues< Vertex > > &  sValues,
int  threads 
)

◆ EnableMultigrid()

template<class Real >
template<int FEMDegree>
void Octree< Real >::EnableMultigrid ( std::vector< int > *  map)

◆ Evaluate() [1/3]

template<class Real >
template<class V , int DataDegree>
V* Octree< Real >::Evaluate ( const DenseNodeData< V, DataDegree > &  coefficients,
int &  res,
Real  isoValue = 0.f,
int  depth = -1,
bool  primal = false 
)

◆ Evaluate() [2/3]

template<class Real >
template<class V , int DataDegree>
V Octree< Real >::Evaluate ( const DenseNodeData< V, DataDegree > &  coefficients,
Point3D< Real >  p,
const BSplineData< DataDegree > &  bsData 
) const

◆ Evaluate() [3/3]

template<class Real >
template<class V , int DataDegree>
V Octree< Real >::Evaluate ( const SparseNodeData< V, DataDegree > &  coefficients,
Point3D< Real >  p,
const BSplineData< DataDegree > &  bsData 
) const

◆ FunctionIndex()

template<class Real >
template<int FEMDegree>
static void Octree< Real >::FunctionIndex ( const TreeOctNode node,
int  idx[3] 
)
static

◆ GetIsoValue()

template<class Real >
template<int FEMDegree, int NormalDegree>
Real Octree< Real >::GetIsoValue ( const DenseNodeData< Real, FEMDegree > &  solution,
const SparseNodeData< Real, NormalDegree > &  nodeWeights 
)

◆ GetIsoVertex() [1/2]

template<class Real >
template<int WeightDegree, int ColorDegree, class Vertex >
bool Octree< Real >::GetIsoVertex ( const BSplineData< ColorDegree > *  colorBSData,
const SparseNodeData< Real, WeightDegree > *  densityWeights,
const SparseNodeData< ProjectiveData< Point3D< Real > >, ColorDegree > *  colorData,
Real  isoValue,
ConstPointSupportKey< WeightDegree > &  weightKey,
ConstPointSupportKey< ColorDegree > &  colorKey,
const TreeOctNode node,
int  cornerIndex,
const SliceValues< Vertex > &  bValues,
const SliceValues< Vertex > &  fValues,
Vertex vertex 
)

◆ GetIsoVertex() [2/2]

template<class Real >
template<int WeightDegree, int ColorDegree, class Vertex >
bool Octree< Real >::GetIsoVertex ( const BSplineData< ColorDegree > *  colorBSData,
const SparseNodeData< Real, WeightDegree > *  densityWeights,
const SparseNodeData< ProjectiveData< Point3D< Real > >, ColorDegree > *  colorData,
Real  isoValue,
ConstPointSupportKey< WeightDegree > &  weightKey,
ConstPointSupportKey< ColorDegree > &  colorKey,
const TreeOctNode node,
int  edgeIndex,
int  z,
const SliceValues< Vertex > &  sValues,
Vertex vertex 
)

◆ GetMCIsoSurface()

template<class Real >
template<int FEMDegree, int WeightDegree, int ColorDegree, class Vertex >
void Octree< Real >::GetMCIsoSurface ( const SparseNodeData< Real, WeightDegree > *  densityWeights,
const SparseNodeData< ProjectiveData< Point3D< Real > >, ColorDegree > *  colorData,
const DenseNodeData< Real, FEMDegree > &  solution,
Real  isoValue,
CoredMeshData< Vertex > &  mesh,
bool  nonLinearFit = true,
bool  addBarycenter = false,
bool  polygonMesh = false 
)

◆ IsValidNode()

template<class Real >
template<int FEMDegree>
static bool Octree< Real >::IsValidNode ( const TreeOctNode node,
bool  dirichlet 
)
static

◆ leaves()

template<class Real >
size_t Octree< Real >::leaves ( void  ) const
inline

Definition at line 654 of file MultiGridOctreeData.h.

References Octree< Real >::_tree, and OctNode< NodeData >::leaves().

◆ MemoryUsage()

template<class Real >
static double Octree< Real >::MemoryUsage ( void  )
static

◆ nodes()

template<class Real >
size_t Octree< Real >::nodes ( void  ) const
inline

Definition at line 655 of file MultiGridOctreeData.h.

References Octree< Real >::_tree, and OctNode< NodeData >::nodes().

◆ SetIsoSurface()

template<class Real >
template<class Vertex >
void Octree< Real >::SetIsoSurface ( int  depth,
int  offset,
const SliceValues< Vertex > &  bValues,
const SliceValues< Vertex > &  fValues,
const XSliceValues< Vertex > &  xValues,
CoredMeshData< Vertex > &  mesh,
bool  polygonMesh,
bool  addBarycenter,
int &  vOffset,
int  threads 
)

◆ SetLaplacianConstraints()

template<class Real >
template<int FEMDegree, int NormalDegree>
DenseNodeData< Real , FEMDegree > Octree< Real >::SetLaplacianConstraints ( const SparseNodeData< Point3D< Real >, NormalDegree > &  normalInfo)

◆ SetSliceIsoCorners() [1/2]

template<class Real >
template<class Vertex , int FEMDegree>
void Octree< Real >::SetSliceIsoCorners ( const DenseNodeData< Real, FEMDegree > &  solution,
const DenseNodeData< Real, FEMDegree > &  coarseSolution,
Real  isoValue,
int  depth,
int  slice,
int  z,
std::vector< SlabValues< Vertex > > &  sValues,
const _Evaluator< FEMDegree > &  evaluator,
int  threads 
)

◆ SetSliceIsoCorners() [2/2]

template<class Real >
template<class Vertex , int FEMDegree>
void Octree< Real >::SetSliceIsoCorners ( const DenseNodeData< Real, FEMDegree > &  solution,
const DenseNodeData< Real, FEMDegree > &  coarseSolution,
Real  isoValue,
int  depth,
int  slice,
std::vector< SlabValues< Vertex > > &  sValues,
const _Evaluator< FEMDegree > &  evaluator,
int  threads 
)

◆ SetSliceIsoEdges() [1/2]

template<class Real >
template<class Vertex >
void Octree< Real >::SetSliceIsoEdges ( int  depth,
int  slice,
int  z,
std::vector< SlabValues< Vertex > > &  slabValues,
int  threads 
)

◆ SetSliceIsoEdges() [2/2]

template<class Real >
template<class Vertex >
void Octree< Real >::SetSliceIsoEdges ( int  depth,
int  slice,
std::vector< SlabValues< Vertex > > &  slabValues,
int  threads 
)

◆ SetSliceIsoVertices() [1/2]

template<class Real >
template<int WeightDegree, int ColorDegree, class Vertex >
void Octree< Real >::SetSliceIsoVertices ( const BSplineData< ColorDegree > *  colorBSData,
const SparseNodeData< Real, WeightDegree > *  densityWeights,
const SparseNodeData< ProjectiveData< Point3D< Real > >, ColorDegree > *  colorData,
Real  isoValue,
int  depth,
int  slice,
int &  vOffset,
CoredMeshData< Vertex > &  mesh,
std::vector< SlabValues< Vertex > > &  sValues,
int  threads 
)

◆ SetSliceIsoVertices() [2/2]

template<class Real >
template<int WeightDegree, int ColorDegree, class Vertex >
void Octree< Real >::SetSliceIsoVertices ( const BSplineData< ColorDegree > *  colorBSData,
const SparseNodeData< Real, WeightDegree > *  densityWeights,
const SparseNodeData< ProjectiveData< Point3D< Real > >, ColorDegree > *  colorData,
Real  isoValue,
int  depth,
int  slice,
int  z,
int &  vOffset,
CoredMeshData< Vertex > &  mesh,
std::vector< SlabValues< Vertex > > &  sValues,
int  threads 
)

◆ SetTree()

template<class Real >
template<class PointReal , int NormalDegree, int WeightDegree, int DataDegree, class Data , class _Data >
int Octree< Real >::SetTree ( OrientedPointStream< PointReal > *  pointStream,
int  minDepth,
int  maxDepth,
int  fullDepth,
int  splatDepth,
Real  samplesPerNode,
Real  scaleFactor,
bool  useConfidence,
bool  useNormalWeight,
Real  constraintWeight,
int  adaptiveExponent,
SparseNodeData< Real, WeightDegree > &  densityWeights,
SparseNodeData< PointData< Real >, 0 > &  pointInfo,
SparseNodeData< Point3D< Real >, NormalDegree > &  normalInfo,
SparseNodeData< Real, NormalDegree > &  nodeWeights,
SparseNodeData< ProjectiveData< _Data >, DataDegree > *  dataValues,
XForm4x4< Real > &  xForm,
bool  dirichlet = false,
bool  makeComplete = false 
)

◆ SetXSliceIsoEdges()

template<class Real >
template<class Vertex >
void Octree< Real >::SetXSliceIsoEdges ( int  depth,
int  slice,
std::vector< SlabValues< Vertex > > &  slabValues,
int  threads 
)

◆ SetXSliceIsoVertices()

template<class Real >
template<int WeightDegree, int ColorDegree, class Vertex >
void Octree< Real >::SetXSliceIsoVertices ( const BSplineData< ColorDegree > *  colorBSData,
const SparseNodeData< Real, WeightDegree > *  densityWeights,
const SparseNodeData< ProjectiveData< Point3D< Real > >, ColorDegree > *  colorData,
Real  isoValue,
int  depth,
int  slab,
int &  vOffset,
CoredMeshData< Vertex > &  mesh,
std::vector< SlabValues< Vertex > > &  sValues,
int  threads 
)

◆ SolveSystem()

template<class Real >
template<int FEMDegree>
DenseNodeData< Real , FEMDegree > Octree< Real >::SolveSystem ( SparseNodeData< PointData< Real >, 0 > &  pointInfo,
DenseNodeData< Real, FEMDegree > &  constraints,
bool  showResidual,
int  iters,
int  maxSolveDepth,
int  cgDepth = 0,
double  cgAccuracy = 0 
)

◆ tree()

template<class Real >
const TreeOctNode& Octree< Real >::tree ( void  ) const
inline

Definition at line 653 of file MultiGridOctreeData.h.

References Octree< Real >::_tree.

Member Data Documentation

◆ _center

template<class Real >
Point3D< Real > Octree< Real >::_center
protected

Definition at line 343 of file MultiGridOctreeData.h.

◆ _constrainValues

template<class Real >
bool Octree< Real >::_constrainValues
protected

Definition at line 340 of file MultiGridOctreeData.h.

◆ _dirichlet

template<class Real >
bool Octree< Real >::_dirichlet
protected

Definition at line 341 of file MultiGridOctreeData.h.

◆ _fullDepth

template<class Real >
int Octree< Real >::_fullDepth
protected

Definition at line 339 of file MultiGridOctreeData.h.

◆ _maxDepth

template<class Real >
int Octree< Real >::_maxDepth
protected

Definition at line 337 of file MultiGridOctreeData.h.

◆ _minDepth

template<class Real >
int Octree< Real >::_minDepth
protected

Definition at line 338 of file MultiGridOctreeData.h.

◆ _multigridDegree

template<class Real >
int Octree< Real >::_multigridDegree
protected

Definition at line 344 of file MultiGridOctreeData.h.

◆ _scale

template<class Real >
Real Octree< Real >::_scale
protected

Definition at line 342 of file MultiGridOctreeData.h.

◆ _sNodes

template<class Real >
SortedTreeNodes Octree< Real >::_sNodes
protected

Definition at line 335 of file MultiGridOctreeData.h.

◆ _spaceRoot

template<class Real >
TreeOctNode* Octree< Real >::_spaceRoot
protected

Definition at line 334 of file MultiGridOctreeData.h.

◆ _splatDepth

template<class Real >
int Octree< Real >::_splatDepth
protected

Definition at line 336 of file MultiGridOctreeData.h.

◆ _tree

template<class Real >
TreeOctNode Octree< Real >::_tree
protected

◆ CHILDREN

template<class Real >
const int Octree< Real >::CHILDREN = Cube::CORNERS
static

Definition at line 493 of file MultiGridOctreeData.h.

◆ maxMemoryUsage

template<class Real >
double Octree< Real >::maxMemoryUsage
static

Definition at line 626 of file MultiGridOctreeData.h.

◆ threads

template<class Real >
int Octree< Real >::threads

Definition at line 627 of file MultiGridOctreeData.h.


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