Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Halfedge Class Reference

This class encapsulate a halfedge over a window manifold. More...

#include <Manifold_2.h>

Collaboration diagram for Halfedge:

Public Member Functions

 Halfedge ()
 
 Halfedge (const Pane_manifold_2 *pm, Edge_ID e, Access_Mode mode)
 Construct a Halfedge object from a pane manifold and its edge ID. More...
 
Halfedge opposite () const
 Get the ID of the opposite edge of a given edge. More...
 
Halfedge prev () const
 Get the previous halfedge of its owner element. More...
 
Halfedge next () const
 Get the next halfedge of its owner element. More...
 
Node origin () const
 Obtain the (primary copy of the) origin of the edge. More...
 
Node destination () const
 Obtain the (primary copy of the) destination of the edge. More...
 
bool is_border () const
 Is the edge a border edge? More...
 
bool is_physical_border () const
 Is the edge on the physical boundary? More...
 
Vector_3< Realtangent () const
 Get the tangent of the given halfedge. More...
 
Vector_3< Realnormal () const
 Get the normal of the incident facet. More...
 
Vector_3< Realdeformed_normal (const COM::Attribute *disp) const
 Get the normal of the deformed shape (coordinates plus given displacements) of the incident facet of the halfedge. More...
 
void edge_center (Point_3< Real > &mid) const
 Get the edge center of the given halfedge. More...
 
void face_center (Point_3< Real > &cnt) const
 Get the face center of the incident face of a given halfedge. More...
 
template<class Value >
void edge_average (const COM::Attribute *attr, Value &val) const
 Get the avarage value of the nodes of a given halfedge. More...
 
template<class Value >
void face_average (const COM::Attribute *attr, Value &val) const
 Get the average value of the nodes of the incident face of a given halfedge. More...
 
double dihedral_angle () const
 Return the dihedral angle at the edge. More...
 
const Pane_manifold_2pane_manifold () const
 Obtain the pane manifold that owns the edge. More...
 
const COM::Pane * pane () const
 Obtain the owner Pane_manifold_2 of the node. More...
 
Edge_ID id () const
 Obtain the ID of the edge. More...
 
const void * addr (const COM::Attribute *attr) const
 Obtain the address of an attribute associated with its bounded element. More...
 
const COM::Attribute * attr (const COM::Attribute *a) const
 Obtain the attribute on the parent pane of the node. More...
 
bool operator== (const Halfedge &h) const
 Are two halfedges the same? More...
 
bool operator!= (const Halfedge &h) const
 Are two halfedges different? More...
 
bool operator< (const Halfedge &h) const
 Does the current halfedge has a smaller ID then the given one? More...
 

Protected Attributes

const Pane_manifold_2_pm
 
Edge_ID _eID
 
Access_Mode _mode
 

Detailed Description

This class encapsulate a halfedge over a window manifold.

Definition at line 446 of file Manifold_2.h.

Constructor & Destructor Documentation

Halfedge ( )
inline

Definition at line 448 of file Manifold_2.h.

448 : _pm(NULL) {}
const Pane_manifold_2 * _pm
Definition: Manifold_2.h:576
Halfedge ( const Pane_manifold_2 pm,
Edge_ID  e,
Access_Mode  mode 
)
inline

Construct a Halfedge object from a pane manifold and its edge ID.

Definition at line 450 of file Manifold_2.h.

451  : _pm( pm), _eID( e), _mode(mode) {}
Edge_ID _eID
Definition: Manifold_2.h:577
Access_Mode _mode
Definition: Manifold_2.h:578
const Pane_manifold_2 * _pm
Definition: Manifold_2.h:576

Member Function Documentation

const void * addr ( const COM::Attribute *  attr) const

Obtain the address of an attribute associated with its bounded element.

Note: This function can be slow O(1) if the attribute is not on the current pane, and is even slower (O(log(#panes)) if not owned by the owner window of the pane.

Definition at line 1215 of file Manifold_2.C.

References _eID, _pm, attr(), COM_assertion, COM_assertion_msg, COM_get_sizeof(), is_border(), and Simple_manifold_2::pane().

1215  {
1216  COM_assertion( !is_border());
1217  COM_assertion_msg( a, "Unexpected NULL pointer");
1218  COM_assertion_msg( a->is_elemental(), "Expect a element-centered attribute");
1219 
1220  const COM::Attribute *attr;
1221 
1222  const COM::Pane *pn = _pm->pane();
1223  int pid = pn->id();
1224  if ( a->pane()->id() == pid)
1225  attr = a;
1226  else {
1227  if ( a->window() != pn->window()) {
1228  pn = &a->window()->pane( pid);
1229  COM_assertion_msg( pn, "Pane does not exist");
1230  }
1231  attr=pn->attribute( a->id());
1232  COM_assertion_msg( attr, "Attribute does not exist");
1233  }
1234 
1235  return ((const char*)attr->pointer()) +
1236  COM_get_sizeof( attr->data_type(), attr->stride()*(_eID.eid()-1));
1237 }
#define COM_assertion(EX)
Error checking utility similar to the assert macro of the C language.
#define COM_assertion_msg(EX, msg)
const COM::Pane * pane() const
Obtain a const pointer to the pane.
Edge_ID _eID
Definition: Manifold_2.h:577
const COM::Attribute * attr(const COM::Attribute *a) const
Obtain the attribute on the parent pane of the node.
Definition: Manifold_2.h:556
int COM_get_sizeof(const COM_Type type, int c)
Definition: roccom_c++.h:560
bool is_border() const
Is the edge a border edge?
Definition: Manifold_2.h:476
const Pane_manifold_2 * _pm
Definition: Manifold_2.h:576

Here is the call graph for this function:

const COM::Attribute* attr ( const COM::Attribute *  a) const
inline

Obtain the attribute on the parent pane of the node.

Definition at line 556 of file Manifold_2.h.

References _pm, COM_assertion_msg, and Simple_manifold_2::pane().

Referenced by addr().

556  {
557  COM_assertion_msg( a, "Unexpected NULL pointer");
558  return a->window()->pane( _pm->pane()->id()).attribute(a->id());
559  }
#define COM_assertion_msg(EX, msg)
const COM::Pane * pane() const
Obtain a const pointer to the pane.
const Pane_manifold_2 * _pm
Definition: Manifold_2.h:576

Here is the call graph for this function:

Here is the caller graph for this function:

Vector_3< Real > deformed_normal ( const COM::Attribute *  disp) const

Get the normal of the deformed shape (coordinates plus given displacements) of the incident facet of the halfedge.

Definition at line 1290 of file Manifold_2.C.

References get_deformed_normal().

1290  {
1291  return get_deformed_normal( *this, Vector_2<Real>( 0.5, 0.5), disp);
1292 }
Vector_3< Real > get_deformed_normal(const Halfedge &h, const Vector_2< Real > &nc, const COM::Attribute *disp)
Get the normal of the deformed shape (coordinates plus given displacements) of the incident facet of ...
Definition: Manifold_2.C:1263

Here is the call graph for this function:

Node destination ( ) const
inline

Obtain the (primary copy of the) destination of the edge.

Definition at line 472 of file Manifold_2.h.

References _eID, _mode, _pm, Simple_manifold_2::get_destination(), and Pane_manifold_2::get_primary().

Referenced by edge_average(), and tangent().

473  { return _pm->get_primary( _pm->get_destination( _eID), _mode); }
int get_destination(Edge_ID eID, Element_node_enumerator *ene_in=NULL) const
Get the ID of the destination of a given edge.
Edge_ID _eID
Definition: Manifold_2.h:577
Access_Mode _mode
Definition: Manifold_2.h:578
Node get_primary(int vID, Access_Mode mode) const
Obtains a Node object corresponding to the primary copy of the given node.
Definition: Manifold_2.h:629
const Pane_manifold_2 * _pm
Definition: Manifold_2.h:576

Here is the call graph for this function:

Here is the caller graph for this function:

double dihedral_angle ( ) const

Return the dihedral angle at the edge.

If the edge is a border edge, then return pi.

If the edge is a border edge, then return pi. Note that this must be called after update_bd_normals has been called.

Definition at line 1297 of file Manifold_2.C.

References cimg_library::acos(), is_physical_border(), normal(), opposite(), pi, and sqrt().

1297  {
1298  const double pi=3.14159265358979;
1299  if ( is_physical_border()) return pi;
1300 
1301  Halfedge hopp = opposite();
1302  if ( hopp.is_physical_border()) return pi;
1303 
1304  Vector_3<Real> normals[2] = { normal(), hopp.normal() };
1305 
1306  double cos_a = normals[0]*normals[1]
1307  / std::sqrt( (normals[0]*normals[0])*(normals[1]*normals[1]));
1308 
1309  // Resolve roundoff error
1310  if ( cos_a>1) cos_a=1;
1311  if ( cos_a<-1) cos_a=-1;
1312 
1313  return std::acos( cos_a);
1314 }
Halfedge opposite() const
Get the ID of the opposite edge of a given edge.
Definition: Manifold_2.h:454
bool is_physical_border() const
Is the edge on the physical boundary?
Definition: Manifold_2.h:480
This class encapsulate a halfedge over a window manifold.
Definition: Manifold_2.h:446
double sqrt(double d)
Definition: double.h:73
Vector_3< Real > normal() const
Get the normal of the incident facet.
Definition: Manifold_2.C:1259
const double pi
CImg< _cimg_Tfloat > acos(const CImg< T > &instance)
Definition: CImg.h:6051

Here is the call graph for this function:

void edge_average ( const COM::Attribute *  attr,
Value &  val 
) const
inline

Get the avarage value of the nodes of a given halfedge.

Value must have operators + and * defined.

Definition at line 508 of file Manifold_2.h.

References Node::addr(), destination(), and origin().

Referenced by edge_center(), and face_average().

508  {
509  val = 0.5*(*reinterpret_cast<const Value *>(destination().addr(attr))+
510  *reinterpret_cast<const Value *>(origin().addr(attr)));
511  }
Node destination() const
Obtain the (primary copy of the) destination of the edge.
Definition: Manifold_2.h:472
const COM::Attribute * attr(const COM::Attribute *a) const
Obtain the attribute on the parent pane of the node.
Definition: Manifold_2.h:556
const void * addr(const COM::Attribute *attr) const
Obtain the address of an attribute associated with the node.
Definition: Manifold_2.C:1191
Node origin() const
Obtain the (primary copy of the) origin of the edge.
Definition: Manifold_2.h:468

Here is the call graph for this function:

Here is the caller graph for this function:

void edge_center ( Point_3< Real > &  mid) const
inline

Get the edge center of the given halfedge.

Definition at line 495 of file Manifold_2.h.

References _pm, COM_NC, edge_average(), and Simple_manifold_2::pane().

496  { edge_average( _pm->pane()->attribute( COM::COM_NC),
497  reinterpret_cast<Vector_3<Real> &>(mid)); }
const COM::Pane * pane() const
Obtain a const pointer to the pane.
void edge_average(const COM::Attribute *attr, Value &val) const
Get the avarage value of the nodes of a given halfedge.
Definition: Manifold_2.h:508
const Pane_manifold_2 * _pm
Definition: Manifold_2.h:576

Here is the call graph for this function:

void face_average ( const COM::Attribute *  attr,
Value &  val 
) const
inline

Get the average value of the nodes of the incident face of a given halfedge.

If this is a border halfedge, then return its edge averagd. Value must have operators + and * defined.

Definition at line 517 of file Manifold_2.h.

References Node::addr(), edge_average(), is_border(), next(), and origin().

Referenced by face_center().

517  {
518  // If this is a border halfedge, then return its edge center.
519  if ( is_border()) { edge_average( attr, val); return; }
520 
521  // Otherwise, compute the center
522  val = Value(0);
523 
524  int count=0;
525  Halfedge h=*this, h0=h;
526 
527  do {
528  val += *reinterpret_cast<const Value*>(h.origin().addr( attr));
529  ++count;
530  } while ( (h=h.next()) != h0);
531 
532  val/=count;
533  }
This class encapsulate a halfedge over a window manifold.
Definition: Manifold_2.h:446
Halfedge next() const
Get the next halfedge of its owner element.
Definition: Manifold_2.h:465
void edge_average(const COM::Attribute *attr, Value &val) const
Get the avarage value of the nodes of a given halfedge.
Definition: Manifold_2.h:508
const COM::Attribute * attr(const COM::Attribute *a) const
Obtain the attribute on the parent pane of the node.
Definition: Manifold_2.h:556
const void * addr(const COM::Attribute *attr) const
Obtain the address of an attribute associated with the node.
Definition: Manifold_2.C:1191
bool is_border() const
Is the edge a border edge?
Definition: Manifold_2.h:476
Node origin() const
Obtain the (primary copy of the) origin of the edge.
Definition: Manifold_2.h:468

Here is the call graph for this function:

Here is the caller graph for this function:

void face_center ( Point_3< Real > &  cnt) const
inline

Get the face center of the incident face of a given halfedge.

If this is a border halfedge, then return its midpoint.

Definition at line 501 of file Manifold_2.h.

References _pm, COM_NC, face_average(), and Simple_manifold_2::pane().

502  { face_average( _pm->pane()->attribute( COM::COM_NC),
503  reinterpret_cast<Vector_3<Real> &>(cnt)); }
const COM::Pane * pane() const
Obtain a const pointer to the pane.
void face_average(const COM::Attribute *attr, Value &val) const
Get the average value of the nodes of the incident face of a given halfedge.
Definition: Manifold_2.h:517
const Pane_manifold_2 * _pm
Definition: Manifold_2.h:576

Here is the call graph for this function:

Edge_ID id ( ) const
inline

Obtain the ID of the edge.

Definition at line 547 of file Manifold_2.h.

References _eID.

Referenced by get_normal().

547 { return _eID; }
Edge_ID _eID
Definition: Manifold_2.h:577

Here is the caller graph for this function:

bool is_physical_border ( ) const
inline

Is the edge on the physical boundary?

Definition at line 480 of file Manifold_2.h.

References _eID, _pm, and Pane_manifold_2::is_physical_border_edge().

Referenced by dihedral_angle().

481  { return _pm->is_physical_border_edge( _eID); }
Edge_ID _eID
Definition: Manifold_2.h:577
bool is_physical_border_edge(Edge_ID eID) const
Is the given edge a physical border edge?
Definition: Manifold_2.h:110
const Pane_manifold_2 * _pm
Definition: Manifold_2.h:576

Here is the call graph for this function:

Here is the caller graph for this function:

Halfedge next ( ) const
inline

Get the next halfedge of its owner element.

If the current edge is a border edges, it returns the next border edge along the boundary.

Definition at line 465 of file Manifold_2.h.

References _eID, _mode, _pm, and Pane_manifold_2::get_next_edge().

Referenced by Polyhedron_incremental_builder_3< HDS >::add_vertex_to_facet(), Rocsurf::compute_edge_lengths(), Halfedge_data_structure_decorator< _HDS >::erase_connected_component(), Halfedge_data_structure_decorator< _HDS >::erase_connected_component_face_cycle(), Halfedge_data_structure_decorator< _HDS >::erase_facet(), face_average(), Halfedge_data_structure_decorator< _HDS >::find_prev(), Halfedge_data_structure_decorator< _HDS >::find_prev_around_vertex(), Halfedge_data_structure_decorator< _HDS >::flip_edge(), get_deformed_normal(), Pane_manifold_2::get_prev_edge(), Halfedge_data_structure_decorator< _HDS >::insert_halfedge(), Halfedge_data_structure_decorator< _HDS >::insert_tip(), Halfedge_data_structure_decorator< _HDS >::inside_out(), Halfedge_data_structure_decorator< _HDS >::is_valid(), Halfedge_data_structure_decorator< _HDS >::join_facet(), Halfedge_data_structure_decorator< _HDS >::join_loop(), Halfedge_data_structure_decorator< _HDS >::join_vertex(), Polyhedron_incremental_builder_3< HDS >::lookup_halfedge(), Polyhedron_incremental_builder_3< HDS >::lookup_hole(), Halfedge_data_structure_decorator< _HDS >::remove_halfedge(), Halfedge_data_structure_decorator< _HDS >::remove_tip(), Halfedge_data_structure_decorator< _HDS >::reorient_facet(), Halfedge_data_structure_decorator< _HDS >::set_facet_in_facet_loop(), Halfedge_data_structure_decorator< _HDS >::set_vertex_in_vertex_loop(), and Halfedge_data_structure_decorator< _HDS >::split_loop().

465 { return _pm->get_next_edge( _eID, _mode); }
Halfedge get_next_edge(Edge_ID, Access_Mode mode) const
Obtain the next edge in a given access mode.
Definition: Manifold_2.C:98
Edge_ID _eID
Definition: Manifold_2.h:577
Access_Mode _mode
Definition: Manifold_2.h:578
const Pane_manifold_2 * _pm
Definition: Manifold_2.h:576

Here is the call graph for this function:

Here is the caller graph for this function:

Vector_3< Real > normal ( ) const

Get the normal of the incident facet.

Definition at line 1259 of file Manifold_2.C.

References get_normal().

Referenced by c3d6nm(), and dihedral_angle().

1259  {
1260  return get_normal( *this, Vector_2<Real>( 0.5, 0.5));
1261 }
Vector_3< Real > get_normal(const Halfedge &h, const Vector_2< Real > &nc)
Get the face normal of a point in the element incident on h.
Definition: Manifold_2.C:1240

Here is the call graph for this function:

Here is the caller graph for this function:

bool operator!= ( const Halfedge h) const
inline

Are two halfedges different?

Definition at line 566 of file Manifold_2.h.

References _eID, and _pm.

567  { return _pm!=h._pm || _eID!=h._eID; }
Edge_ID _eID
Definition: Manifold_2.h:577
const Pane_manifold_2 * _pm
Definition: Manifold_2.h:576
bool operator< ( const Halfedge h) const
inline

Does the current halfedge has a smaller ID then the given one?

Definition at line 570 of file Manifold_2.h.

References _eID, _pm, and Simple_manifold_2::pane().

570  {
571  int pid1=_pm->pane()->id(), pid2=h._pm->pane()->id();
572  return pid1<pid2 || pid1==pid2 && _eID<h._eID;
573  }
const COM::Pane * pane() const
Obtain a const pointer to the pane.
Edge_ID _eID
Definition: Manifold_2.h:577
const Pane_manifold_2 * _pm
Definition: Manifold_2.h:576

Here is the call graph for this function:

bool operator== ( const Halfedge h) const
inline

Are two halfedges the same?

Definition at line 562 of file Manifold_2.h.

References _eID, and _pm.

563  { return _pm==h._pm && _eID==h._eID; }
Edge_ID _eID
Definition: Manifold_2.h:577
const Pane_manifold_2 * _pm
Definition: Manifold_2.h:576
Halfedge opposite ( ) const
inline

Get the ID of the opposite edge of a given edge.

Definition at line 454 of file Manifold_2.h.

References _eID, _mode, _pm, and Pane_manifold_2::get_opposite_edge().

Referenced by Polyhedron_incremental_builder_3< HDS >::add_vertex_to_facet(), Halfedge_data_structure_decorator< _HDS >::close_tip(), Rocsurf::compute_edge_lengths(), Halfedge_data_structure_decorator< _HDS >::create_loop(), Halfedge_data_structure_decorator< _HDS >::create_segment(), dihedral_angle(), Halfedge_data_structure_decorator< _HDS >::erase_connected_component(), Halfedge_data_structure_decorator< _HDS >::erase_connected_component_face_cycle(), Halfedge_data_structure_decorator< _HDS >::erase_facet(), Halfedge_data_structure_decorator< _HDS >::find_prev_around_vertex(), Halfedge_data_structure_decorator< _HDS >::flip_edge(), Pane_manifold_2::get_next_edge(), Pane_manifold_2::get_prev_edge(), Halfedge_data_structure_decorator< _HDS >::insert_tip(), Halfedge_data_structure_decorator< _HDS >::is_valid(), Halfedge_data_structure_decorator< _HDS >::join_facet(), Halfedge_data_structure_decorator< _HDS >::join_loop(), Halfedge_data_structure_decorator< _HDS >::join_vertex(), Polyhedron_incremental_builder_3< HDS >::lookup_halfedge(), Polyhedron_incremental_builder_3< HDS >::lookup_hole(), Halfedge_data_structure_decorator< _HDS >::remove_tip(), Halfedge_data_structure_decorator< _HDS >::set_vertex_in_vertex_loop(), Halfedge_data_structure_decorator< _HDS >::split_facet(), Halfedge_data_structure_decorator< _HDS >::split_loop(), and Halfedge_data_structure_decorator< _HDS >::split_vertex().

455  { return _pm->get_opposite_edge( _eID, _mode); }
Edge_ID _eID
Definition: Manifold_2.h:577
Halfedge get_opposite_edge(Edge_ID, Access_Mode mode) const
Obtain the opposite edge in a given access mode.
Definition: Manifold_2.h:607
Access_Mode _mode
Definition: Manifold_2.h:578
const Pane_manifold_2 * _pm
Definition: Manifold_2.h:576

Here is the call graph for this function:

Here is the caller graph for this function:

Node origin ( ) const
inline

Obtain the (primary copy of the) origin of the edge.

Definition at line 468 of file Manifold_2.h.

References _eID, _mode, _pm, Simple_manifold_2::get_origin(), and Pane_manifold_2::get_primary().

Referenced by edge_average(), face_average(), get_deformed_normal(), and tangent().

469  { return _pm->get_primary( _pm->get_origin( _eID), _mode); }
Edge_ID _eID
Definition: Manifold_2.h:577
Access_Mode _mode
Definition: Manifold_2.h:578
Node get_primary(int vID, Access_Mode mode) const
Obtains a Node object corresponding to the primary copy of the given node.
Definition: Manifold_2.h:629
const Pane_manifold_2 * _pm
Definition: Manifold_2.h:576
int get_origin(Edge_ID eID, Element_node_enumerator *ene_in=NULL) const
Get the ID of the origin of a given edge.

Here is the call graph for this function:

Here is the caller graph for this function:

const COM::Pane* pane ( ) const
inline

Obtain the owner Pane_manifold_2 of the node.

Definition at line 543 of file Manifold_2.h.

References _pm, and Simple_manifold_2::pane().

Referenced by get_normal(), and Pane_manifold_2::size_of_edges().

544  { if ( _pm) return _pm->pane(); else return NULL; }
const COM::Pane * pane() const
Obtain a const pointer to the pane.
const Pane_manifold_2 * _pm
Definition: Manifold_2.h:576

Here is the call graph for this function:

Here is the caller graph for this function:

const Pane_manifold_2* pane_manifold ( ) const
inline

Obtain the pane manifold that owns the edge.

Definition at line 540 of file Manifold_2.h.

References _pm.

Referenced by get_normal(), Pane_manifold_2::get_opposite_edge(), Node::halfedge(), Pane_manifold_2::is_border_edge(), and Pane_manifold_2::size_of_edges().

540 { return _pm; }
const Pane_manifold_2 * _pm
Definition: Manifold_2.h:576

Here is the caller graph for this function:

Halfedge prev ( ) const
inline

Get the previous halfedge of its owner element.

If the current edge is a border edges, it returns the previous border edge along the boundary.

Definition at line 460 of file Manifold_2.h.

References _eID, _mode, _pm, and Pane_manifold_2::get_prev_edge().

Referenced by Halfedge_data_structure_decorator< _HDS >::find_prev(), Halfedge_data_structure_decorator< _HDS >::find_prev_around_vertex(), Pane_manifold_2::get_next_edge(), and Halfedge_data_structure_decorator< _HDS >::get_prev().

460 { return _pm->get_prev_edge( _eID, _mode); }
Halfedge get_prev_edge(Edge_ID, Access_Mode mode) const
Obtain the previous edge in a given access mode.
Definition: Manifold_2.C:71
Edge_ID _eID
Definition: Manifold_2.h:577
Access_Mode _mode
Definition: Manifold_2.h:578
const Pane_manifold_2 * _pm
Definition: Manifold_2.h:576

Here is the call graph for this function:

Here is the caller graph for this function:

Vector_3<Real> tangent ( ) const
inline

Get the tangent of the given halfedge.

Definition at line 484 of file Manifold_2.h.

References destination(), origin(), and Node::point().

Referenced by Rocsurf::compute_edge_lengths(), and get_tangent().

485  { return destination().point()-origin().point(); }
Node destination() const
Obtain the (primary copy of the) destination of the edge.
Definition: Manifold_2.h:472
const Point_3< Real > & point() const
Obtain the coordinates of a node.
Definition: Manifold_2.h:394
Node origin() const
Obtain the (primary copy of the) origin of the edge.
Definition: Manifold_2.h:468

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

Access_Mode _mode
protected

Definition at line 578 of file Manifold_2.h.

Referenced by destination(), is_border(), next(), opposite(), origin(), and prev().


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