|
| 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> |
| V | Evaluate (const DenseNodeData< V, DataDegree > &coefficients, Point3D< Real > p, const BSplineData< DataDegree > &bsData) const |
| |
| template<class V , int DataDegree> |
| V | 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> |
| V | _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> |
| V | _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> |
| V | _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 TreeOctNode & | tree (void) const |
| |
| size_t | leaves (void) const |
| |
| size_t | nodes (void) const |
| |
|
| 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> |
| V | _Evaluate (const DenseNodeData< V, DataDegree > &coefficients, Point3D< Real > p, const BSplineData< DataDegree > &bsData, const ConstPointSupportKey< DataDegree > &neighborKey) const |
| |
| template<class V , int DataDegree> |
| V | _Evaluate (const SparseNodeData< V, DataDegree > &coefficients, Point3D< Real > p, const BSplineData< DataDegree > &bsData, const ConstPointSupportKey< DataDegree > &dataKey) const |
| |
|
| 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 > ¢er, 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) |
| |