#include <vtol_face_2d.h>
Inheritance diagram for vtol_face_2d:

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_2d * | clone () 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_2d * | cast_to_face_2d () const |
| Return `this' if `this' is a 2D face, 0 otherwise. | |
| virtual vtol_face_2d * | cast_to_face_2d () |
| Return `this' if `this' is a 2D face, 0 otherwise. | |
| virtual vtol_face * | shallow_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_list * | get_hole_cycles () |
| virtual const vtol_face * | cast_to_face () const |
| Return `this' if `this' is a face, 0 otherwise. | |
| virtual vtol_face * | cast_to_face () |
| Return `this' if `this' is a face, 0 otherwise. | |
| virtual const vtol_intensity_face * | cast_to_intensity_face () const |
| Return `this' if `this' is an intensity face, 0 otherwise. | |
| virtual vtol_intensity_face * | cast_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_list * | outside_boundary_vertices () |
| accessors for boundary elements. | |
| virtual zero_chain_list * | outside_boundary_zero_chains () |
| Returns a list of the zero_chains on the outside boundary of the face. | |
| virtual edge_list * | outside_boundary_edges () |
| Get the outside boundary edges. | |
| virtual one_chain_list * | outside_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_object * | cast_to_topology_object () |
| virtual const vtol_topology_object * | cast_to_topology_object () const |
| virtual const vtol_vertex * | cast_to_vertex () const |
| Return `this' if `this' is a vertex, 0 otherwise. | |
| virtual vtol_vertex * | cast_to_vertex () |
| Return `this' if `this' is a vertex, 0 otherwise. | |
| virtual const vtol_zero_chain * | cast_to_zero_chain () const |
| Return `this' if `this' is a zero_chain, 0 otherwise. | |
| virtual vtol_zero_chain * | cast_to_zero_chain () |
| Return `this' if `this' is a zero_chain, 0 otherwise. | |
| virtual const vtol_edge * | cast_to_edge () const |
| Return `this' if `this' is an edge, 0 otherwise. | |
| virtual vtol_edge * | cast_to_edge () |
| Return `this' if `this' is an edge, 0 otherwise. | |
| virtual const vtol_chain * | cast_to_chain () const |
| Return `this' if `this' is a chain, 0 otherwise. | |
| virtual vtol_chain * | cast_to_chain () |
| Return `this' if `this' is a chain, 0 otherwise. | |
| virtual const vtol_one_chain * | cast_to_one_chain () const |
| Return `this' if `this' is an one_chain, 0 otherwise. | |
| virtual vtol_one_chain * | cast_to_one_chain () |
| Return `this' if `this' is an one_chain, 0 otherwise. | |
| virtual const vtol_two_chain * | cast_to_two_chain () const |
| Return `this' if `this' is a two_chain, 0 otherwise. | |
| virtual vtol_two_chain * | cast_to_two_chain () |
| Return `this' if `this' is a two_chain, 0 otherwise. | |
| virtual const vtol_block * | cast_to_block () const |
| Return `this' if `this' is a block, 0 otherwise. | |
| virtual vtol_block * | cast_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_list * | inferiors () |
| Return the inferiors list. | |
| const topology_list * | inferiors () 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_2d * | cast_to_spatial_object () |
| virtual vsol_spatial_object_2d const * | cast_to_spatial_object () const |
| virtual vsol_spatial_object_2d * | cast_to_vsol_spatial_object () |
| virtual vsol_spatial_object_2d const * | cast_to_vsol_spatial_object () const |
| virtual vsol_point_2d * | cast_to_point () |
| virtual vsol_point_2d const * | cast_to_point () const |
| virtual vsol_curve_2d * | cast_to_curve () |
| virtual vsol_curve_2d const * | cast_to_curve () const |
| virtual vsol_region_2d * | cast_to_region () |
| virtual vsol_region_2d const * | cast_to_region () const |
| virtual vsol_group_2d * | cast_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_face * | copy_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 *) |
enum vtol_topology_object::vtol_topology_object_type [protected, inherited] |
| 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.
| vtol_face_2d::vtol_face_2d | ( | ) | [inline] |
| vtol_face_2d::vtol_face_2d | ( | vertex_list const & | verts | ) | [explicit] |
| 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] |
| vtol_face_2d::vtol_face_2d | ( | vtol_face_2d_sptr const & | other | ) |
| 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] |
| 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.
| virtual vcl_string vtol_face_2d::is_a | ( | ) | const [inline, virtual] |
Return a platform independent string identifying the class.
Reimplemented from vtol_face.
Reimplemented in vtol_intensity_face.
Definition at line 103 of file vtol_face_2d.h.
| virtual bool vtol_face_2d::is_class | ( | const vcl_string & | cls | ) | const [inline, virtual] |
Return true if the argument matches the string identifying the class or any parent class.
Reimplemented from vtol_face.
Reimplemented in vtol_intensity_face.
Definition at line 106 of file vtol_face_2d.h.
| vsol_region_2d_sptr vtol_face_2d::surface | ( | ) | const [virtual] |
Definition at line 70 of file vtol_face_2d.cxx.
| void vtol_face_2d::set_surface | ( | vsol_region_2d_sptr const & | newsurf | ) | [virtual] |
| 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_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.
| vtol_face * vtol_face_2d::shallow_copy_with_no_links | ( | ) | const [virtual] |
Copy with no links. Only copy the surface if it exists.
Implements vtol_face.
Definition at line 99 of file vtol_face_2d.cxx.
| bool vtol_face_2d::operator== | ( | const vtol_face_2d & | other | ) | const [virtual] |
Definition at line 231 of file vtol_face_2d.cxx.
| bool vtol_face_2d::operator!= | ( | const vtol_face_2d & | other | ) | const [inline] |
Definition at line 131 of file vtol_face_2d.h.
| bool vtol_face_2d::operator== | ( | const vtol_face & | other | ) | const [virtual] |
deep equality check on faces. uses fuzzy equal on vertices.
Reimplemented from vtol_face.
Definition at line 256 of file vtol_face_2d.cxx.
| bool vtol_face_2d::operator== | ( | const vsol_spatial_object_2d & | obj | ) | const [virtual] |
spatial object equality.
Reimplemented from vtol_face.
Definition at line 266 of file vtol_face_2d.cxx.
| void vtol_face_2d::print | ( | vcl_ostream & | strm = vcl_cout |
) | const [virtual] |
This method prints out a simple text representation for the vtol_face_2d which includes its address in memory.
Reimplemented from vtol_face.
Definition at line 297 of file vtol_face_2d.cxx.
| void vtol_face_2d::describe | ( | vcl_ostream & | strm = vcl_cout, |
|
| int | blanking = 0 | |||
| ) | const [virtual] |
This method describes the data members of the vtol_face_2d including the Inferiors.
The blanking argument is used to indent the output in a clear fashion.
Reimplemented from vtol_face.
Definition at line 280 of file vtol_face_2d.cxx.
| void vtol_face_2d::copy_geometry | ( | const vtol_face & | other | ) | [virtual] |
| 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.
| vtol_face * vtol_face_2d::copy_with_arrays | ( | topology_list & | verts, | |
| topology_list & | edges | |||
| ) | const [protected, virtual] |
this should not called by a client.
Implements vtol_face.
Definition at line 78 of file vtol_face_2d.cxx.
| vtol_one_chain_sptr vtol_face::get_one_chain | ( | int | which = 0 |
) | [virtual, inherited] |
Returns the ith inferior vtol_one_chain of the vtol_face.
Definition at line 256 of file vtol_face.cxx.
| vtol_one_chain_sptr vtol_face::get_boundary_cycle | ( | ) | [virtual, inherited] |
Returns the first inferior vtol_one_chain of the vtol_face (the boundary onechain).
Definition at line 270 of file vtol_face.cxx.
| bool vtol_face::add_hole_cycle | ( | vtol_one_chain_sptr | new_hole | ) | [virtual, inherited] |
| one_chain_list * vtol_face::get_hole_cycles | ( | ) | [virtual, inherited] |
Definition at line 295 of file vtol_face.cxx.
| 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* 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_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_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.
| void vtol_face::link_inferior | ( | vtol_one_chain_sptr | inf | ) | [inherited] |
Definition at line 14 of file vtol_face.cxx.
| void vtol_topology_object::link_inferior | ( | vtol_topology_object_sptr | inferior | ) | [inherited] |
Link `this' with an inferior `inferior'.
REQUIRE: valid_inferior_type(inferior) and !is_inferior(inferior)
Definition at line 98 of file vtol_topology_object.cxx.
| void vtol_face::unlink_inferior | ( | vtol_one_chain_sptr | inf | ) | [inherited] |
Definition at line 19 of file vtol_face.cxx.
| void vtol_topology_object::unlink_inferior | ( | vtol_topology_object_sptr | inferior | ) | [inherited] |
Unlink `this' from the inferior `inferior'.
REQUIRE: valid_inferior_type(inferior) and is_inferior(inferior)
Definition at line 118 of file vtol_topology_object.cxx.
| virtual bool vtol_face::valid_inferior_type | ( | vtol_topology_object const * | inferior | ) | const [inline, virtual, inherited] |
Is `inferior' type valid for `this' ?.
Implements vtol_topology_object.
Definition at line 120 of file vtol_face.h.
| bool vtol_face::valid_inferior_type | ( | vtol_one_chain_sptr const & | ) | const [inline, inherited] |
Definition at line 122 of file vtol_face.h.
| bool vtol_face::valid_superior_type | ( | vtol_two_chain_sptr const & | ) | const [inline, inherited] |
Definition at line 123 of file vtol_face.h.
| bool vtol_topology_object::valid_superior_type | ( | vtol_topology_object const * | sup | ) | const [inline, inherited] |
| vertex_list * vtol_face::outside_boundary_vertices | ( | void | ) | [virtual, inherited] |
accessors for boundary elements.
All vertices on any holes of the face are *not* included. This vertex list is ordered such that a positive normal is computing using the Right Hand rule in the direction of the vertex list.
Definition at line 39 of file vtol_face.cxx.