Blender V2.61 - r43446
Defines | Functions | Variables

octree.cpp File Reference

#include "octree.h"
#include <Eigen/Dense>
#include <limits>
#include <time.h>

Go to the source code of this file.

Defines

#define DC_DEBUG   0
#define dc_printf(...)   do {} while(0)

Functions

template<typename _Matrix_Type_ >
void pseudoInverse (const _Matrix_Type_ &a, _Matrix_Type_ &result, double epsilon=std::numeric_limits< typename _Matrix_Type_::Scalar >::epsilon())
void solve_least_squares (const float halfA[], const float b[], const float midpoint[], float rvalue[])
void minimize (float rvalue[3], float mp[3], const float pts[12][3], const float norms[12][3], const int parity[12])

Variables

const int edgemask [3] = {5, 3, 6}
const int faceMap [6][4]
const int cellProcFaceMask [12][3]
const int cellProcEdgeMask [6][5]
const int faceProcFaceMask [3][4][3]
const int faceProcEdgeMask [3][4][6]
const int edgeProcEdgeMask [3][2][5]
const int processEdgeMask [3][4]
const int dirCell [3][4][3]
const int dirEdge [3][4]

Define Documentation

#define DC_DEBUG   0

Implementations of Octree member functions.

Author:
Tao Ju

Definition at line 35 of file octree.cpp.

#define dc_printf (   ...)    do {} while(0)

Definition at line 42 of file octree.cpp.

Referenced by Octree::Octree(), and Octree::scanConvert().


Function Documentation

void minimize ( float  rvalue[3],
float  mp[3],
const float  pts[12][3],
const float  norms[12][3],
const int  parity[12] 
)

Definition at line 3497 of file octree.cpp.

References i, norm(), and solve_least_squares().

template<typename _Matrix_Type_ >
void pseudoInverse ( const _Matrix_Type_ &  a,
_Matrix_Type_ &  result,
double  epsilon = std::numeric_limits<typename _Matrix_Type_::Scalar>::epsilon() 
)

Definition at line 3461 of file octree.cpp.

References KDL::epsilon, and Octree::max.

Referenced by solve_least_squares().

void solve_least_squares ( const float  halfA[],
const float  b[],
const float  midpoint[],
float  rvalue[] 
)

Definition at line 3479 of file octree.cpp.

References A, and pseudoInverse().

Referenced by minimize().


Variable Documentation

const int cellProcEdgeMask[6][5]
Initial value:
 {
    {0, 1, 2, 3, 0},
    {4, 5, 6, 7, 0},
    {0, 4, 1, 5, 1},
    {2, 6, 3, 7, 1},
    {0, 2, 4, 6, 2},
    {1, 3, 5, 7, 2}
}

Definition at line 4238 of file octree.cpp.

const int cellProcFaceMask[12][3]
Initial value:
 {
    {0, 4, 0},
    {1, 5, 0},
    {2, 6, 0},
    {3, 7, 0},
    {0, 2, 1},
    {4, 6, 1},
    {1, 3, 1},
    {5, 7, 1},
    {0, 1, 2},
    {2, 3, 2},
    {4, 5, 2},
    {6, 7, 2}
}

Definition at line 4223 of file octree.cpp.

const int dirCell[3][4][3]
Initial value:
 {
    {{0, -1, -1},
     {0, -1, 0},
     {0, 0, -1},
     {0, 0, 0}},
    {{-1, 0, -1},
     {-1, 0, 0},
     {0, 0, -1},
     {0, 0, 0}},
    {{-1, -1, 0},
     {-1, 0, 0},
     {0, -1, 0},
     {0, 0, 0}}
}

Definition at line 4292 of file octree.cpp.

const int dirEdge[3][4]
Initial value:
 {
    {3, 2, 1, 0},
    {7, 6, 5, 4},
    {11, 10, 9, 8}
}

Definition at line 4307 of file octree.cpp.

const int edgemask[3] = {5, 3, 6}

Definition at line 4212 of file octree.cpp.

const int edgeProcEdgeMask[3][2][5]
Initial value:
 {
    {{3, 2, 1, 0, 0},
     {7, 6, 5, 4, 0}},
    {{5, 1, 4, 0, 1},
     {7, 3, 6, 2, 1}},
    {{6, 4, 2, 0, 2},
     {7, 5, 3, 1, 2}},
}

Definition at line 4277 of file octree.cpp.

const int faceMap[6][4]
Initial value:
 {
    {4, 8, 5, 9},
    {6, 10, 7, 11},
    {0, 8, 1, 10},
    {2, 9, 3, 11},
    {0, 4, 2, 6},
    {1, 5, 3, 7}
}

Definition at line 4214 of file octree.cpp.

Referenced by applyModifier(), and set_subsurf_uv().

const int faceProcEdgeMask[3][4][6]
Initial value:
 {
    {{1, 4, 0, 5, 1, 1},
     {1, 6, 2, 7, 3, 1},
     {0, 4, 6, 0, 2, 2},
     {0, 5, 7, 1, 3, 2}},
    {{0, 2, 3, 0, 1, 0},
     {0, 6, 7, 4, 5, 0},
     {1, 2, 0, 6, 4, 2},
     {1, 3, 1, 7, 5, 2}},
    {{1, 1, 0, 3, 2, 0},
     {1, 5, 4, 7, 6, 0},
     {0, 1, 5, 0, 4, 1},
     {0, 3, 7, 2, 6, 1}}
}

Definition at line 4262 of file octree.cpp.

const int faceProcFaceMask[3][4][3]
Initial value:
 {
    {{4, 0, 0},
     {5, 1, 0},
     {6, 2, 0},
     {7, 3, 0}},
    {{2, 0, 1},
     {6, 4, 1},
     {3, 1, 1},
     {7, 5, 1}},
    {{1, 0, 2},
     {3, 2, 2},
     {5, 4, 2},
     {7, 6, 2}}
}

Definition at line 4247 of file octree.cpp.

const int processEdgeMask[3][4]
Initial value:
 {
    {3, 2, 1, 0},
    {7, 5, 6, 4},
    {11, 10, 9, 8}
}

Definition at line 4286 of file octree.cpp.