Developer Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Octree< Degree > Class Template Reference

Classes

class  AdjacencyCountFunction
 
class  AdjacencySetFunction
 
class  FaceEdgesFunction
 
struct  PointData
 
class  RefineFunction
 
struct  RootData
 
struct  Stencil
 

Public Member Functions

void setBSplineData (int maxDepth, int boundaryType=BSplineElements< Degree >::NONE)
 
void finalize (int subdivisionDepth)
 
int refineBoundary (int subdivisionDepth)
 
 Pointer (Real) GetSolutionGrid(int &res
 
int setTree (char *fileName, int maxDepth, int minDepth, int kernelDepth, Real samplesPerNode, Real scaleFactor, int useConfidence, Real constraintWeight, int adaptiveExponent, XForm4x4< Real > xForm=XForm4x4< Real >::Identity())
 
int setTreeMemory (std::vector< Real > &_pts_stream, int maxDepth, int minDepth, int splatDepth, Real samplesPerNode, Real scaleFactor, int useConfidence, Real constraintWeight, int adaptiveExponent, XForm4x4< Real > xForm=XForm4x4< Real >::Identity())
 
void SetLaplacianConstraints (void)
 
void ClipTree (void)
 
int LaplacianMatrixIteration (int subdivideDepth, bool showResidual, int minIters, double accuracy, int maxSolveDepth, int fixedIters)
 
Real GetIsoValue (void)
 
void GetMCIsoTriangles (Real isoValue, int subdivideDepth, CoredMeshData *mesh, int fullDepthIso=0, int nonLinearFit=1, bool addBarycenter=false, bool polygonMesh=false)
 

Static Public Member Functions

static double MemoryUsage (void)
 

Public Attributes

int threads
 
std::vector< Point3D< Real > > * normals
 
Real postDerivativeSmooth
 
TreeOctNode tree
 
BSplineData< Degree, Real > fData
 
Real isoValue =0.f
 
Real int depth =-1 )
 

Static Public Attributes

static double maxMemoryUsage
 

Private Member Functions

bool _inBounds (Point3D< Real >) const
 
Real GetLaplacian (const int index[DIMENSION]) const
 
Real GetLaplacian (const TreeOctNode *node1, const TreeOctNode *node2) const
 
Real GetDivergence (const TreeOctNode *node1, const TreeOctNode *node2, const Point3D< Real > &normal1) const
 
Real GetDivergenceMinusLaplacian (const TreeOctNode *node1, const TreeOctNode *node2, Real value1, const Point3D< Real > &normal1) const
 
int _SolveFixedDepthMatrix (int depth, const SortedTreeNodes &sNodes, Real *subConstraints, bool showResidual, int minIters, double accuracy, bool noSolve=false, int fixedIters=-1)
 
int _SolveFixedDepthMatrix (int depth, const SortedTreeNodes &sNodes, Real *subConstraints, int startingDepth, bool showResidual, int minIters, double accuracy, bool noSolve=false, int fixedIters=-1)
 
void SetMatrixRowBounds (const TreeOctNode *node, int rDepth, const int rOff[3], int &xStart, int &xEnd, int &yStart, int &yEnd, int &zStart, int &zEnd) const
 
int GetMatrixRowSize (const TreeOctNode::Neighbors5 &neighbors5) const
 
int GetMatrixRowSize (const TreeOctNode::Neighbors5 &neighbors5, int xStart, int xEnd, int yStart, int yEnd, int zStart, int zEnd) const
 
int SetMatrixRow (const TreeOctNode::Neighbors5 &neighbors5, Pointer(MatrixEntry< MatrixReal >) row, int offset, const double stencil[5][5][5]) const
 
int SetMatrixRow (const TreeOctNode::Neighbors5 &neighbors5, Pointer(MatrixEntry< MatrixReal >) row, int offset, const double stencil[5][5][5], int xStart, int xEnd, int yStart, int yEnd, int zStart, int zEnd) const
 
void SetDivergenceStencil (int depth, Point3D< double > stencil[5][5][5], bool scatter) const
 
void SetLaplacianStencil (int depth, double stencil[5][5][5]) const
 
void SetLaplacianStencils (int depth, Stencil< double, 5 > stencil[2][2][2]) const
 
void SetDivergenceStencils (int depth, Stencil< Point3D< double >, 5 > stencil[2][2][2], bool scatter) const
 
void SetEvaluationStencils (int depth, Stencil< Real, 3 > stencil1[8], Stencil< Real, 3 > stencil2[8][8]) const
 
void UpdateConstraintsFromCoarser (const TreeOctNode::NeighborKey5 &neighborKey5, TreeOctNode *node, Real *metSolution, const Stencil< double, 5 > &stencil) const
 
void SetCoarserPointValues (int depth, const SortedTreeNodes &sNodes, Real *metSolution)
 
Real WeightedCoarserFunctionValue (const TreeOctNode::NeighborKey3 &neighborKey3, const TreeOctNode *node, Real *metSolution) const
 
void UpSampleCoarserSolution (int depth, const SortedTreeNodes &sNodes, PoissonVector< Real > &solution) const
 
void DownSampleFinerConstraints (int depth, SortedTreeNodes &sNodes) const
 
template<class C >
void DownSample (int depth, const SortedTreeNodes &sNodes, C *constraints) const
 
template<class C >
void UpSample (int depth, const SortedTreeNodes &sNodes, C *coefficients) const
 
int GetFixedDepthLaplacian (SparseSymmetricMatrix< Real > &matrix, int depth, const SortedTreeNodes &sNodes, Real *subConstraints)
 
int GetRestrictedFixedDepthLaplacian (SparseSymmetricMatrix< Real > &matrix, int depth, const int *entries, int entryCount, const TreeOctNode *rNode, Real radius, const SortedTreeNodes &sNodes, Real *subConstraints)
 
void SetIsoCorners (Real isoValue, TreeOctNode *leaf, SortedTreeNodes::CornerTableData &cData, Pointer(char) valuesSet, Pointer(Real) values, TreeOctNode::ConstNeighborKey3 &nKey, const Real *metSolution, const Stencil< Real, 3 > stencil1[8], const Stencil< Real, 3 > stencil2[8][8])
 
int SetBoundaryMCRootPositions (int sDepth, Real isoValue, RootData &rootData, CoredMeshData *mesh, int nonLinearFit)
 
int SetMCRootPositions (TreeOctNode *node, int sDepth, Real isoValue, TreeOctNode::ConstNeighborKey5 &neighborKey5, RootData &rootData, std::vector< Point3D< Real > > *interiorPositions, CoredMeshData *mesh, const Real *metSolution, int nonLinearFit)
 
int GetMCIsoTriangles (TreeOctNode *node, CoredMeshData *mesh, RootData &rootData, std::vector< Point3D< Real > > *interiorPositions, int offSet, int sDepth, bool polygonMesh, std::vector< Point3D< Real > > *barycenters)
 
void GetMCIsoEdges (TreeOctNode *node, int sDepth, std::vector< std::pair< RootInfo, RootInfo > > &edges)
 
int GetRoot (const RootInfo &ri, Real isoValue, TreeOctNode::ConstNeighborKey5 &neighborKey5, Point3D< Real > &position, RootData &rootData, int sDepth, const Real *metSolution, int nonLinearFit)
 
int UpdateWeightContribution (TreeOctNode *node, const Point3D< Real > &position, TreeOctNode::NeighborKey3 &neighborKey, Real weight=Real(1.0))
 
Real GetSampleWeight (TreeOctNode *node, const Point3D< Real > &position, TreeOctNode::NeighborKey3 &neighborKey)
 
void GetSampleDepthAndWeight (TreeOctNode *node, const Point3D< Real > &position, TreeOctNode::NeighborKey3 &neighborKey, Real samplesPerNode, Real &depth, Real &weight)
 
int SplatOrientedPoint (TreeOctNode *node, const Point3D< Real > &point, const Point3D< Real > &normal, TreeOctNode::NeighborKey3 &neighborKey)
 
int SplatOrientedPoint (TreeOctNode *node, const Point3D< Real > &point, const Point3D< Real > &normal, TreeOctNode::NeighborKey5 &neighborKey)
 
Real SplatOrientedPoint (const Point3D< Real > &point, const Point3D< Real > &normal, TreeOctNode::NeighborKey3 &neighborKey, int kernelDepth, Real samplesPerNode, int minDepth, int maxDepth)
 
Real SplatOrientedPoint (const Point3D< Real > &point, const Point3D< Real > &normal, TreeOctNode::NeighborKey3 &neighborKey3, TreeOctNode::NeighborKey5 &neighborKey5, int kernelDepth, Real samplesPerNode, int minDepth, int maxDepth)
 
int HasNormals (TreeOctNode *node, Real epsilon)
 
Real getCornerValue (const TreeOctNode::ConstNeighborKey3 &neighborKey3, const TreeOctNode *node, int corner, const Real *metSolution)
 
Point3D< Real > getCornerNormal (const TreeOctNode::ConstNeighborKey5 &neighborKey5, const TreeOctNode *node, int corner, const Real *metSolution)
 
Real getCornerValue (const TreeOctNode::ConstNeighborKey3 &neighborKey3, const TreeOctNode *node, int corner, const Real *metSolution, const Real stencil1[3][3][3], const Real stencil2[3][3][3])
 
Real getCenterValue (const TreeOctNode::ConstNeighborKey3 &neighborKey3, const TreeOctNode *node)
 

Static Private Member Functions

static void UpdateCoarserSupportBounds (const TreeOctNode *node, int &startX, int &endX, int &startY, int &endY, int &startZ, int &endZ)
 
static int IsBoundaryFace (const TreeOctNode *node, int faceIndex, int subdivideDepth)
 
static int IsBoundaryEdge (const TreeOctNode *node, int edgeIndex, int subdivideDepth)
 
static int IsBoundaryEdge (const TreeOctNode *node, int dir, int x, int y, int subidivideDepth)
 
static int AddTriangles (CoredMeshData *mesh, std::vector< CoredPointIndex > &edges, std::vector< Point3D< Real > > *interiorPositions, int offSet, bool polygonMesh, std::vector< Point3D< Real > > *barycenters)
 
static int GetEdgeLoops (std::vector< std::pair< RootInfo, RootInfo > > &edges, std::vector< std::vector< std::pair< RootInfo, RootInfo > > > &loops)
 
static int InteriorFaceRootCount (const TreeOctNode *node, const int &faceIndex, int maxDepth)
 
static int EdgeRootCount (const TreeOctNode *node, int edgeIndex, int maxDepth)
 
static void GetRootSpan (const RootInfo &ri, Point3D< Real > &start, Point3D< Real > &end)
 
static int GetRootIndex (const TreeOctNode *node, int edgeIndex, int maxDepth, RootInfo &ri)
 
static int GetRootIndex (const TreeOctNode *node, int edgeIndex, int maxDepth, int sDepth, RootInfo &ri)
 
static int GetRootIndex (const RootInfo &ri, RootData &rootData, CoredPointIndex &index)
 
static int GetRootPair (const RootInfo &root, int maxDepth, RootInfo &pair)
 
static bool _IsInset (const TreeOctNode *node)
 
static bool _IsInsetSupported (const TreeOctNode *node)
 

Private Attributes

SortedTreeNodes _sNodes
 
int _minDepth
 
bool _constrainValues
 
int _boundaryType
 
Real _scale
 
Point3D< Real > _center
 
std::vector< int > _pointCount
 
std::vector< PointData_points
 
Real radius
 
int width
 

Detailed Description

template<int Degree>
class Octree< Degree >

Definition at line 234 of file MultiGridOctreeData.h.


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