shape_doc 0.1
curve_rational< C, V > Class Template Reference

#include <curve_rational.hpp>

Inheritance diagram for curve_rational< C, V >:
parametric_curve< C, V > curve< V > SHAPE_OFV

List of all members.

Public Types

Public Member Functions


Detailed Description

template<class C, class V = default_env>
class mmx::shape::curve_rational< C, V >

Definition at line 39 of file curve_rational.hpp.


Member Typedef Documentation

typedef bounding_box<C,V> BoundingBox

Reimplemented from parametric_curve< C, V >.

Definition at line 41 of file curve_rational.hpp.

typedef curve< REF_OF(V) > Curve [inherited]

Definition at line 48 of file parametric_curve.hpp.

Definition at line 42 of file curve_rational.hpp.

Reimplemented from parametric_curve< C, V >.

Definition at line 44 of file curve_rational.hpp.

typedef point_set<C, REF_OF(V) >::PointIterator PointIterator [inherited]

Definition at line 50 of file parametric_curve.hpp.

Definition at line 45 of file curve_rational.hpp.

Reimplemented from parametric_curve< C, V >.

Definition at line 43 of file curve_rational.hpp.


Constructor & Destructor Documentation

curve_rational ( void  ) [inline]

Definition at line 47 of file curve_rational.hpp.

:ParametricCurve(), m_tmin(0), m_tmax(1) {}
curve_rational ( const BoundingBox box) [inline]

Definition at line 49 of file curve_rational.hpp.

                                         : 
    ParametricCurve(box), m_tmin(0), m_tmax(1) {}
curve_rational ( const Polynomial X,
const Polynomial Y,
const Polynomial Z,
const Polynomial W = 1 
) [inline]

Definition at line 52 of file curve_rational.hpp.

    : ParametricCurve(), m_tmin(0), m_tmax(1), m_w(W) 
  {
    m_p<<X; m_p<<Y; m_p<<Z;
  }
curve_rational ( double  m,
double  M,
const Polynomial X,
const Polynomial Y,
const Polynomial Z,
const Polynomial W = 1 
) [inline]

Definition at line 58 of file curve_rational.hpp.

    : ParametricCurve(), m_tmin(m), m_tmax(M), m_w(W) 
  {
    m_p<<X; m_p<<Y; m_p<<Z;
  }
curve_rational ( const curve_rational< C, V > &  c) [inline]

Definition at line 64 of file curve_rational.hpp.

    : ParametricCurve(), m_tmin(c.tmin()), m_tmax(c.tmax()),  m_w(c.m_w) 
  {
    m_p=c.m_p; 
  }
~curve_rational ( void  ) [inline]

Definition at line 72 of file curve_rational.hpp.

{};

Member Function Documentation

Seq< typename curve_rational< C, V >::Point * > critical_points ( void  ) [virtual]

Implements parametric_curve< C, V >.

Definition at line 127 of file curve_rational.hpp.

                          {
  Seq<Point *> l ;
  // ...
  return l ;
}
const Polynomial& denominator ( ) const [inline]

Definition at line 85 of file curve_rational.hpp.

{ return m_w; }
int dimension ( void  ) const [inline]

Definition at line 70 of file curve_rational.hpp.

{ return m_p.size();}
void eval ( Point v,
Scalar  p 
) const [virtual]

Implements parametric_curve< C, V >.

Definition at line 109 of file curve_rational.hpp.

References point< C, V, N >::setx(), point< C, V, N >::sety(), and point< C, V, N >::setz().

                                   {
  Scalar w=m_w(p);
  v.setx(m_p[0](p)/w);
  v.sety(m_p[1](p)/w);
  v.setz(m_p[2](p)/w);
}
curve_rational< C, V >::Point * eval ( const double &  t) const [virtual]

Implements parametric_curve< C, V >.

Definition at line 101 of file curve_rational.hpp.

                                {
  Scalar v=as<Scalar>(t);
  double w = as<double>(m_w(v));
  Point* p = new Point(m_p[0](v)/w, m_p[1](v)/w, m_p[2](v)/w);
  return p ;
}
void eval ( double  t,
double *  x,
double *  y,
double *  z 
) const
Seq< typename curve_rational< C, V >::Point * > extremal_points ( void  ) [virtual]

Implements parametric_curve< C, V >.

Definition at line 134 of file curve_rational.hpp.

                          {
   Seq<Point *> l ;
   // ...
   return l ;
}
const Polynomial& numerator ( int  i) const [inline]

Definition at line 86 of file curve_rational.hpp.

{ return m_p[i]; }
virtual Point* operator() ( double  t) const [inline, virtual, inherited]

Definition at line 61 of file parametric_curve.hpp.

{ return this->eval(t); }
curve_rational< C, V >::Point * operator() ( double  t)

Definition at line 117 of file curve_rational.hpp.

References mmx::eval().

{ return eval(t); }
void sample ( Point res,
const Scalar t,
int  n 
) const [virtual, inherited]

Definition at line 86 of file parametric_curve.hpp.

References mmx::eval().

                                                     {
  for ( Point * o = res; o != res + n; o++, t++  )
    this->eval(*o,*t);
}
void sample ( PointIterator  p,
int  n 
) const [virtual, inherited]

Definition at line 76 of file parametric_curve.hpp.

References mmx::eval().

                                         {
  assert(n>1);
  Scalar h=(this->tmax() - this->tmin())/(n-1), t=tmin();
  for (int i=0; i<n; i++, p++) {
    this->eval(*p, t);   // SEGFAULT ?
    t+=h;
  }
}
void set_range ( double  tmin,
double  tmax 
) [virtual]

Implements parametric_curve< C, V >.

Definition at line 121 of file curve_rational.hpp.

                                        {
  m_tmin=tmin;                                           
  m_tmax=tmax;                                           
}
Seq< typename curve_rational< C, V >::Point * > singular_points ( void  ) [virtual]

Implements parametric_curve< C, V >.

Definition at line 141 of file curve_rational.hpp.

{
   Seq<Point *> l ;
   // ...
   return l ;
}
virtual void subdivide ( parametric_curve< C, V > *&  a,
parametric_curve< C, V > *&  b,
double  t 
) const [pure virtual, inherited]
void subdivide ( ParametricCurve *&  a,
ParametricCurve *&  b,
double  t 
) const

Definition at line 148 of file curve_rational.hpp.

References SELF.

                                                                         {
  SELF
    * ar = new SELF(*this),
    * br = new SELF(*this);
  ar->set_range(tmin(),t);
  br->set_range(t,tmax());

  a = dynamic_cast<ParametricCurve*>(ar);
  b = dynamic_cast<ParametricCurve*>(br);

}
double tmax ( void  ) const [inline, virtual]

Implements parametric_curve< C, V >.

Definition at line 75 of file curve_rational.hpp.

{ return this->m_tmax; }
double tmin ( void  ) const [inline, virtual]

Implements parametric_curve< C, V >.

Definition at line 74 of file curve_rational.hpp.

{ return this->m_tmin; }

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