ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
BSplineData.h File Reference
#include "BinaryNode.h"
#include "PPolynomial.h"
#include "Array.h"
#include "BSplineData.inl"
Include dependency graph for BSplineData.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  BSplineElementCoefficients< Degree >
 
struct  BSplineElements< Degree >
 
class  BSplineEvaluationData< Degree >
 
struct  BSplineEvaluationData< Degree >::BSplineComponents
 
struct  BSplineEvaluationData< Degree >::BSplineUpSamplingCoefficients
 
struct  BSplineEvaluationData< Degree >::CenterEvaluator
 
struct  BSplineEvaluationData< Degree >::CenterEvaluator::Evaluator
 
struct  BSplineEvaluationData< Degree >::CenterEvaluator::ChildEvaluator
 
struct  BSplineEvaluationData< Degree >::CornerEvaluator
 
struct  BSplineEvaluationData< Degree >::CornerEvaluator::Evaluator
 
struct  BSplineEvaluationData< Degree >::CornerEvaluator::ChildEvaluator
 
struct  BSplineEvaluationData< Degree >::Evaluator
 
struct  BSplineEvaluationData< Degree >::ChildEvaluator
 
struct  BSplineEvaluationData< Degree >::UpSampleEvaluator
 
class  BSplineIntegrationData< Degree1, Degree2 >
 
struct  BSplineIntegrationData< Degree1, Degree2 >::FunctionIntegrator
 
struct  BSplineIntegrationData< Degree1, Degree2 >::FunctionIntegrator::Integrator
 
struct  BSplineIntegrationData< Degree1, Degree2 >::FunctionIntegrator::ChildIntegrator
 
class  BSplineData< Degree >
 

Macros

#define NEW_BSPLINE_CODE   1
 
#define BSPLINE_SET_BOUNDS(name, s, e)
 
#define _FLOOR_OF_HALF(x)   ( (x) >>1 )
 
#define _CEIL_OF_HALF(x)   ( ( (x)+1 )>>1 )
 
#define FLOOR_OF_HALF(x)   ( (x)<0 ? - _CEIL_OF_HALF( -(x) ) : _FLOOR_OF_HALF( x ) )
 
#define CEIL_OF_HALF(x)   ( (x)<0 ? - _FLOOR_OF_HALF( -(x) ) : _CEIL_OF_HALF( x ) )
 
#define SMALLEST_INTEGER_LARGER_THAN_HALF(x)   ( CEIL_OF_HALF( (x)+1 ) )
 
#define LARGEST_INTEGER_SMALLER_THAN_HALF(x)   ( FLOOR_OF_HALF( (x)-1 ) )
 
#define SMALLEST_INTEGER_LARGER_THAN_OR_EQUAL_TO_HALF(x)   ( CEIL_OF_HALF( x ) )
 
#define LARGEST_INTEGER_SMALLER_THAN_OR_EQUAL_TO_HALF(x)   ( FLOOR_OF_HALF( x ) )
 

Functions

template<int Degree1, int Degree2>
void SetBSplineElementIntegrals (double integrals[Degree1+1][Degree2+1])
 

Macro Definition Documentation

◆ _CEIL_OF_HALF

#define _CEIL_OF_HALF (   x)    ( ( (x)+1 )>>1 )

Definition at line 92 of file BSplineData.h.

◆ _FLOOR_OF_HALF

#define _FLOOR_OF_HALF (   x)    ( (x) >>1 )

Definition at line 91 of file BSplineData.h.

◆ BSPLINE_SET_BOUNDS

#define BSPLINE_SET_BOUNDS (   name,
  s,
 
)
Value:
static const int name ## Start = (s); \
static const int name ## End = (e); \
static const int name ## Size = (e)-(s)+1
std::string name

Definition at line 85 of file BSplineData.h.

◆ CEIL_OF_HALF

#define CEIL_OF_HALF (   x)    ( (x)<0 ? - _FLOOR_OF_HALF( -(x) ) : _CEIL_OF_HALF( x ) )

Definition at line 95 of file BSplineData.h.

◆ FLOOR_OF_HALF

#define FLOOR_OF_HALF (   x)    ( (x)<0 ? - _CEIL_OF_HALF( -(x) ) : _FLOOR_OF_HALF( x ) )

Definition at line 94 of file BSplineData.h.

◆ LARGEST_INTEGER_SMALLER_THAN_HALF

#define LARGEST_INTEGER_SMALLER_THAN_HALF (   x)    ( FLOOR_OF_HALF( (x)-1 ) )

Definition at line 97 of file BSplineData.h.

◆ LARGEST_INTEGER_SMALLER_THAN_OR_EQUAL_TO_HALF

#define LARGEST_INTEGER_SMALLER_THAN_OR_EQUAL_TO_HALF (   x)    ( FLOOR_OF_HALF( x ) )

Definition at line 99 of file BSplineData.h.

◆ NEW_BSPLINE_CODE

#define NEW_BSPLINE_CODE   1

Definition at line 32 of file BSplineData.h.

◆ SMALLEST_INTEGER_LARGER_THAN_HALF

#define SMALLEST_INTEGER_LARGER_THAN_HALF (   x)    ( CEIL_OF_HALF( (x)+1 ) )

Definition at line 96 of file BSplineData.h.

◆ SMALLEST_INTEGER_LARGER_THAN_OR_EQUAL_TO_HALF

#define SMALLEST_INTEGER_LARGER_THAN_OR_EQUAL_TO_HALF (   x)    ( CEIL_OF_HALF( x ) )

Definition at line 98 of file BSplineData.h.

Function Documentation

◆ SetBSplineElementIntegrals()

template<int Degree1, int Degree2>
void SetBSplineElementIntegrals ( double  integrals[Degree1+1][Degree2+1])