31#if defined(ChordGenericStandardPlaneComputer_RECURSES)
32#error Recursive header files inclusion detected in ChordGenericStandardPlaneComputer.h
35#define ChordGenericStandardPlaneComputer_RECURSES
37#if !defined ChordGenericStandardPlaneComputer_h
39#define ChordGenericStandardPlaneComputer_h
45#include "DGtal/base/Common.h"
46#include "DGtal/base/IteratorAdapter.h"
47#include "DGtal/kernel/CInteger.h"
48#include "DGtal/kernel/CSpace.h"
49#include "DGtal/kernel/SpaceND.h"
50#include "DGtal/kernel/PointVector.h"
51#include "DGtal/arithmetic/IntegerComputer.h"
52#include "DGtal/geometry/surfaces/ChordNaivePlaneComputer.h"
119 template <
typename TSpace,
120 typename TInputPoint,
121 typename TInternalScalar >
175 p[ 1 ] + (
_posY ? p[ 2 ] : -p[ 2 ] ),
181 p[ 1 ] + (
_posY ? -p[ 2 ] : p[ 2 ] ),
183 template <
typename Vector3D>
186 v[ 2 ] += (
_posX ? v[ 0 ] : -v[ 0 ] );
187 v[ 2 ] += (
_posY ? v[ 1 ] : -v[ 1 ] );
189 template <
typename Vector3D>
192 v[ 2 ] += (
_posX ? -v[ 0 ] : v[ 0 ] );
193 v[ 2 ] += (
_posY ? -v[ 1 ] : v[ 1 ] );
377 template <
typename TInputIterator>
378 bool extend( TInputIterator it, TInputIterator itE );
394 template <
typename TInputIterator>
421 template <
typename Vector3D>
430 template <
typename Vector3D>
520 template <
typename TSpace,
typename TInputPo
int,
typename TInternalScalar>
530#include "DGtal/geometry/surfaces/ChordGenericStandardPlaneComputer.ih"
537#undef ChordGenericStandardPlaneComputer_RECURSES
Aim: A class that recognizes pieces of digital planes of given diagonal width. When the width is ,...
void selfDisplay(std::ostream &out) const
const InputPoint * const_pointer
ConstIterator begin() const
Primitive primitive() const
BOOST_STATIC_ASSERT((TSpace::dimension==3))
ChordComputer myComputers[4]
bool extendAsIs(const InputPoint &p)
void getUnitNormal(Vector3D &normal) const
std::vector< Dimension > _orthantsToErase
InputPoint minimalPoint() const
ChordComputer::InternalVector InternalVector
const InputPoint & const_reference
BOOST_CONCEPT_ASSERT((concepts::CSignedNumber< TInternalScalar >))
InputPointSet::size_type size_type
bool operator()(const Point &p) const
bool extend(const InputPoint &p)
TInternalScalar InternalScalar
ChordComputer::Iterator InputPointSetIterator
std::vector< Dimension > myOrthants
ChordComputer::ConstIterator InputPointSetConstIterator
ChordGenericStandardPlaneComputer & operator=(const ChordGenericStandardPlaneComputer &other)
BOOST_STATIC_ASSERT((TInputPoint::dimension==3))
void getNormal(Vector3D &normal) const
ConstIterator const_iterator
bool isExtendable(const InputPoint &p) const
ChordNaivePlaneComputer< Space, InputPoint, InternalScalar > ChordComputer
ChordComputer::Primitive Primitive
ConstIterator end() const
bool isExtendable(TInputIterator it, TInputIterator itE) const
static Transform invT(Dimension orthant)
~ChordGenericStandardPlaneComputer()
ChordComputer::InputPointSet InputPointSet
ChordComputer::Component Component
void init(InternalScalar widthNumerator=NumberTraits< InternalScalar >::ONE, InternalScalar widthDenominator=NumberTraits< InternalScalar >::ONE)
void getCharacteristics(InternalVector &n, InternalScalar &imin, InternalScalar &imax, InputPoint &p_min, InputPoint &p_max) const
std::vector< Dimension >::const_iterator OrthantConstIterator
ChordComputer::Point Point
boost::transform_iterator< Transform, InputPointSetConstIterator, InputPoint, InputPoint > ConstIterator
InputPoint maximalPoint() const
ChordGenericStandardPlaneComputer()
static Transform t(Dimension orthant)
void getBounds(double &min, double &max) const
bool extend(TInputIterator it, TInputIterator itE)
static Transform myTransforms[4]
ChordComputer::Coordinate Coordinate
InputPointSet::difference_type difference_type
BOOST_CONCEPT_ASSERT((concepts::CSpace< TSpace >))
std::vector< Dimension >::iterator OrthantIterator
ChordGenericStandardPlaneComputer(const ChordGenericStandardPlaneComputer &other)
InputPointSet::size_type Size
std::set< InputPoint > InputPointSet
InputPointSet::const_iterator ConstIterator
InputPointSet::iterator Iterator
InputPoint::Coordinate Coordinate
InputVector::Component Component
Aim: A parallel strip in the space is the intersection of two parallel half-planes such that each hal...
DGtal is the top-level namespace which contains all DGtal functions and types.
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
DGtal::uint32_t Dimension
Aim: The traits class for all models of Cinteger.
Aim: Concept checking for Signed Numbers. Models of this concept should be listed in NumberTraits cla...
Aim: Defines the concept describing a digital space, ie a cartesian product of integer lines.