Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

A48::Hedge Class Reference

The Hedge class represents Half-edge topological entity of mesh 4-8. More...

#include <edge.h>

Collaboration diagram for A48::Hedge:

Collaboration graph
[legend]
List of all members.

Public Member Functions

Faceface ()
 Returns the half-egde's face.

Vertexorg ()
 Returns the half-edge's origin vertex.

Vertexdst ()
 Returns the end vertex of the half-edge.

Edgeedge ()
 Returns the half-edges's parent edge.

Hedgeprev ()
 Returns the previous half-edge.

Hedgenext ()
 Returns the next half-edge.

Hedgemate ()
 Returns the opposite half-edge.

int level ()
 Returns half-edge resolution level.

bool is_bdry ()
 Returns true if a half-edge belongs to mesh's boundary, else return false.

bool is_subdiv_itself ()
 Returns true if the half-edge is a split half-edge, else return false.


Private Member Functions

void set_face (Face *f)
 Links half-edge to face.

void set_org (Vertex *v)
 Links half-edge to vertex.

void set_next (Hedge *h)
 Updates next half-edge.

void set_edge (Edge *e)
 Links half-edge to edge.

Hedgereuse (Vertex *v0, Vertex *v1)
 Redefines the vertices of the half-edge.


Private Attributes

Vertexo_
 Origin vertex pointer.

Hedgen_
 Next half-edge pointer.

Facef_
 Face pointer.

Edgee_
 Edge pointer.


Detailed Description

The Hedge class represents Half-edge topological entity of mesh 4-8.

Definition at line 17 of file edge.h.


Member Function Documentation

Vertex* A48::Hedge::dst  )  [inline]
 

Returns the end vertex of the half-edge.

Returns:
vertex pointer.

Definition at line 39 of file edge.h.

References mate(), and org().

Referenced by A48::Mesh::bisect(), A48::Mesh::flip(), level(), A48::Mesh::link_mesh(), A48::Mesh::update_ref_front(), and A48::Mesh::update_simpl_front().

00039 { return mate()->org(); };

Edge* A48::Hedge::edge  )  [inline]
 

Returns the half-edges's parent edge.

Returns:
edge pointer.

Definition at line 43 of file edge.h.

References e_.

Referenced by A48::Mesh::bisect(), A48::Vertex::is_bdry(), is_bdry(), A48::Mesh::refine(), A48::Mesh::simplify(), A48::Mesh::update_ref_front(), and A48::Mesh::update_simpl_front().

00043 { return e_; };

Face* A48::Hedge::face  )  [inline]
 

Returns the half-egde's face.

Returns:
face pointer.

Definition at line 31 of file edge.h.

References f_.

Referenced by A48::Mesh::flip(), A48::Edge::is_bdry(), is_subdiv_itself(), A48::Mesh::is_triquad(), A48::Vertex::is_weld(), A48::Mesh::make_triquad(), A48::Mesh::refine(), A48::Mesh::split(), A48::Vertex::star_next(), and A48::Mesh::update_ref_front().

00031 { return f_; };

bool Hedge::is_bdry  ) 
 

Returns true if a half-edge belongs to mesh's boundary, else return false.

Verifies if the edge belongs the mesh boundary.

Returns:
true if the edge belongs the boundary else returns false.

Definition at line 70 of file edge.cpp.

References edge(), and A48::Edge::is_bdry().

Referenced by A48::Mesh::link_mesh().

00071 { 00072 return edge()->is_bdry(); 00073 }

bool A48::Hedge::is_subdiv_itself  )  [inline]
 

Returns true if the half-edge is a split half-edge, else return false.

Returns:
true if split half-edge, else return false.

Definition at line 65 of file edge.h.

References face(), and A48::Face::subd_edge().

Referenced by A48::Edge::is_subdiv(), and A48::Mesh::update_simpl_front().

00065 { 00066 return (face() != NULL && face()->subd_edge() == this); 00067 }

int Hedge::level  ) 
 

Returns half-edge resolution level.

Returns the half-edge level. The resolution level of the half-edge is defined by the vertex that belongs the highest resolution level.

Returns:
half-edge's resolution level.

Definition at line 80 of file edge.cpp.

References dst(), and org().

Referenced by A48::Mesh::bisect(), and A48::Edge::level().

00080 { 00081 return max(org()->level(), dst()->level()); 00082 }

Hedge * Hedge::mate  ) 
 

Returns the opposite half-edge.

Returns:
half-edge pointer.

Definition at line 47 of file edge.cpp.

References e_, and A48::Edge::hedge().

Referenced by A48::Mesh::bisect(), dst(), A48::Mesh::flip(), A48::Mesh::refine(), reuse(), A48::Mesh::split(), A48::Vertex::star_next(), A48::Mesh::update_simpl_front(), and A48::Mesh::weld().

00048 { 00049 return (this == e_->hedge(0))? e_->hedge(1): e_->hedge(0); 00050 };

Hedge* A48::Hedge::next  )  [inline]
 

Returns the next half-edge.

Returns:
half-edge pointer.

Definition at line 51 of file edge.h.

References n_.

Referenced by A48::Mesh::flip(), A48::Face::hedge(), prev(), A48::Mesh::split(), A48::Vertex::star_next(), A48::Mesh::update_ref_front(), A48::Mesh::update_simpl_front(), and A48::Mesh::weld().

00051 { return n_; };

Vertex* A48::Hedge::org  )  [inline]
 

Returns the half-edge's origin vertex.

Returns:
vertex pointer.

Definition at line 35 of file edge.h.

References o_.

Referenced by A48::Mesh::bisect(), A48::Edge::dst(), dst(), A48::Mesh::flip(), level(), A48::Edge::org(), A48::Mesh::simplify(), and A48::Face::vertex().

00035 { return o_; };

Hedge* A48::Hedge::prev  )  [inline]
 

Returns the previous half-edge.

Returns:
half-edge pointer.

Definition at line 47 of file edge.h.

References n_, and next().

Referenced by A48::Mesh::flip(), A48::Mesh::split(), A48::Mesh::update_ref_front(), A48::Mesh::update_simpl_front(), and A48::Mesh::weld().

00047 { return (n_)? n_->next() : NULL; };

Hedge * Hedge::reuse Vertex v0,
Vertex v1
[private]
 

Redefines the vertices of the half-edge.

Updates the vertices of the half-edge.

Parameters:
v0 Pointer to origin vertex.
v1 Pointer to end vertex.
Returns:
half-edge.

Definition at line 58 of file edge.cpp.

References mate(), set_face(), set_next(), and set_org().

Referenced by A48::Mesh::bisect(), A48::Mesh::flip(), and A48::Mesh::weld().

00059 { 00060 set_org(v0); mate()->set_org(v1); 00061 set_next(NULL); mate()->set_next(NULL); 00062 set_face(NULL); mate()->set_face(NULL); 00063 return this; 00064 }


The documentation for this class was generated from the following files:
Generated on Mon Oct 11 19:32:33 2004 for A48 by doxygen 1.3.7