Jafar
|
class Atom Atom is the base class of geometric objects. More...
class Atom Atom is the base class of geometric objects.
It defines a few basic function that are shared between the different type of geometric objects. It also defined functions that need to be reimplemented.
A geometric object is divided in two part, a base class which inherits Atom and a driver which inherits Atom::Driver. The base class is the public one, it defines a set of functions that can be used for computational purposes, while the driver contains the parameters of the class which can be of different types.
#include <Atom.hpp>
Classes | |
class | Driver |
This is the base class for all geometric objects Drivers. More... | |
Public Types | |
enum | Type { T_Point, T_Line, T_HyperPlane, T_OrientedPlan, T_PolyLine, T_Segment, T_Facet, T_Repere } |
This enum allows to specify the type of geometric object. | |
typedef boost::numeric::ublas::bounded_vector < double, dimension+1 > | HomogenousVecD |
typedef boost::numeric::ublas::bounded_vector < double, dimension > | VecD |
typedef boost::numeric::ublas::bounded_matrix < double, dimension+1,dimension+1 > | HomogenousMatrixD |
typedef boost::numeric::ublas::bounded_matrix < double, dimension, dimension > | MatrixD |
typedef boost::numeric::ublas::bounded_matrix < double, 1,dimension+1 > | HomogenousMatrix1D |
typedef boost::numeric::ublas::bounded_matrix < double, dimension+1, 1 > | HomogenousMatrixD1 |
typedef jblas::bounded_symmetric_matrix < double, dimension+1 > | HomogenousSymMatrixD |
typedef jblas::bounded_symmetric_matrix < double, dimension > | SymMatrixD |
typedef Repere< dimension > | RepereD |
typedef Transformable< dimension > | TransformableD |
Public Member Functions | |
Atom (Driver *driver) | |
const RepereD * | reference () const |
virtual Type | type () const =0 |
virtual BoundingBox< dimension > | boundingBox () const =0 |
virtual void | accept (AtomVisitorInterface< dimension > *) const =0 |
virtual double | distance (const Atom< dimension > &) const |
virtual double | distance (const Point< dimension > &) const =0 |
virtual double | distance (const Line< dimension > &) const =0 |
virtual double | distance (const HyperPlane< dimension > &) const =0 |
virtual double | distance (const Segment< dimension > &) const =0 |
virtual double | distance (const PolyLine< dimension > &) const =0 |
virtual double | distance (const Facet< dimension > &) const =0 |
virtual double | distance (const RepereD &) const =0 |
virtual double | angle (const Line< dimension > &) const =0 |
virtual double | angle (const HyperPlane< dimension > &) const =0 |
virtual double | angle (const Segment< dimension > &) const =0 |
virtual double | angle (const PolyLine< dimension > &) const =0 |
virtual double | angle (const Facet< dimension > &) const =0 |
virtual double | angle (const RepereD &) const =0 |
bool | hasCov () const |
virtual std::string | toString () const |
void | setId (unsigned int _id) |
unsigned | id () const |
void | applyTransformation (const HomogenousMatrixD &_transformation) |
Apply a transformation on an object, if the Driver inherits Transformable . | |
bool | isTransformable () const |
Static Public Member Functions | |
static std::string | type2String (Type type) |
Static Public Attributes | |
static const unsigned int | NO_ID = -1 |
static const int | Dimension = dimension |
Protected Member Functions | |
void | setDriver (Driver *d) |
Protected Attributes | |
const double | Epsilon |
Private Attributes | |
Driver * | m_driver |
Transformable< dimension > * | m_transformable |
unsigned int | m_id |
virtual double jafar::geom::Atom< dimension >::angle | ( | const Line< dimension > & | ) | const [pure virtual] |
virtual double jafar::geom::Atom< dimension >::angle | ( | const HyperPlane< dimension > & | ) | const [pure virtual] |
virtual double jafar::geom::Atom< dimension >::angle | ( | const Segment< dimension > & | ) | const [pure virtual] |
virtual double jafar::geom::Atom< dimension >::angle | ( | const PolyLine< dimension > & | ) | const [pure virtual] |
virtual double jafar::geom::Atom< dimension >::angle | ( | const Facet< dimension > & | ) | const [pure virtual] |
virtual double jafar::geom::Atom< dimension >::angle | ( | const RepereD & | ) | const [pure virtual] |
virtual BoundingBox<dimension> jafar::geom::Atom< dimension >::boundingBox | ( | ) | const [pure virtual] |
Implemented in jafar::geom::Segment< dimension >, jafar::geom::Point< dimension >, jafar::geom::Line< dimension >, jafar::geom::HyperPlane< dimension >, jafar::geom::HyperPlane< 3 >, jafar::geom::PolyLine< dimension >, jafar::geom::PolyLine< dimension-1 >, jafar::geom::Repere< dimension >, jafar::geom::Repere< 3 >, and jafar::geom::Facet< dimension >.
double jafar::geom::Atom< dimension >::distance | ( | const Atom< dimension > & | atom | ) | const [virtual] |
Definition at line 63 of file AtomImpl.hpp.
References JFR_ASSERT.
virtual double jafar::geom::Atom< dimension >::distance | ( | const Point< dimension > & | ) | const [pure virtual] |
virtual double jafar::geom::Atom< dimension >::distance | ( | const Line< dimension > & | ) | const [pure virtual] |
virtual double jafar::geom::Atom< dimension >::distance | ( | const HyperPlane< dimension > & | ) | const [pure virtual] |
virtual double jafar::geom::Atom< dimension >::distance | ( | const Segment< dimension > & | ) | const [pure virtual] |
virtual double jafar::geom::Atom< dimension >::distance | ( | const PolyLine< dimension > & | ) | const [pure virtual] |
virtual double jafar::geom::Atom< dimension >::distance | ( | const Facet< dimension > & | ) | const [pure virtual] |
virtual double jafar::geom::Atom< dimension >::distance | ( | const RepereD & | ) | const [pure virtual] |
bool jafar::geom::Atom< dimension >::hasCov | ( | ) | const [inline] |
Definition at line 84 of file AtomImpl.hpp.
Referenced by jafar::geom::Segment< dimension >::TwoPointsDriver::cloneLineDriver(), jafar::geom::PolyLine< dimension >::PolyLineNM1Driver::hasCov(), and jafar::geom::Point< dimension >::homogenousCoordinatesCov().
bool jafar::geom::Atom< dimension >::isTransformable | ( | ) | const |
Definition at line 127 of file AtomImpl.hpp.
const Repere< dimension > * jafar::geom::Atom< dimension >::reference | ( | ) | const [inline] |
Reimplemented in jafar::geom::Repere< dimension >, and jafar::geom::Repere< 3 >.
Definition at line 35 of file AtomImpl.hpp.
References jafar::geom::Repere< dimension >::reference().
Referenced by jafar::geom::PolyLine< dimension >::boundingBox(), jafar::geom::Point< dimension >::boundingBox(), jafar::geom::HyperPlane< dimension >::VectorsDriver::clone(), and jafar::geom::Segment< dimension >::TwoPointsDriver::cloneLineDriver().
virtual Type jafar::geom::Atom< dimension >::type | ( | ) | const [pure virtual] |
Implemented in jafar::geom::Segment< dimension >, jafar::geom::Point< dimension >, jafar::geom::OrientedPlan< dimension >, jafar::geom::Line< dimension >, jafar::geom::HyperPlane< dimension >, jafar::geom::HyperPlane< 3 >, jafar::geom::PolyLine< dimension >, jafar::geom::PolyLine< dimension-1 >, jafar::geom::Repere< dimension >, jafar::geom::Repere< 3 >, and jafar::geom::Facet< dimension >.
Generated on Wed Oct 15 2014 00:37:36 for Jafar by doxygen 1.7.6.1 |