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

Definition at line 31 of file vtol_chain.h.
Public Types | |
| enum | vsol_spatial_object_2d_type |
Public Member Functions | |
| vtol_chain () | |
| Default constructor. | |
| virtual | ~vtol_chain () |
| Destructor. | |
| virtual const chain_list * | chain_inferiors () const |
| Return a pointer to the inferiors (no copy). | |
| virtual const chain_list * | chain_superiors () const |
| Return a copy of the chain_superiors list. | |
| 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 bool | valid_chain_type (vtol_chain_sptr chain_inf_sup) const =0 |
| Is `chain_inf_sup' type valid for `this' ?. | |
| virtual bool | is_chain_inferior (vtol_chain_sptr chain_inferior) const |
| Is `inferior' already an inferior of `this' ?. | |
| virtual bool | is_chain_superior (vtol_chain const *chain_superior) const |
| Is `superior' already a superior of `this' ?. | |
| int | num_chain_superiors () const |
| Return the number of superiors. | |
| int | num_chain_inferiors () const |
| Return the number of inferiors. | |
| bool | contains_sub_chains () const |
| Does `this' contain some sub chains ?. | |
| bool | is_sub_chain () const |
| Is `this' a sub chain ?. | |
| void | link_chain_inferior (vtol_chain_sptr chain_inferior) |
| Link `this' with an inferior `chain_inferior'. | |
| void | unlink_chain_inferior (vtol_chain_sptr chain_inferior) |
| Unlink `this' with the chain_inferior `chain_inferior'. | |
| void | unlink_all_chain_inferiors () |
| Unlink `this' with all its chain inferiors. | |
| void | unlink () |
| Unlink `this' of the network. | |
| bool | is_cycle () const |
| Is `this' a connected chain ?. | |
| const vcl_vector< signed char > * | directions () const |
| Return the directions. | |
| vcl_vector< signed char > * | directions () |
| Return the directions. | |
| int | dir (int i) const |
| Return the direction `i'. | |
| void | set_cycle (bool new_is_cycle) |
| Set if `this' is a connected chain. | |
| virtual void | clear () |
| Reset the chain. | |
| 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 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_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_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_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. | |
| virtual bool | valid_inferior_type (vtol_topology_object const *inf) const=0 |
| Is `inferior' type valid for `this' ?. | |
| bool | valid_superior_type (vtol_topology_object const *sup) const |
| Is `superior' type valid for `this' ?. | |
| 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 | link_inferior (vtol_topology_object_sptr inferior) |
| Link `this' with an inferior `inferior'. | |
| void | unlink_inferior (vtol_topology_object_sptr inferior) |
| Unlink `this' from the inferior `inferior'. | |
| void | unlink_all_inferiors () |
| Unlink `this' from all its inferiors. | |
| 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. | |
| virtual void | print (vcl_ostream &strm=vcl_cout) const |
| print and describe the objects. | |
| void | describe_inferiors (vcl_ostream &strm=vcl_cout, int blanking=0) const |
| void | describe_superiors (vcl_ostream &strm=vcl_cout, int blanking=0) const |
| virtual void | describe (vcl_ostream &strm=vcl_cout, int blanking=0) const |
| virtual void | compute_bounding_box () const |
| compute the bounding box from the set of vertices. | |
| virtual vcl_vector< vtol_vertex * > * | compute_vertices () |
| compute lists of vertices. | |
| virtual vcl_vector< vtol_zero_chain * > * | compute_zero_chains () |
| compute lists of zero chains. | |
| virtual vcl_vector< vtol_edge * > * | compute_edges () |
| compute lists of edges. | |
| virtual vcl_vector< vtol_one_chain * > * | compute_one_chains () |
| compute lists of one chains. | |
| virtual vcl_vector< vtol_face * > * | compute_faces () |
| compute lists of faces. | |
| virtual vcl_vector< vtol_two_chain * > * | compute_two_chains () |
| compute lists of two chains. | |
| virtual vcl_vector< vtol_block * > * | compute_blocks () |
| compute lists of blocks. | |
| const char * | get_name () const |
| void | un_protect () |
| virtual vsol_spatial_object_2d * | clone () const=0 |
| short | version () const |
| virtual void | b_write (vsl_b_ostream &os) const |
| virtual void | b_read (vsl_b_istream &is) |
| virtual bool | operator== (vsol_spatial_object_2d const &obj) const |
| bool | operator!= (vsol_spatial_object_2d const &obj) |
| 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 | |
| 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 | |
| chain_list | chain_inferiors_ |
| vcl_list< vtol_chain * > | chain_superiors_ |
| bool | is_cycle_ |
| vcl_vector< signed char > | directions_ |
| vcl_list< vtol_topology_object * > | superiors_ |
| topology_list | inferiors_ |
| unsigned long | timestamp_ |
| unsigned int | tag_ |
| int | id_ |
Static Protected Attributes | |
| static int | tagcount_ |
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_chain::vtol_chain | ( | ) |
| vtol_chain::~vtol_chain | ( | ) | [virtual] |
| const chain_list * vtol_chain::chain_inferiors | ( | ) | const [virtual] |
| const chain_list * vtol_chain::chain_superiors | ( | ) | const [virtual] |
Return a copy of the chain_superiors list.
The return value must be deleted by the caller
Definition at line 44 of file vtol_chain.cxx.
| virtual const vtol_chain* vtol_chain::cast_to_chain | ( | ) | const [inline, virtual] |
Return `this' if `this' is a chain, 0 otherwise.
Reimplemented from vtol_topology_object.
Definition at line 83 of file vtol_chain.h.
| virtual vtol_chain* vtol_chain::cast_to_chain | ( | ) | [inline, virtual] |
Return `this' if `this' is a chain, 0 otherwise.
Reimplemented from vtol_topology_object.
Definition at line 87 of file vtol_chain.h.
| virtual bool vtol_chain::valid_chain_type | ( | vtol_chain_sptr | chain_inf_sup | ) | const [pure virtual] |
| bool vtol_chain::is_chain_inferior | ( | vtol_chain_sptr | chain_inferior | ) | const [virtual] |
| bool vtol_chain::is_chain_superior | ( | vtol_chain const * | chain_superior | ) | const [virtual] |
| int vtol_chain::num_chain_superiors | ( | ) | const [inline] |
| int vtol_chain::num_chain_inferiors | ( | ) | const [inline] |
| bool vtol_chain::contains_sub_chains | ( | ) | const [inline] |
| bool vtol_chain::is_sub_chain | ( | ) | const [inline] |
| void vtol_chain::link_chain_inferior | ( | vtol_chain_sptr | chain_inferior | ) |
Link `this' with an inferior `chain_inferior'.
REQUIRE: valid_chain_type(chain_inferior) and !is_chain_inferior(chain_inferior)
Definition at line 93 of file vtol_chain.cxx.
| void vtol_chain::unlink_chain_inferior | ( | vtol_chain_sptr | chain_inferior | ) |
Unlink `this' with the chain_inferior `chain_inferior'.
REQUIRE: valid_chain_type(chain_inferior) and is_chain_inferior(chain_inferior)
Definition at line 109 of file vtol_chain.cxx.
| void vtol_chain::unlink_all_chain_inferiors | ( | ) |
| void vtol_chain::unlink | ( | ) |
Unlink `this' of the network.
Reimplemented from vtol_topology_object.
Definition at line 143 of file vtol_chain.cxx.
| bool vtol_chain::is_cycle | ( | ) | const |
| const vcl_vector<signed char>* vtol_chain::directions | ( | ) | const [inline] |
| vcl_vector<signed char>* vtol_chain::directions | ( | ) | [inline] |
| int vtol_chain::dir | ( | int | i | ) | const [inline] |
| void vtol_chain::set_cycle | ( | bool | new_is_cycle | ) | [inline] |
| void vtol_chain::clear | ( | ) | [virtual] |
| virtual vcl_string vtol_chain::is_a | ( | ) | const [inline, virtual] |
Return a platform independent string identifying the class.
Implements vsol_spatial_object_2d.
Reimplemented in vtol_one_chain, and vtol_two_chain.
Definition at line 171 of file vtol_chain.h.
| virtual bool vtol_chain::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 in vtol_one_chain, and vtol_two_chain.
Definition at line 174 of file vtol_chain.h.
| virtual vtol_topology_object* vtol_topology_object::cast_to_topology_object | ( | ) | [inline, virtual, inherited] |
| virtual const vtol_topology_object* vtol_topology_object::cast_to_topology_object | ( | ) | const [inline, virtual, inherited] |
| 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_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_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.
| 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_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_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_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 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_face* vtol_topology_object::cast_to_face | ( | ) | const [inline, virtual, inherited] |
Return `this' if `this' is a face, 0 otherwise.
Reimplemented in vtol_face.
Definition at line 220 of file vtol_topology_object.h.
| virtual vtol_face* vtol_topology_object::cast_to_face | ( | ) | [inline, virtual, inherited] |
Return `this' if `this' is a face, 0 otherwise.
Reimplemented in vtol_face.
Definition at line 224 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_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_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_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 bool vtol_topology_object::valid_inferior_type | ( | vtol_topology_object const * | inf | ) | const [pure virtual, inherited] |
Is `inferior' type valid for `this' ?.
Implemented in vtol_block, vtol_edge, vtol_face, vtol_one_chain, vtol_two_chain, vtol_vertex, and vtol_zero_chain.
| bool vtol_topology_object::valid_superior_type | ( | vtol_topology_object const * | sup | ) | const [inline, inherited] |
| bool vtol_topology_object::is_inferior | ( | vtol_topology_object_sptr | inferior | ) | const [inherited] |
Is `inferior' already an inferior of `this' ?.
Definition at line 51 of file vtol_topology_object.cxx.
| bool vtol_topology_object::is_superior | ( | vtol_topology_object *const & | superior | ) | const [inherited] |
Is `superior' already a superior of `this' ?.
Definition at line 64 of file vtol_topology_object.cxx.
| int vtol_topology_object::numinf | ( | ) | const [inline, inherited] |
| int vtol_topology_object::numsup | ( | ) | const [inline, inherited] |
| const vcl_list<vtol_topology_object*>* vtol_topology_object::superiors_list | ( | ) | const [inline, inherited] |
Definition at line 276 of file vtol_topology_object.h.
| topology_list* vtol_topology_object::inferiors | ( | ) | [inline, inherited] |
| const topology_list* vtol_topology_object::inferiors | ( | ) | const [inline, inherited] |
Definition at line 281 of file vtol_topology_object.h.
| virtual vsol_spatial_object_2d_type vtol_topology_object::spatial_type | ( | void | ) | const [inline, virtual, inherited] |
Return the spatial type.
Implements vsol_spatial_object_2d.
Definition at line 285 of file vtol_topology_object.h.
| 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_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.
| void vtol_topology_object::unlink_all_inferiors | ( | ) | [inherited] |
| void vtol_topology_object::vertices | ( | vertex_list & | list | ) | const [inherited] |
| void vtol_topology_object::zero_chains | ( | zero_chain_list & | list | ) | const [inherited] |
| void vtol_topology_object::edges | ( | edge_list & | list | ) | const [inherited] |
| void vtol_topology_object::one_chains | ( | one_chain_list & | list | ) | const [inherited] |