ePoint Class Reference

#include <eTess2.h>

Inheritance diagram for ePoint:

Inheritance graph
[legend]
Collaboration diagram for ePoint:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 ePoint ()
 ePoint (const eCoord &c)
bool Check ()
bool operator== (const ePoint &a) const
bool operator!= (const ePoint &a) const
eCoord operator- (const ePoint &a) const
eCoord operator+ (const ePoint &a) const
REAL operator * (const ePoint &a) const
const eCoord & operator= (const eCoord &a)
bool operator== (const eCoord &a) const
bool operator!= (const eCoord &a) const
eCoord operator- (const eCoord &a) const
eCoord operator- () const
eCoord operator+ (const eCoord &a) const
REAL operator * (const eCoord &a) const
const eCoord & operator= (const ePoint &a)
void Replace (ePoint *P)
void Unlink ()
void Print (std::ostream &s) const

Protected Member Functions

 ~ePoint ()

Friends

class tReferencable< ePoint >


Detailed Description

Definition at line 245 of file eTess2.h.


Constructor & Destructor Documentation

ePoint::ePoint (  )  [inline]

Definition at line 249 of file eTess2.h.

00249 {}

ePoint::ePoint ( const eCoord &  c  )  [inline]

Definition at line 250 of file eTess2.h.

00250 :eCoord(c){}

ePoint::~ePoint (  )  [inline, protected]

Definition at line 279 of file eTess2.h.

References Unlink().

00279 {Unlink();}

Here is the call graph for this function:


Member Function Documentation

bool ePoint::Check (  )  [inline]

Definition at line 253 of file eTess2.h.

References eDual::Check().

00253 {return eDual::Check(0);}

Here is the call graph for this function:

bool ePoint::operator== ( const ePoint a  )  const [inline]

Definition at line 256 of file eTess2.h.

References operator==().

00256 {return eCoord::operator==(a);}

Here is the call graph for this function:

bool ePoint::operator!= ( const ePoint a  )  const [inline]

Definition at line 257 of file eTess2.h.

References operator==().

00257 {return !eCoord::operator==(a);}

Here is the call graph for this function:

eCoord ePoint::operator- ( const ePoint a  )  const [inline]

Definition at line 258 of file eTess2.h.

References eCoord, and x.

00258 {return eCoord(x-a.x,y-a.y);}

eCoord ePoint::operator+ ( const ePoint a  )  const [inline]

Definition at line 259 of file eTess2.h.

References eCoord, and x.

00259 {return eCoord(x+a.x,y+a.y);}

REAL ePoint::operator * ( const ePoint a  )  const [inline]

Definition at line 260 of file eTess2.h.

References x.

00260 {return -x*a.y+y*a.x;}

const eCoord& ePoint::operator= ( const eCoord &  a  )  [inline]

Definition at line 261 of file eTess2.h.

References x.

00261 {x=a.x;y=a.y;return *this;}

bool ePoint::operator== ( const eCoord &  a  )  const [inline]

Definition at line 263 of file eTess2.h.

References operator==().

00263 {return eCoord::operator==(a);}

Here is the call graph for this function:

bool ePoint::operator!= ( const eCoord &  a  )  const [inline]

Definition at line 264 of file eTess2.h.

References operator==().

00264 {return !eCoord::operator==(a);}

Here is the call graph for this function:

eCoord ePoint::operator- ( const eCoord &  a  )  const [inline]

Definition at line 265 of file eTess2.h.

References eCoord, and x.

00265 {return eCoord(x-a.x,y-a.y);}

eCoord ePoint::operator- (  )  const [inline]

Definition at line 266 of file eTess2.h.

References eCoord, and x.

00266 {return eCoord(-x,-y);}

eCoord ePoint::operator+ ( const eCoord &  a  )  const [inline]

Definition at line 267 of file eTess2.h.

References eCoord, and x.

00267 {return eCoord(x+a.x,y+a.y);}

REAL ePoint::operator * ( const eCoord &  a  )  const [inline]

Definition at line 268 of file eTess2.h.

References x.

00268 {return -x*a.y+y*a.x;}

const eCoord& ePoint::operator= ( const ePoint a  )  [inline]

Definition at line 269 of file eTess2.h.

References x.

00269 {x=a.x;y=a.y;return *this;}

void ePoint::Replace ( ePoint P  ) 

Definition at line 278 of file eGrid.cpp.

References eCoord, eDual::edge, NULL, eHalfEdge::other, eHalfEdge::Point(), eHalfEdge::SetPoint(), and tASSERT.

Referenced by eGrid::DrawLine(), and eHalfEdge::Simplify().

00279 {
00280     tControlledPTR< ePoint > keep( this );
00281 
00282     //  if (!(*this==*P))
00283     //    tERR_WARN("Unequal points are going to get exchaned!");
00284 
00285     eHalfEdge *run = edge;
00286     const eHalfEdge *stop = run;
00287 
00288     *static_cast<eCoord *>(P) = *this;
00289 
00290     do
00291     {
00292         tASSERT(run && run->Point() == this);
00293         run->SetPoint(P);
00294 
00295         run = run->other->next;
00296 
00297     }
00298     while (stop != run);
00299 
00300     edge = NULL;
00301 }

Here is the call graph for this function:

Here is the caller graph for this function:

void ePoint::Unlink (  ) 

Definition at line 303 of file eGrid.cpp.

References eDual::edge, eHalfEdge::next, NULL, eHalfEdge::other, eHalfEdge::Point(), and tASSERT.

Referenced by eGrid::KillPoint(), and ~ePoint().

00304 {
00305     if (!edge)
00306         return;
00307 
00308     eHalfEdge *run = edge;
00309     const eHalfEdge *stop = run;
00310 
00311     do
00312     {
00313         tASSERT(run && run->Point() == this &&
00314                 (!run->next || !run->next->next || run == run->next->next->next)) ;
00315         run = run->next;
00316         if (run)
00317             run= run->next;
00318         if (run)
00319             run = run->other;
00320     }
00321     while (run && stop != run);
00322 
00323     edge = NULL;
00324 }

Here is the call graph for this function:

Here is the caller graph for this function:

void ePoint::Print ( std::ostream &  s  )  const

Definition at line 272 of file eGrid.cpp.

References x.

Referenced by operator<<().

00273 {
00274     s << "(" << x << ", " << y << ")";
00275 }

Here is the caller graph for this function:


Friends And Related Function Documentation

friend class tReferencable< ePoint > [friend]

Definition at line 246 of file eTess2.h.


The documentation for this class was generated from the following files:
Generated on Sat Mar 15 23:29:00 2008 for Armagetron Advanced by  doxygen 1.5.4