DGtal  0.9.4beta
DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::Transform Struct Reference

#include <DGtal/geometry/surfaces/COBAGenericStandardPlaneComputer.h>

## Public Types

typedef Point Value

typedef Point value_type

## Public Member Functions

Transform ()

Transform (bool posX, bool posY)

Point operator() (const Point &p) const

bool isPlusZOnX () const

bool isPlusZOnY () const

Point inverse (const Point &p) const

template<typename Vector3D >
void transformBack (Vector3D &v)

template<typename Vector3D >
void transform (Vector3D &v)

bool _posX

bool _posY

## Detailed Description

### template<typename TSpace, typename TInternalInteger> struct DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::Transform

This type is used to cast points from $$(x,y,z)$$ to $$(x \pm z,y \pm z,z)$$ and inversely. This is used when recognize a standard plane. Indeed, we only know how to recognize naive planes. So we dilate points of standard planes with this transform so that the standard plane becomes naive. Otherwise said, if $$T_{\pm,\pm}: (x,y,z) \mapsto (x \pm z,y \pm z,z)$$, then P is a standard plane iff one of $$T_{+,+}(P), T_{+,-}(P), T_{-,+}(P), T_{-,-}(P)$$ is a naive plane of main axis z.

Definition at line 167 of file COBAGenericStandardPlaneComputer.h.

## Member Typedef Documentation

template<typename TSpace , typename TInternalInteger >
 typedef Point DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::Transform::Value

Definition at line 168 of file COBAGenericStandardPlaneComputer.h.

template<typename TSpace , typename TInternalInteger >
 typedef Point DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::Transform::value_type

Definition at line 169 of file COBAGenericStandardPlaneComputer.h.

## Constructor & Destructor Documentation

template<typename TSpace , typename TInternalInteger >
 DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::Transform::Transform ( )
inline

Definition at line 172 of file COBAGenericStandardPlaneComputer.h.

172 {}
template<typename TSpace , typename TInternalInteger >
 DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::Transform::Transform ( bool posX, bool posY )
inline

Definition at line 173 of file COBAGenericStandardPlaneComputer.h.

173 : _posX( posX ), _posY( posY ) {}

## Member Function Documentation

template<typename TSpace , typename TInternalInteger >
 Point DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::Transform::inverse ( const Point & p ) const
inline

Definition at line 186 of file COBAGenericStandardPlaneComputer.h.

187  {
188  if ( _posX ) {
189  if ( _posY ) return Point( p[ 0 ] - p[ 2 ], p[ 1 ] - p[ 2 ], p[ 2 ] );
190  else return Point( p[ 0 ] - p[ 2 ], p[ 1 ] + p[ 2 ], p[ 2 ] );
191  } else {
192  if ( _posY ) return Point( p[ 0 ] + p[ 2 ], p[ 1 ] - p[ 2 ], p[ 2 ] );
193  else return Point( p[ 0 ] + p[ 2 ], p[ 1 ] + p[ 2 ], p[ 2 ] );
194  }
195  }
template<typename TSpace , typename TInternalInteger >
 bool DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::Transform::isPlusZOnX ( ) const
inline

Definition at line 184 of file COBAGenericStandardPlaneComputer.h.

184 { return _posX; }
template<typename TSpace , typename TInternalInteger >
 bool DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::Transform::isPlusZOnY ( ) const
inline

Definition at line 185 of file COBAGenericStandardPlaneComputer.h.

185 { return _posY; }
template<typename TSpace , typename TInternalInteger >
 Point DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::Transform::operator() ( const Point & p ) const
inline

Definition at line 174 of file COBAGenericStandardPlaneComputer.h.

175  {
176  if ( _posX ) {
177  if ( _posY ) return Point( p[ 0 ] + p[ 2 ], p[ 1 ] + p[ 2 ], p[ 2 ] );
178  else return Point( p[ 0 ] + p[ 2 ], p[ 1 ] - p[ 2 ], p[ 2 ] );
179  } else {
180  if ( _posY ) return Point( p[ 0 ] - p[ 2 ], p[ 1 ] + p[ 2 ], p[ 2 ] );
181  else return Point( p[ 0 ] - p[ 2 ], p[ 1 ] - p[ 2 ], p[ 2 ] );
182  }
183  }
template<typename TSpace , typename TInternalInteger >
template<typename Vector3D >
 void DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::Transform::transform ( Vector3D & v )
inline

Definition at line 205 of file COBAGenericStandardPlaneComputer.h.

206  {
207  if ( _posX ) v[ 2 ] -= v[ 0 ];
208  else v[ 2 ] += v[ 0 ];
209  if ( _posY ) v[ 2 ] -= v[ 1 ];
210  else v[ 2 ] += v[ 1 ];
211  }
template<typename TSpace , typename TInternalInteger >
template<typename Vector3D >
 void DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::Transform::transformBack ( Vector3D & v )
inline

Definition at line 197 of file COBAGenericStandardPlaneComputer.h.

198  {
199  if ( _posX ) v[ 2 ] += v[ 0 ];
200  else v[ 2 ] -= v[ 0 ];
201  if ( _posY ) v[ 2 ] += v[ 1 ];
202  else v[ 2 ] -= v[ 1 ];
203  }

## Field Documentation

template<typename TSpace , typename TInternalInteger >
 bool DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::Transform::_posX

true for +z on x, false for -z on x

Definition at line 170 of file COBAGenericStandardPlaneComputer.h.

template<typename TSpace , typename TInternalInteger >
 bool DGtal::COBAGenericStandardPlaneComputer< TSpace, TInternalInteger >::Transform::_posY

true for +z on y, false for -z on y

Definition at line 171 of file COBAGenericStandardPlaneComputer.h.

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