Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Types

mln::p_line2d Class Reference
[Basic types]

2D discrete line of points. More...

#include <p_line2d.hh>

Inheritance diagram for mln::p_line2d:
Inheritance graph

List of all members.

Public Types

typedef p_indexed_bkd_piter
< self_
bkd_piter
 Backward Site_Iterator associated type.
typedef Site_Set< void > category
typedef point2d element
 Element associated type.
typedef p_line2d exact_t
typedef p_indexed_fwd_piter
< self_
fwd_piter
 Forward Site_Iterator associated type.
typedef p_indexed_fwd_piter
< self_
piter
 Site_Iterator associated type.
typedef p_indexed_psite< self_psite
 Psite associated type.
typedef const box2dq_box
 Box (qualified) associated type.
typedef subject< point2d >::ret site
 Site associated type.

Public Member Functions

const box2dbbox () const
 Give the exact bounding box.
const point2dbegin () const
 Give the point that begins the line.
const point2dend () const
 Give the point that ends the line.
bool has (const util::index &i) const
 Test if index i belongs to this point set.
bool has (const psite &p) const
 Test if p belongs to this point set.
bool is_empty () const
 Test if the site set is empty.
bool is_valid () const
 Test if this line is valid, i.e., initialized.
std::size_t memory_size () const
 Return the size of this site set in memory.
unsigned nsites () const
 Give the number of points.
const point2doperator[] (unsigned i) const
 Return the i-th point of the line.
 p_line2d (const point2d &beg, const point2d &end, bool is_end_excluded=false)
 Constructor from point beg to point end.
 p_line2d ()
 Constructor without argument.
const std::vector< point2d > & std_vector () const
 Return the corresponding std::vector of points.
algebra::vec< 2, float > to_vec () const

Protected Member Functions

void compute_ (const point2d &beg, const point2d &end, bool is_end_excluded)

Protected Attributes

p_array< point2darr_
box2d bb_

Private Types

typedef p_line2d self_

Detailed Description

2D discrete line of points.

It is based on p_array.

Definition at line 79 of file p_line2d.hh.


Member Typedef Documentation

Backward Site_Iterator associated type.

Definition at line 97 of file p_line2d.hh.

typedef Site_Set<void> mln::Site_Set< p_line2d >::category [inherited]

Reimplemented from mln::Object< p_line2d >.

Definition at line 67 of file mln/core/concept/site_set.hh.

Element associated type.

Definition at line 85 of file p_line2d.hh.

typedef p_line2d mln::Object< p_line2d >::exact_t [inherited]

Definition at line 173 of file object.hh.

Forward Site_Iterator associated type.

Definition at line 94 of file p_line2d.hh.

Site_Iterator associated type.

Definition at line 91 of file p_line2d.hh.

Psite associated type.

Definition at line 88 of file p_line2d.hh.

typedef const box2d& mln::p_line2d::q_box

Box (qualified) associated type.

Definition at line 132 of file p_line2d.hh.

typedef p_line2d mln::p_line2d::self_ [private]

Definition at line 81 of file p_line2d.hh.

Site associated type.

Definition at line 55 of file site_set_base.hh.


Constructor & Destructor Documentation

mln::p_line2d::p_line2d (  )  [inline]

Constructor without argument.

Definition at line 161 of file p_line2d.hh.

References is_valid().

mln::p_line2d::p_line2d ( const point2d beg,
const point2d end,
bool  is_end_excluded = false 
) [inline]

Constructor from point beg to point end.

Definition at line 167 of file p_line2d.hh.

References compute_(), and is_valid().


Member Function Documentation

const box2d & mln::p_line2d::bbox (  )  const [inline]

Give the exact bounding box.

Definition at line 273 of file p_line2d.hh.

References bb_, and is_valid().

const point2d & mln::p_line2d::begin (  )  const [inline]

Give the point that begins the line.

Definition at line 307 of file p_line2d.hh.

References arr_, and is_valid().

Referenced by compute_(), mln::debug::draw_graph(), mln::trait::set_precise_unary_< op::ord, p_line2d >::strict(), and to_vec().

void mln::p_line2d::compute_ ( const point2d beg,
const point2d end,
bool  is_end_excluded 
) [inline, protected]
const point2d & mln::p_line2d::end (  )  const [inline]

Give the point that ends the line.

Definition at line 315 of file p_line2d.hh.

References arr_, is_valid(), and nsites().

Referenced by compute_(), mln::debug::draw_graph(), mln::trait::set_precise_unary_< op::ord, p_line2d >::strict(), and to_vec().

bool mln::p_line2d::has ( const psite p  )  const [inline]
bool mln::p_line2d::has ( const util::index i  )  const [inline]

Test if index i belongs to this point set.

Definition at line 251 of file p_line2d.hh.

References nsites().

bool mln::internal::site_set_base_< point2d , p_line2d >::is_empty (  )  const [inherited]

Test if the site set is empty.

This final method dispatches to is_empty_ whose default implementation relies on the 'nsites' method.

bool mln::p_line2d::is_valid (  )  const [inline]

Test if this line is valid, i.e., initialized.

Definition at line 258 of file p_line2d.hh.

References arr_, bb_, mln::implies(), mln::internal::site_set_base_< P, E >::is_empty(), and mln::box< P >::is_valid().

Referenced by bbox(), begin(), end(), and p_line2d().

std::size_t mln::p_line2d::memory_size (  )  const [inline]

Return the size of this site set in memory.

Definition at line 323 of file p_line2d.hh.

References arr_, and mln::p_array< P >::memory_size().

unsigned mln::p_line2d::nsites (  )  const [inline]

Give the number of points.

Definition at line 266 of file p_line2d.hh.

References arr_, and mln::p_array< P >::nsites().

Referenced by end(), has(), and operator[]().

const point2d & mln::p_line2d::operator[] ( unsigned  i  )  const [inline]

Return the i-th point of the line.

Definition at line 299 of file p_line2d.hh.

References arr_, and nsites().

const std::vector< point2d > & mln::p_line2d::std_vector (  )  const [inline]

Return the corresponding std::vector of points.

Definition at line 281 of file p_line2d.hh.

References arr_, and mln::p_array< P >::std_vector().

algebra::vec< 2, float > mln::p_line2d::to_vec (  )  const [inline]

Definition at line 289 of file p_line2d.hh.

References begin(), and end().


Member Data Documentation

Definition at line 149 of file p_line2d.hh.

Referenced by begin(), compute_(), end(), is_valid(), memory_size(), nsites(), operator[](), and std_vector().

Definition at line 150 of file p_line2d.hh.

Referenced by bbox(), compute_(), and is_valid().