Ponca  8e4373a7fc557bbfb1afb9210d70f03872388d04
Point Cloud Analysis library
Loading...
Searching...
No Matches
Ponca::MeanNormal< DataPoint, _NFilter, T > Class Template Reference

Compute the mean normal of the input points. More...

#include <mean.h>

+ Inheritance diagram for Ponca::MeanNormal< DataPoint, _NFilter, T >:
+ Collaboration diagram for Ponca::MeanNormal< DataPoint, _NFilter, T >:

Public Types

using Scalar = typename DataPoint::Scalar
 Alias to scalar type.
 
using VectorType = typename Base::VectorType
 Alias to vector type.
 
using NeighborFilter = typename Base::NeighborFilter
 Alias to the filter applied on the neighbors.
 

Public Member Functions

MeanNormal< DataPoint, _NFilter, T > & meanNormal ()
 Explicit conversion to MeanNormal , to access methods potentially hidden by heritage.
 
const MeanNormal< DataPoint, _NFilter, T > & meanNormal () const
 Explicit conversion to MeanNormal , to access methods potentially hidden by heritage.
 
void init ()
 Set the evaluation position and reset the internal states.
 
bool addLocalNeighbor (Scalar w, const VectorType &localQ, const DataPoint &attributes)
 Add a neighbor to perform the fit.
 
VectorType meanNormalVector () const
 Mean of the normals of the input points.
 

Protected Types

enum  { PROVIDES_MEAN_NORMAL }
 
using Base = T
 Base class of the procedure.
 

Protected Attributes

VectorType m_sumN {VectorType::Zero()}
 Sum of the normal vectors.
 

Detailed Description

template<class DataPoint, class _NFilter, typename T>
class Ponca::MeanNormal< DataPoint, _NFilter, T >

Compute the mean normal of the input points.

Warning
The mean normal is not stored explicitly, but rather computed from the sum of the neighbors normals.

This primitive provides:

PROVIDES_MEAN_NORMAL 
See also
MeanNormalDer

Definition at line 79 of file mean.h.

Member Typedef Documentation

◆ Base

template<class DataPoint , class _NFilter , typename T >
using Ponca::MeanNormal< DataPoint, _NFilter, T >::Base = T
protected

Base class of the procedure.

Definition at line 80 of file mean.h.

◆ NeighborFilter

template<class DataPoint , class _NFilter , typename T >
using Ponca::MeanNormal< DataPoint, _NFilter, T >::NeighborFilter = typename Base::NeighborFilter

Alias to the filter applied on the neighbors.

Definition at line 80 of file mean.h.

◆ Scalar

template<class DataPoint , class _NFilter , typename T >
using Ponca::MeanNormal< DataPoint, _NFilter, T >::Scalar = typename DataPoint::Scalar

Alias to scalar type.

Definition at line 80 of file mean.h.

◆ VectorType

template<class DataPoint , class _NFilter , typename T >
using Ponca::MeanNormal< DataPoint, _NFilter, T >::VectorType = typename Base::VectorType

Alias to vector type.

Definition at line 80 of file mean.h.

Member Enumeration Documentation

◆ anonymous enum

template<class DataPoint , class _NFilter , typename T >
anonymous enum
protected

Definition at line 83 of file mean.h.

Member Function Documentation

◆ addLocalNeighbor()

template<class DataPoint , class _NFilter , typename T >
bool MeanNormal::addLocalNeighbor ( Scalar  w,
const VectorType localQ,
const DataPoint &  attributes 
)
inline

Add a neighbor to perform the fit.

Returns
false if param nei is not a valid neighbour (weight = 0)

Definition at line 40 of file mean.hpp.

◆ init()

template<class DataPoint , class _NFilter , typename T >
void MeanNormal::init ( )
inline

Set the evaluation position and reset the internal states.

Warning
Must be called be for any computation (but after #setNeighborFilter)

Definition at line 31 of file mean.hpp.

◆ meanNormal() [1/2]

template<class DataPoint , class _NFilter , typename T >
MeanNormal< DataPoint, _NFilter, T > & Ponca::MeanNormal< DataPoint, _NFilter, T >::meanNormal ( )
inline

Explicit conversion to MeanNormal , to access methods potentially hidden by heritage.

Definition at line 87 of file mean.h.

◆ meanNormal() [2/2]

template<class DataPoint , class _NFilter , typename T >
const MeanNormal< DataPoint, _NFilter, T > & Ponca::MeanNormal< DataPoint, _NFilter, T >::meanNormal ( ) const
inline

Explicit conversion to MeanNormal , to access methods potentially hidden by heritage.

Definition at line 87 of file mean.h.

◆ meanNormalVector()

template<class DataPoint , class _NFilter , typename T >
VectorType Ponca::MeanNormal< DataPoint, _NFilter, T >::meanNormalVector ( ) const
inline

Mean of the normals of the input points.

Defined as \( n(\mathbf{x}) = \frac{\sum_i w_\mathbf{x}(\mathbf{p_i}) \mathbf{n_i}}{\sum_i w_\mathbf{x}(\mathbf{p_i})} \), where \(\left[\mathbf{p_i}, \mathbf{n_i} \in \text{neighborhood}(\mathbf{x})\right]\) are all the point and normal samples in \(\mathbf{x}\)'s neighborhood

Definition at line 95 of file mean.h.

Member Data Documentation

◆ m_sumN

template<class DataPoint , class _NFilter , typename T >
VectorType Ponca::MeanNormal< DataPoint, _NFilter, T >::m_sumN {VectorType::Zero()}
protected

Sum of the normal vectors.

Definition at line 84 of file mean.h.