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

Definition at line 48 of file vtol_one_chain.h.
Public Types | |
| enum | vsol_spatial_object_2d_type |
Public Member Functions | |
| void | link_chain_inferior (vtol_one_chain_sptr chain_inferior) |
| void | unlink_chain_inferior (vtol_one_chain_sptr chain_inferior) |
| vtol_one_chain () | |
| Default constructor. | |
| vtol_one_chain (edge_list const &, bool new_is_cycle=false) | |
| Constructor from an array of edges. | |
| vtol_one_chain (edge_list const &, vcl_vector< signed char > const &, bool new_is_cycle=false) | |
| Constructor from an array of edges and an array of directions. | |
| vtol_one_chain (vtol_one_chain_sptr const &other) | |
| Pseudo copy constructor. Deep copy. | |
| virtual | ~vtol_one_chain () |
| 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 signed char | direction (vtol_edge const &e) const |
| Get the direction of the edge "e" in the onechain. | |
| 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. | |
| void | link_inferior (vtol_edge_sptr inf) |
| void | unlink_inferior (vtol_edge_sptr inf) |
| virtual bool | valid_inferior_type (vtol_topology_object const *inferior) const |
| Is `inferior' type valid for `this' ?. | |
| bool | valid_inferior_type (vtol_edge_sptr const &) const |
| bool | valid_inferior_type (vtol_edge_2d_sptr const &) const |
| bool | valid_superior_type (vtol_face_sptr const &) const |
| bool | valid_superior_type (vtol_face_2d_sptr const &) const |
| virtual bool | valid_chain_type (vtol_chain_sptr chain_inf_sup) const |
| Is `chain_inf_sup' type valid for `this' ?. | |
| bool | valid_chain_type (vtol_one_chain_sptr const &) const |
| virtual vertex_list * | outside_boundary_vertices () |
| accessors for outside boundary elements. | |
| virtual zero_chain_list * | outside_boundary_zero_chains () |
| Get the outside boundary zero chains. | |
| virtual edge_list * | outside_boundary_edges () |
| Get the outside boundary edges. | |
| virtual one_chain_list * | outside_boundary_one_chains () |
| Get the outside boundary one chains. | |
| virtual one_chain_list * | inferior_one_chains () |
| accessors to inferiors and superiors. | |
| virtual one_chain_list * | superior_one_chains () |
| Get the superior one chains. | |
| virtual void | reverse_directions () |
| Reverse the direction of the one chain. | |
| virtual vtol_one_chain * | copy_with_arrays (topology_list &verts, topology_list &edges) const |
| virtual void | compute_bounding_box () const |
| Computes the bounding box of a vtol_one_chain from the edges. | |
| virtual vtol_edge_sptr | edge (int i) const |
| int | num_edges () const |
| virtual void | determine_edge_directions () |
| Redetermining the directions of all edges in the onechain. | |
| virtual void | add_edge (vtol_edge_sptr const &, bool) |
| Add an edge. | |
| virtual void | add_edge (vtol_edge_2d_sptr const &, bool) |
| virtual void | remove_edge (vtol_edge_sptr const &, bool) |
| Remove an edge. | |
| virtual void | remove_edge (vtol_edge_2d_sptr const &, bool) |
| virtual bool | operator== (vtol_one_chain const &other) const |
| Comparison operator. | |
| bool | operator!= (const vtol_one_chain &other) const |
| bool | operator== (vsol_spatial_object_2d const &obj) const |
| Spatial object equality. | |
| virtual void | print (vcl_ostream &strm=vcl_cout) const |
| Print Methods. | |
| virtual void | describe_directions (vcl_ostream &strm=vcl_cout, int blanking=0) const |
| Describe the directions. | |
| virtual void | describe (vcl_ostream &strm=vcl_cout, int blanking=0) const |
| Describe the one chain. | |
| virtual vcl_vector< vtol_vertex * > * | outside_boundary_compute_vertices () |
| Get the outside boundary vertices. | |
| virtual vcl_vector< vtol_zero_chain * > * | outside_boundary_compute_zero_chains () |
| Get the outside boundary zero chains. | |
| virtual vcl_vector< vtol_edge * > * | outside_boundary_compute_edges () |
| Get the outside boundary edges. | |
| virtual vcl_vector< vtol_one_chain * > * | outside_boundary_compute_one_chains () |
| Get the outside boundary one chains. | |
| 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 | 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 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_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. | |
| 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. | |
| 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) |
| 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 | |
| virtual vcl_vector< vtol_vertex * > * | compute_vertices () |
| Get the vertices of this object. | |
| virtual vcl_vector< vtol_edge * > * | compute_edges () |
| Get the edges. | |
| virtual vcl_vector< vtol_zero_chain * > * | compute_zero_chains () |
| Get the zero chains of this object. | |
| virtual vcl_vector< vtol_one_chain * > * | compute_one_chains () |
| Get the one chains. | |
| virtual vcl_vector< vtol_face * > * | compute_faces () |
| Get the faces. | |
| virtual vcl_vector< vtol_two_chain * > * | compute_two_chains () |
| Get the two chains. | |
| virtual vcl_vector< vtol_block * > * | compute_blocks () |
| Get the blocks. | |
| 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_ |
Private Member Functions | |
| vtol_one_chain (vtol_one_chain const &other) | |
| Copy constructor. Deep copy. Deprecated. | |
| virtual vtol_topology_object_type | topology_type () const |
| Return the topology type. | |
| virtual void | add_edge (vtol_edge &, bool) |
| virtual void | remove_edge (vtol_edge &, bool) |
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_one_chain::vtol_one_chain | ( | ) | [inline] |
| vtol_one_chain::vtol_one_chain | ( | edge_list const & | , | |
| bool | new_is_cycle = false | |||
| ) | [explicit] |
| vtol_one_chain::vtol_one_chain | ( | edge_list const & | , | |
| vcl_vector< signed char > const & | , | |||
| bool | new_is_cycle = false | |||
| ) |
Constructor from an array of edges and an array of directions.
Definition at line 63 of file vtol_one_chain.cxx.
| vtol_one_chain::vtol_one_chain | ( | vtol_one_chain_sptr const & | other | ) |
| vtol_one_chain::vtol_one_chain | ( | vtol_one_chain const & | other | ) | [private] |
Copy constructor. Deep copy. Deprecated.
| vtol_one_chain::~vtol_one_chain | ( | ) | [virtual] |
| void vtol_one_chain::link_chain_inferior | ( | vtol_one_chain_sptr | chain_inferior | ) |
Definition at line 34 of file vtol_one_chain.cxx.
| void vtol_one_chain::unlink_chain_inferior | ( | vtol_one_chain_sptr | chain_inferior | ) |
Definition at line 39 of file vtol_one_chain.cxx.
| vsol_spatial_object_2d * vtol_one_chain::clone | ( | ) | const [virtual] |
Clone `this': creation of a new object and initialization.
See Prototype pattern
Implements vsol_spatial_object_2d.
Definition at line 120 of file vtol_one_chain.cxx.
| virtual vcl_string vtol_one_chain::is_a | ( | ) | const [inline, virtual] |
Return a platform independent string identifying the class.
Reimplemented from vtol_chain.
Definition at line 91 of file vtol_one_chain.h.
| virtual bool vtol_one_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 from vtol_chain.
Definition at line 94 of file vtol_one_chain.h.
| virtual vtol_topology_object_type vtol_one_chain::topology_type | ( | ) | const [inline, private, virtual] |
Return the topology type.
Reimplemented from vtol_topology_object.
Definition at line 101 of file vtol_one_chain.h.
| signed char vtol_one_chain::direction | ( | vtol_edge const & | e | ) | const [virtual] |
Get the direction of the edge "e" in the onechain.
Definition at line 173 of file vtol_one_chain.cxx.
| virtual const vtol_one_chain* vtol_one_chain::cast_to_one_chain | ( | ) | const [inline, virtual] |
Return `this' if `this' is an one_chain, 0 otherwise.
Reimplemented from vtol_topology_object.
Definition at line 112 of file vtol_one_chain.h.
| virtual vtol_one_chain* vtol_one_chain::cast_to_one_chain | ( | ) | [inline, virtual] |
Return `this' if `this' is an one_chain, 0 otherwise.
Reimplemented from vtol_topology_object.
Definition at line 116 of file vtol_one_chain.h.
| void vtol_one_chain::link_inferior | ( | vtol_edge_sptr | inf | ) |
Definition at line 24 of file vtol_one_chain.cxx.
| void vtol_one_chain::unlink_inferior | ( | vtol_edge_sptr | inf | ) |
Definition at line 29 of file vtol_one_chain.cxx.
| virtual bool vtol_one_chain::valid_inferior_type | ( | vtol_topology_object const * | inferior | ) | const [inline, virtual] |
Is `inferior' type valid for `this' ?.
Implements vtol_topology_object.
Definition at line 127 of file vtol_one_chain.h.
| bool vtol_one_chain::valid_inferior_type | ( | vtol_edge_sptr const & | ) | const [inline] |
Definition at line 129 of file vtol_one_chain.h.
| bool vtol_one_chain::valid_inferior_type | ( | vtol_edge_2d_sptr const & | ) | const [inline] |
Definition at line 130 of file vtol_one_chain.h.
| bool vtol_one_chain::valid_superior_type | ( | vtol_face_sptr const & | ) | const [inline] |
Definition at line 131 of file vtol_one_chain.h.
| bool vtol_one_chain::valid_superior_type | ( | vtol_face_2d_sptr const & | ) | const [inline] |
Definition at line 132 of file vtol_one_chain.h.
| virtual bool vtol_one_chain::valid_chain_type | ( | vtol_chain_sptr | chain_inf_sup | ) | const [inline, virtual] |
Is `chain_inf_sup' type valid for `this' ?.
Implements vtol_chain.
Definition at line 136 of file vtol_one_chain.h.
| bool vtol_one_chain::valid_chain_type | ( | vtol_one_chain_sptr const & | ) | const [inline] |
Definition at line 138 of file vtol_one_chain.h.
| vertex_list * vtol_one_chain::outside_boundary_vertices | ( | ) | [virtual] |
| zero_chain_list * vtol_one_chain::outside_boundary_zero_chains | ( | ) | [virtual] |
| edge_list * vtol_one_chain::outside_boundary_edges | ( | ) | [virtual] |
| one_chain_list * vtol_one_chain::outside_boundary_one_chains | ( | ) | [virtual] |
| one_chain_list * vtol_one_chain::inferior_one_chains | ( | ) | [virtual] |
| one_chain_list * vtol_one_chain::superior_one_chains | ( | ) | [virtual] |
| void vtol_one_chain::reverse_directions | ( | ) | [virtual] |
| vtol_one_chain * vtol_one_chain::copy_with_arrays | ( | topology_list & | verts, | |
| topology_list & | edges | |||
| ) | const [virtual] |
Definition at line 126 of file vtol_one_chain.cxx.
| void vtol_one_chain::compute_bounding_box | ( | void | ) | const [virtual] |
Computes the bounding box of a vtol_one_chain from the edges.
Just get the bounding box for each edge and update this's box accordingly. Note that the computation is done independently of dimension.
Reimplemented from vtol_topology_object.
Definition at line 473 of file vtol_one_chain.cxx.
| vtol_edge_sptr vtol_one_chain::edge | ( | int | i | ) | const [virtual] |
Definition at line 13 of file vtol_one_chain.cxx.
| int vtol_one_chain::num_edges | ( | ) | const [inline] |
Definition at line 161 of file vtol_one_chain.h.
| void vtol_one_chain::determine_edge_directions | ( | ) | [virtual] |
Redetermining the directions of all edges in the onechain.
Require: is_cycle()
Definition at line 494 of file vtol_one_chain.cxx.
| void vtol_one_chain::add_edge | ( | vtol_edge_sptr const & | , | |
| bool | ||||
| ) | [virtual] |
| void vtol_one_chain::add_edge | ( | vtol_edge_2d_sptr const & | , | |
| bool | ||||
| ) | [virtual] |
Definition at line 581 of file vtol_one_chain.cxx.