proj home

Files   Classes   Functions   Hierarchy  

edgeT< T > Class Template Reference

2D indexed edge data structure. More...

#include <edgeT.h>

Collaboration diagram for edgeT< T >:

List of all members.

Public Member Functions

 edgeT (uint i, uintc k, T const data_)
 Construct an edge entry.
 edgeT (uint i, uintc k)
 Construct an edge entry.
boolc operator< (edgeT const &x) const
 Is this edge before x edge?
boolc operator== (edgeT const &x) const
 Are two edges equal?
 operator stringc () const
 Serialize this data structure.

Public Attributes

uint pi [2]
 Ordered integer points.
T data
 Whatever the edge link is holding.


Detailed Description

template<typename T>
class edgeT< T >

2D indexed edge data structure.

The two point indexes of the edge are ordered.

Example
  typedef edgeT<double> ed;
  ed ei[] = 
  { 
    ed(1,7,0.6),ed(4,3,2.7),ed(2,1,9.7),ed(6,2,-2.4)
  };
  set<ed> s;
  s.insert(ei,ei+4);
  ... Now have ordered edges.
  set<ed>::iterator i=s.find(ed(2,5));
  if (i!=s.end()) 
  ...

Definition at line 30 of file edgeT.h.


Constructor & Destructor Documentation

template<typename T >
edgeT< T >::edgeT ( uint  i,
uintc  k,
T const   data_ 
) [inline]

Construct an edge entry.

Definition at line 92 of file edgeT.h.

References edgeT< T >::pi.

00093   : data(data_)
00094 {
00095   if (i<k)
00096   {
00097     pi[0]=i;
00098     pi[1]=k;
00099   }
00100   else
00101   {
00102     pi[0]=k;
00103     pi[1]=i;
00104   }
00105 }

template<typename T >
edgeT< T >::edgeT ( uint  i,
uintc  k 
) [inline]

Construct an edge entry.

Definition at line 108 of file edgeT.h.

References edgeT< T >::pi.

00109 {
00110   if (i<k)
00111   {
00112     pi[0]=i;
00113     pi[1]=k;
00114   }
00115   else
00116   {
00117     pi[0]=k;
00118     pi[1]=i;
00119   }
00120 }


Member Function Documentation

template<typename T >
edgeT< T >::operator stringc (  )  const [inline]

Serialize this data structure.

Definition at line 62 of file edgeT.h.

References edgeT< T >::data, and edgeT< T >::pi.

00063 {
00064   stringstream targ;
00065   targ << pi[0] << " " << pi[1] << " " << data;
00066 
00067   return targ.str();
00068 }

template<typename T >
boolc edgeT< T >::operator< ( edgeT< T > const &  x  )  const [inline]

Is this edge before x edge?

Definition at line 79 of file edgeT.h.

References edgeT< T >::pi.

00080 {
00081   if (pi[0]<x.pi[0])
00082     return true;
00083 
00084   if (pi[0]==x.pi[0])
00085     return (pi[1]<x.pi[1]);
00086 
00087   return false;
00088 }

template<typename T >
boolc edgeT< T >::operator== ( edgeT< T > const &  x  )  const [inline]

Are two edges equal?

Definition at line 71 of file edgeT.h.

References edgeT< T >::pi.

00072 {
00073   if (pi[0]!=x.pi[0])
00074     return false;
00075   return (pi[1]==x.pi[1]);
00076 }


Member Data Documentation

template<typename T>
T edgeT< T >::data

Whatever the edge link is holding.

Definition at line 37 of file edgeT.h.

Referenced by edgeT< T >::operator stringc().

template<typename T>
uint edgeT< T >::pi[2]

Ordered integer points.

Definition at line 35 of file edgeT.h.

Referenced by edgeT< T >::edgeT(), edgeT< T >::operator stringc(), edgeT< T >::operator<(), and edgeT< T >::operator==().


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

Generated on Fri Mar 4 00:49:55 2011 for Chelton Evans Source by  doxygen 1.5.8