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

vtol_face_2d Class Reference

#include <vtol_face_2d.h>

Inheritance diagram for vtol_face_2d:

Inheritance graph
[legend]
List of all members.

Detailed Description

Definition at line 48 of file vtol_face_2d.h.

Public Types

enum  vsol_spatial_object_2d_type

Public Member Functions

 vtol_face_2d ()
 Default constructor.
 vtol_face_2d (vertex_list const &verts)
 Constructor.
 vtol_face_2d (one_chain_list const &onechs)
 Constructor.
 vtol_face_2d (vtol_one_chain_sptr const &edgeloop)
 Constructor.
 vtol_face_2d (vsol_region_2d &facesurf)
 Constructor.
 vtol_face_2d (vtol_face_2d_sptr const &other)
 Pseudo copy constructor. Deep copy.
virtual ~vtol_face_2d ()
 Destructor.
virtual vsol_spatial_object_2dclone () const
 Clone `this': creation of a new object and initialization.
virtual vcl_string is_a () const
 Return a platform independent string identifying the class.
virtual bool is_class (const vcl_string &cls) const
 Return true if the argument matches the string identifying the class or any parent class.
virtual vsol_region_2d_sptr surface () const
virtual void set_surface (vsol_region_2d_sptr const &newsurf)
 Set the underlying geometric surface.
virtual const vtol_face_2dcast_to_face_2d () const
 Return `this' if `this' is a 2D face, 0 otherwise.
virtual vtol_face_2dcast_to_face_2d ()
 Return `this' if `this' is a 2D face, 0 otherwise.
virtual vtol_faceshallow_copy_with_no_links () const
 Copy with no links. Only copy the surface if it exists.
virtual bool operator== (const vtol_face_2d &other) const
bool operator!= (const vtol_face_2d &other) const
bool operator== (const vtol_face &other) const
 deep equality check on faces. uses fuzzy equal on vertices.
bool operator== (const vsol_spatial_object_2d &obj) const
 spatial object equality.
virtual void print (vcl_ostream &strm=vcl_cout) const
 This method prints out a simple text representation for the vtol_face_2d which includes its address in memory.
virtual void describe (vcl_ostream &strm=vcl_cout, int blanking=0) const
 This method describes the data members of the vtol_face_2d including the Inferiors.
virtual void copy_geometry (const vtol_face &other)
 copy the geometry.
virtual bool compare_geometry (const vtol_face &other) const
 provide a mechanism to compare geometry.
virtual vtol_one_chain_sptr get_one_chain (int which=0)
 Returns the ith inferior vtol_one_chain of the vtol_face.
virtual vtol_one_chain_sptr get_boundary_cycle ()
 Returns the first inferior vtol_one_chain of the vtol_face (the boundary onechain).
virtual bool add_hole_cycle (vtol_one_chain_sptr new_hole)
 Adds a new hole to the face.
virtual one_chain_listget_hole_cycles ()
virtual const vtol_facecast_to_face () const
 Return `this' if `this' is a face, 0 otherwise.
virtual vtol_facecast_to_face ()
 Return `this' if `this' is a face, 0 otherwise.
virtual const vtol_intensity_facecast_to_intensity_face () const
 Return `this' if `this' is an intensity face, 0 otherwise.
virtual vtol_intensity_facecast_to_intensity_face ()
 Return `this' if `this' is an intensity face, 0 otherwise.
void link_inferior (vtol_one_chain_sptr inf)
void link_inferior (vtol_topology_object_sptr inferior)
 Link `this' with an inferior `inferior'.
void unlink_inferior (vtol_one_chain_sptr inf)
void unlink_inferior (vtol_topology_object_sptr inferior)
 Unlink `this' from the inferior `inferior'.
virtual bool valid_inferior_type (vtol_topology_object const *inferior) const
 Is `inferior' type valid for `this' ?.
bool valid_inferior_type (vtol_one_chain_sptr const &) const
bool valid_superior_type (vtol_two_chain_sptr const &) const
bool valid_superior_type (vtol_topology_object const *sup) const
 Is `superior' type valid for `this' ?.
virtual vertex_listoutside_boundary_vertices ()
 accessors for boundary elements.
virtual zero_chain_listoutside_boundary_zero_chains ()
 Returns a list of the zero_chains on the outside boundary of the face.
virtual edge_listoutside_boundary_edges ()
 Get the outside boundary edges.
virtual one_chain_listoutside_boundary_one_chains ()
 Returns a list of one_chains that make up the outside boundary of the face.
virtual void add_one_chain (vtol_one_chain_sptr const &)
 Links new_vtol_one_chain as an inferior of the vtol_face and returns True if successful.
virtual void reverse_normal ()
 Utility Functions and overloaded operators.
virtual int get_num_edges () const
 Returns the number of edges on the vtol_face.
bool IsHoleP () const
 This method determines if a vtol_face is a hole of another vtol_face.
bool operator!= (const vtol_face &other) const
bool operator!= (vsol_spatial_object_2d const &obj)
virtual void compute_bounding_box () const
 determine bounding box from bounding boxes of underlying edges.
virtual bool shares_edge_with (vtol_face_sptr const &f)
 Does `this' share an edge with `f' ?.
virtual vtol_topology_objectcast_to_topology_object ()
virtual const vtol_topology_objectcast_to_topology_object () const
virtual const vtol_vertexcast_to_vertex () const
 Return `this' if `this' is a vertex, 0 otherwise.
virtual vtol_vertexcast_to_vertex ()
 Return `this' if `this' is a vertex, 0 otherwise.
virtual const vtol_zero_chaincast_to_zero_chain () const
 Return `this' if `this' is a zero_chain, 0 otherwise.
virtual vtol_zero_chaincast_to_zero_chain ()
 Return `this' if `this' is a zero_chain, 0 otherwise.
virtual const vtol_edgecast_to_edge () const
 Return `this' if `this' is an edge, 0 otherwise.
virtual vtol_edgecast_to_edge ()
 Return `this' if `this' is an edge, 0 otherwise.
virtual const vtol_chaincast_to_chain () const
 Return `this' if `this' is a chain, 0 otherwise.
virtual vtol_chaincast_to_chain ()
 Return `this' if `this' is a chain, 0 otherwise.
virtual const vtol_one_chaincast_to_one_chain () const
 Return `this' if `this' is an one_chain, 0 otherwise.
virtual vtol_one_chaincast_to_one_chain ()
 Return `this' if `this' is an one_chain, 0 otherwise.
virtual const vtol_two_chaincast_to_two_chain () const
 Return `this' if `this' is a two_chain, 0 otherwise.
virtual vtol_two_chaincast_to_two_chain ()
 Return `this' if `this' is a two_chain, 0 otherwise.
virtual const vtol_blockcast_to_block () const
 Return `this' if `this' is a block, 0 otherwise.
virtual vtol_blockcast_to_block ()
 Return `this' if `this' is a block, 0 otherwise.
bool is_inferior (vtol_topology_object_sptr inferior) const
 Is `inferior' already an inferior of `this' ?.
bool is_superior (vtol_topology_object *const &superior) const
 Is `superior' already a superior of `this' ?.
int numinf () const
 Number of inferiors.
int numsup () const
 Number of superiors.
const vcl_list< vtol_topology_object * > * superiors_list () const
topology_listinferiors ()
 Return the inferiors list.
const topology_listinferiors () const
virtual vsol_spatial_object_2d_type spatial_type () const
 Return the spatial type.
void unlink_all_inferiors ()
 Unlink `this' from all its inferiors.
void unlink ()
 Unlink `this' of the network.
void vertices (vertex_list &list) const
 Get list of vertices.
void zero_chains (zero_chain_list &list) const
 Get list of zero chains.
void edges (edge_list &list) const
 Get list of edges.
void one_chains (one_chain_list &list) const
 Get list of one chains.
void faces (face_list &list) const
 Get list of faces.
void two_chains (two_chain_list &list) const
 Get list of two chains.
void blocks (block_list &list) const
 Get list of blocks.
void describe_inferiors (vcl_ostream &strm=vcl_cout, int blanking=0) const
void describe_superiors (vcl_ostream &strm=vcl_cout, int blanking=0) const
const char * get_name () const
void un_protect ()
short version () const
virtual void b_write (vsl_b_ostream &os) const
virtual void b_read (vsl_b_istream &is)
vsol_box_2d_sptr get_bounding_box () const
double get_min_x () const
double get_max_x () const
double get_min_y () const
double get_max_y () const
virtual vsol_spatial_object_2dcast_to_spatial_object ()
virtual vsol_spatial_object_2d
const * 
cast_to_spatial_object () const
virtual vsol_spatial_object_2dcast_to_vsol_spatial_object ()
virtual vsol_spatial_object_2d
const * 
cast_to_vsol_spatial_object () const
virtual vsol_point_2dcast_to_point ()
virtual vsol_point_2d const * cast_to_point () const
virtual vsol_curve_2dcast_to_curve ()
virtual vsol_curve_2d const * cast_to_curve () const
virtual vsol_region_2dcast_to_region ()
virtual vsol_region_2d const * cast_to_region () const
virtual vsol_group_2dcast_to_group ()
virtual vsol_group_2d const * cast_to_group () const
void touch ()
unsigned long get_time_stamp () const
bool older (vul_timestamp const &t) const
bool older (vul_timestamp const *t) const
void ref ()
void unref ()
int get_references () const
bool is_referenced () const
int get_id () const
void set_id (int i)
void set_user_flag (unsigned int flag)
bool get_user_flag (unsigned int flag)
void unset_user_flag (unsigned int flag)
void set_tagged_union_flag ()
bool get_tagged_union_flag ()
void unset_tagged_union_flag ()
int get_tag_id ()
void set_tag_id (int id)

Public Attributes

 SPATIAL_NO_TYPE
 TOPOLOGYOBJECT
 POINT
 CURVE
 REGION
 SPATIALGROUP
 VOLUME
 NUM_SPATIALOBJECT_TYPES

Static Public Attributes

static const char * SpatialTypes []
static const float eps

Protected Types

enum  vtol_topology_object_type {
  TOPOLOGY_NO_TYPE = 0, VERTEX, ZEROCHAIN, EDGE,
  ONECHAIN, FACE, TRIFACE, INTENSITYFACE,
  INTENSITYFACE3D, DDBINTENSITYFACE, TWOCHAIN, TRIMESHTWOCHAIN,
  BLOCK, NUM_TOPOLOGYOBJECT_TYPES
}

Protected Member Functions

virtual vtol_facecopy_with_arrays (topology_list &verts, topology_list &edges) const
 this should not called by a client.
virtual vcl_vector< vtol_vertex * > * compute_vertices ()
 Returns a vtol_vertex list of all the vertices on the face.
virtual vcl_vector< vtol_edge * > * compute_edges ()
 Returns a list of edges on the face.
virtual vcl_vector< vtol_zero_chain * > * compute_zero_chains ()
 Returns a list of zero_chains of the face.
virtual vcl_vector< vtol_one_chain * > * compute_one_chains ()
 Returns a list of all Onechains of the face.
virtual vcl_vector< vtol_face * > * compute_faces ()
 Returns a list of that has itself as the only element.
virtual vcl_vector< vtol_two_chain * > * compute_two_chains ()
 Returns a list of all the two_chains which contain the vtol_face.
virtual vcl_vector< vtol_block * > * compute_blocks ()
 Returns a list of all the blocks that contain the vtol_face.
virtual vcl_vector< vtol_vertex * > * outside_boundary_compute_vertices ()
virtual vcl_vector< vtol_zero_chain * > * outside_boundary_compute_zero_chains ()
 Returns a list of the zero_chains on the outside boundary of the face.
virtual vcl_vector< vtol_edge * > * outside_boundary_compute_edges ()
 Returns a list of edges that make up the outside boundary of the face.
virtual vcl_vector< vtol_one_chain * > * outside_boundary_compute_one_chains ()
void not_applicable (vcl_string const &message) const
void empty_bounding_box () const
void set_bounding_box (vsol_box_2d_sptr const &box) const
void set_bounding_box (double x, double y) const
void add_to_bounding_box (double x, double y) const
void add_to_bounding_box (vsol_box_2d_sptr const &box) const
void grow_minmax_bounds (vsol_box_2d_sptr const &b) const
void check_update_bounding_box () const

Protected Attributes

vcl_list< vtol_topology_object * > superiors_
topology_list inferiors_
unsigned long timestamp_
unsigned int tag_
int id_

Static Protected Attributes

static int tagcount_

Private Member Functions

 vtol_face_2d (vtol_one_chain &edgeloop)
 vtol_face_2d (const vtol_face_2d &other)
 Copy constructor. Deep copy. Deprecated.

Private Attributes

vsol_region_2d_sptr surface_

Friends

friend vcl_ostream & operator<< (vcl_ostream &, vsol_spatial_object_2d const &)
friend vcl_ostream & operator<< (vcl_ostream &, vsol_spatial_object_2d const *)


Member Enumeration Documentation

enum vtol_topology_object::vtol_topology_object_type [protected, inherited]
 

Enumerator:
TOPOLOGY_NO_TYPE 
VERTEX 
ZEROCHAIN 
EDGE 
ONECHAIN 
FACE 
TRIFACE 
INTENSITYFACE 
INTENSITYFACE3D 
DDBINTENSITYFACE 
TWOCHAIN 
TRIMESHTWOCHAIN 
BLOCK 
NUM_TOPOLOGYOBJECT_TYPES 

Definition at line 132 of file vtol_topology_object.h.


Constructor & Destructor Documentation

vtol_face_2d::vtol_face_2d  )  [inline]
 

Default constructor.

Definition at line 63 of file vtol_face_2d.h.

vtol_face_2d::vtol_face_2d vertex_list const &  verts  )  [explicit]
 

Constructor.

REQUIRE: verts.size()>2

Definition at line 114 of file vtol_face_2d.cxx.

vtol_face_2d::vtol_face_2d one_chain_list const &  onechs  )  [explicit]
 

Constructor.

This method assumes that the first vtol_one_chain on the list is the outside boundary vtol_one_chain. The remaining one_chains are holes boundaries on the face.

Definition at line 169 of file vtol_face_2d.cxx.

vtol_face_2d::vtol_face_2d vtol_one_chain_sptr const &  edgeloop  )  [explicit]
 

Constructor.

This method uses the vtol_one_chain, edgeloop, as the outside boundary of the face.

Definition at line 203 of file vtol_face_2d.cxx.

vtol_face_2d::vtol_face_2d vtol_one_chain edgeloop  )  [explicit, private]
 

vtol_face_2d::vtol_face_2d vsol_region_2d facesurf  )  [explicit]
 

Constructor.

Definition at line 216 of file vtol_face_2d.cxx.

vtol_face_2d::vtol_face_2d vtol_face_2d_sptr const &  other  ) 
 

Pseudo copy constructor. Deep copy.

Definition at line 16 of file vtol_face_2d.cxx.

vtol_face_2d::vtol_face_2d const vtol_face_2d other  )  [private]
 

Copy constructor. Deep copy. Deprecated.

virtual vtol_face_2d::~vtol_face_2d  )  [inline, virtual]
 

Destructor.

Definition at line 95 of file vtol_face_2d.h.


Member Function Documentation

bool vtol_face::add_hole_cycle vtol_one_chain_sptr  new_hole  )  [virtual, inherited]
 

Adds a new hole to the face.

Definition at line 280 of file vtol_face.cxx.

void vtol_face::add_one_chain vtol_one_chain_sptr const &  new_vtol_one_chain  )  [virtual, inherited]
 

Links new_vtol_one_chain as an inferior of the vtol_face and returns True if successful.

This method will be replacing all calls to add_edge_loop().

Definition at line 203 of file vtol_face.cxx.

void vtol_topology_object::blocks block_list list  )  const [inherited]
 

Get list of blocks.

Definition at line 264 of file vtol_topology_object.cxx.

virtual vtol_block* vtol_topology_object::cast_to_block  )  [inline, virtual, inherited]
 

Return `this' if `this' is a block, 0 otherwise.

Reimplemented in vtol_block.

Definition at line 240 of file vtol_topology_object.h.

virtual const vtol_block* vtol_topology_object::cast_to_block  )  const [inline, virtual, inherited]
 

Return `this' if `this' is a block, 0 otherwise.

Reimplemented in vtol_block.

Definition at line 236 of file vtol_topology_object.h.

virtual vtol_chain* vtol_topology_object::cast_to_chain  )  [inline, virtual, inherited]
 

Return `this' if `this' is a chain, 0 otherwise.

Reimplemented in vtol_chain.

Definition at line 208 of file vtol_topology_object.h.

virtual const vtol_chain* vtol_topology_object::cast_to_chain  )  const [inline, virtual, inherited]
 

Return `this' if `this' is a chain, 0 otherwise.

Reimplemented in vtol_chain.

Definition at line 204 of file vtol_topology_object.h.

virtual vtol_edge* vtol_topology_object::cast_to_edge  )  [inline, virtual, inherited]
 

Return `this' if `this' is an edge, 0 otherwise.

Reimplemented in vtol_edge.

Definition at line 200 of file vtol_topology_object.h.

virtual const vtol_edge* vtol_topology_object::cast_to_edge  )  const [inline, virtual, inherited]
 

Return `this' if `this' is an edge, 0 otherwise.

Reimplemented in vtol_edge.

Definition at line 196 of file vtol_topology_object.h.

virtual vtol_face* vtol_face::cast_to_face  )  [inline, virtual, inherited]
 

Return `this' if `this' is a face, 0 otherwise.

Reimplemented from vtol_topology_object.

Definition at line 93 of file vtol_face.h.

virtual const vtol_face* vtol_face::cast_to_face  )  const [inline, virtual, inherited]
 

Return `this' if `this' is a face, 0 otherwise.

Reimplemented from vtol_topology_object.

Definition at line 89 of file vtol_face.h.

virtual vtol_face_2d* vtol_face_2d::cast_to_face_2d  )  [inline, virtual]
 

Return `this' if `this' is a 2D face, 0 otherwise.

Reimplemented from vtol_face.

Definition at line 124 of file vtol_face_2d.h.

virtual const vtol_face_2d* vtol_face_2d::cast_to_face_2d  )  const [inline, virtual]
 

Return `this' if `this' is a 2D face, 0 otherwise.

Reimplemented from vtol_face.

Definition at line 120 of file vtol_face_2d.h.

virtual vtol_intensity_face* vtol_face::cast_to_intensity_face  )  [inline, virtual, inherited]
 

Return `this' if `this' is an intensity face, 0 otherwise.

Reimplemented in vtol_intensity_face.

Definition at line 109 of file vtol_face.h.

virtual const vtol_intensity_face* vtol_face::cast_to_intensity_face  )  const [inline, virtual, inherited]
 

Return `this' if `this' is an intensity face, 0 otherwise.

Reimplemented in vtol_intensity_face.

Definition at line 105 of file vtol_face.h.

virtual vtol_one_chain* vtol_topology_object::cast_to_one_chain  )  [inline, virtual, inherited]
 

Return `this' if `this' is an one_chain, 0 otherwise.

Reimplemented in vtol_one_chain.

Definition at line 216 of file vtol_topology_object.h.

virtual const vtol_one_chain* vtol_topology_object::cast_to_one_chain  )  const [inline, virtual, inherited]
 

Return `this' if `this' is an one_chain, 0 otherwise.

Reimplemented in vtol_one_chain.

Definition at line 212 of file vtol_topology_object.h.

virtual const vtol_topology_object* vtol_topology_object::cast_to_topology_object  )  const [inline, virtual, inherited]
 

Reimplemented from vsol_spatial_object_2d.

Definition at line 176 of file vtol_topology_object.h.

virtual vtol_topology_object* vtol_topology_object::cast_to_topology_object  )  [inline, virtual, inherited]
 

Reimplemented from vsol_spatial_object_2d.

Definition at line 175 of file vtol_topology_object.h.

virtual vtol_two_chain* vtol_topology_object::cast_to_two_chain  )  [inline, virtual, inherited]
 

Return `this' if `this' is a two_chain, 0 otherwise.

Reimplemented in vtol_two_chain.

Definition at line 232 of file vtol_topology_object.h.

virtual const vtol_two_chain* vtol_topology_object::cast_to_two_chain  )  const [inline, virtual, inherited]
 

Return `this' if `this' is a two_chain, 0 otherwise.

Reimplemented in vtol_two_chain.

Definition at line 228 of file vtol_topology_object.h.

virtual vtol_vertex* vtol_topology_object::cast_to_vertex  )  [inline, virtual, inherited]
 

Return `this' if `this' is a vertex, 0 otherwise.

Reimplemented in vtol_vertex.

Definition at line 184 of file vtol_topology_object.h.

virtual const vtol_vertex* vtol_topology_object::cast_to_vertex  )  const [inline, virtual, inherited]
 

Return `this' if `this' is a vertex, 0 otherwise.

Reimplemented in vtol_vertex.

Definition at line 180 of file vtol_topology_object.h.

virtual vtol_zero_chain* vtol_topology_object::cast_to_zero_chain  )  [inline, virtual, inherited]
 

Return `this' if `this' is a zero_chain, 0 otherwise.

Reimplemented in vtol_zero_chain.

Definition at line 192 of file vtol_topology_object.h.

virtual const vtol_zero_chain* vtol_topology_object::cast_to_zero_chain  )  const [inline, virtual, inherited]
 

Return `this' if `this' is a zero_chain, 0 otherwise.

Reimplemented in vtol_zero_chain.

Definition at line 188 of file vtol_topology_object.h.

vsol_spatial_object_2d * vtol_face_2d::clone  )  const [virtual]
 

Clone `this': creation of a new object and initialization.

See Prototype pattern

Implements vsol_spatial_object_2d.

Reimplemented in vtol_intensity_face.

Definition at line 65 of file vtol_face_2d.cxx.

bool vtol_face_2d::compare_geometry const vtol_face other  )  const [virtual]
 

provide a mechanism to compare geometry.

Implements vtol_face.

Definition at line 319 of file vtol_face_2d.cxx.

vcl_vector< vtol_block * > * vtol_face::compute_blocks  )  [protected, virtual, inherited]
 

Returns a list of all the blocks that contain the vtol_face.

Reimplemented from vtol_topology_object.

Definition at line 181 of file vtol_face.cxx.

void vtol_face::compute_bounding_box void   )  const [virtual, inherited]
 

determine bounding box from bounding boxes of underlying edges.

The algorithm uses the bounding boxes of the vtol_edge(s) forming the boundary of the face.

Reimplemented from vtol_topology_object.

Definition at line 372 of file vtol_face.cxx.

vcl_vector< vtol_edge * > * vtol_face::compute_edges  )  [protected, virtual, inherited]
 

Returns a list of edges on the face.

Reimplemented from vtol_topology_object.

Definition at line 130 of file vtol_face.cxx.

vcl_vector< vtol_face * > * vtol_face::compute_faces void