cheshirekow  v0.1.0
mpblocks::brown79::Inversion< Traits > Class Template Reference

Represents the inversion operator described in Brown. More...

#include <mpblocks/brown79/inversion.h>

Public Types

typedef Traits::Point Point
 
typedef Traits::Scalar Scalar
 

Public Member Functions

const Pointcenter () const
 return the center of this inversion map More...
 
void init (const Point &center, Scalar radius=1.0)
 alter the inversion map to have a new center and radius More...
 
 Inversion ()
 create an uninitialized inversion More...
 
 Inversion (const Point &center, Scalar radius=1.0)
 create a new inversion map with specified center and radius More...
 
Point invert (const Point &p)
 invert a point More...
 
Point operator() (const Point &p)
 invert a point More...
 
Scalar radius () const
 return the radius of this inversion map More...
 

Private Attributes

Point m_center
 the center of inversion More...
 
Scalar m_radius
 the radius of inversion More...
 

Detailed Description

template<class Traits>
class mpblocks::brown79::Inversion< Traits >

Represents the inversion operator described in Brown.

An inversion has both a center and a radius. The inversion operator is self involute in the sense if the double image of the inversion is the original object.

The inverse x' of a point x is found by (x' - c) = r / |x-c|^2 (x-c). i.e. it lies on the ray from c->x and the distance from c is r / m where m is the distance from c to x, r is the radius of the inversion, and c is the center of inversion

Definition at line 44 of file inversion.h.

Member Typedef Documentation

template<class Traits>
typedef Traits::Point mpblocks::brown79::Inversion< Traits >::Point

Definition at line 47 of file inversion.h.

template<class Traits>
typedef Traits::Scalar mpblocks::brown79::Inversion< Traits >::Scalar

Definition at line 46 of file inversion.h.

Constructor & Destructor Documentation

template<class Traits >
mpblocks::brown79::Inversion< Traits >::Inversion ( )

create an uninitialized inversion

Definition at line 32 of file inversion.hpp.

template<class Traits >
mpblocks::brown79::Inversion< Traits >::Inversion ( const Point center,
Scalar  radius = 1.0 
)

create a new inversion map with specified center and radius

Definition at line 35 of file inversion.hpp.

Member Function Documentation

template<class Traits >
const Traits::Point & mpblocks::brown79::Inversion< Traits >::center ( ) const

return the center of this inversion map

Definition at line 64 of file inversion.hpp.

template<class Traits >
void mpblocks::brown79::Inversion< Traits >::init ( const Point center,
Scalar  radius = 1.0 
)

alter the inversion map to have a new center and radius

Definition at line 40 of file inversion.hpp.

template<class Traits >
Traits::Point mpblocks::brown79::Inversion< Traits >::invert ( const Point p)

invert a point

Definition at line 46 of file inversion.hpp.

template<class Traits >
Inversion< Traits >::Point mpblocks::brown79::Inversion< Traits >::operator() ( const Point p)

invert a point

Definition at line 58 of file inversion.hpp.

template<class Traits >
Traits::Scalar mpblocks::brown79::Inversion< Traits >::radius ( ) const

return the radius of this inversion map

Definition at line 69 of file inversion.hpp.

Member Data Documentation

template<class Traits>
Point mpblocks::brown79::Inversion< Traits >::m_center
private

the center of inversion

Definition at line 50 of file inversion.h.

template<class Traits>
Scalar mpblocks::brown79::Inversion< Traits >::m_radius
private

the radius of inversion

Definition at line 51 of file inversion.h.


The documentation for this class was generated from the following files: