[Lemon-commits] Alpar Juttner: Merge
Lemon HG
hg at lemon.cs.elte.hu
Tue Sep 2 11:23:50 CEST 2008
details: http://lemon.cs.elte.hu/hg/lemon/rev/914c5432be97
changeset: 255:914c5432be97
user: Alpar Juttner <alpar [at] cs.elte.hu>
date: Tue Sep 02 10:23:23 2008 +0100
description:
Merge
diffstat:
5 files changed, 115 insertions(+), 65 deletions(-)
lemon/bfs.h | 5 +
lemon/dfs.h | 5 +
lemon/dim2.h | 130 ++++++++++++++++++++++++++++++++------------------
lemon/graph_to_eps.h | 8 +--
test/dim_test.cc | 32 ++++++------
diffs (truncated from 434 to 300 lines):
diff -r a1ffc9099c25 -r 914c5432be97 lemon/bfs.h
--- a/lemon/bfs.h Tue Sep 02 00:44:17 2008 +0200
+++ b/lemon/bfs.h Tue Sep 02 10:23:23 2008 +0100
@@ -1262,6 +1262,11 @@
/// class. It works with callback mechanism, the BfsVisit object calls
/// the member functions of the \c Visitor class on every BFS event.
///
+ /// This interface of the BFS algorithm should be used in special cases
+ /// when extra actions have to be performed in connection with certain
+ /// events of the BFS algorithm. Otherwise consider to use Bfs or bfs()
+ /// instead.
+ ///
/// \tparam _Digraph The type of the digraph the algorithm runs on.
/// The default value is
/// \ref ListDigraph. The value of _Digraph is not used directly by
diff -r a1ffc9099c25 -r 914c5432be97 lemon/dfs.h
--- a/lemon/dfs.h Tue Sep 02 00:44:17 2008 +0200
+++ b/lemon/dfs.h Tue Sep 02 10:23:23 2008 +0100
@@ -1209,6 +1209,11 @@
/// class. It works with callback mechanism, the DfsVisit object calls
/// the member functions of the \c Visitor class on every DFS event.
///
+ /// This interface of the DFS algorithm should be used in special cases
+ /// when extra actions have to be performed in connection with certain
+ /// events of the DFS algorithm. Otherwise consider to use Dfs or dfs()
+ /// instead.
+ ///
/// \tparam _Digraph The type of the digraph the algorithm runs on.
/// The default value is
/// \ref ListDigraph. The value of _Digraph is not used directly by
diff -r a1ffc9099c25 -r 914c5432be97 lemon/dim2.h
--- a/lemon/dim2.h Tue Sep 02 00:44:17 2008 +0200
+++ b/lemon/dim2.h Tue Sep 02 10:23:23 2008 +0100
@@ -28,8 +28,7 @@
/// The class \ref lemon::dim2::Point "dim2::Point" implements
/// a two dimensional vector with the usual operations.
///
-/// The class \ref lemon::dim2::BoundingBox "dim2::BoundingBox"
-/// can be used to determine
+/// The class \ref lemon::dim2::Box "dim2::Box" can be used to determine
/// the rectangular bounding box of a set of
/// \ref lemon::dim2::Point "dim2::Point"'s.
@@ -44,7 +43,7 @@
/// \addtogroup misc
/// @{
- /// A simple two dimensional vector (plain vector) implementation
+ /// Two dimensional vector (plain vector)
/// A simple two dimensional vector (plain vector) implementation
/// with the usual vector operations.
@@ -221,7 +220,7 @@
template<typename T>
inline std::ostream& operator<<(std::ostream &os, const Point<T>& z)
{
- os << "(" << z.x << ", " << z.y << ")";
+ os << "(" << z.x << "," << z.y << ")";
return os;
}
@@ -260,67 +259,67 @@
- /// A class to calculate or store the bounding box of plain vectors.
+ /// Bounding box of plain vectors (\ref Point points).
- /// A class to calculate or store the bounding box of plain vectors.
- ///
- template<typename T>
- class BoundingBox {
+ /// A class to calculate or store the bounding box of plain vectors
+ /// (\ref Point points).
+ template<typename T>
+ class Box {
Point<T> _bottom_left, _top_right;
bool _empty;
public:
- ///Default constructor: creates an empty bounding box
- BoundingBox() { _empty = true; }
+ ///Default constructor: creates an empty box
+ Box() { _empty = true; }
- ///Construct an instance from one point
- BoundingBox(Point<T> a) {
+ ///Construct a box from one point
+ Box(Point<T> a) {
_bottom_left = _top_right = a;
_empty = false;
}
- ///Construct an instance from two points
+ ///Construct a box from two points
- ///Construct an instance from two points.
+ ///Construct a box from two points.
///\param a The bottom left corner.
///\param b The top right corner.
///\warning The coordinates of the bottom left corner must be no more
///than those of the top right one.
- BoundingBox(Point<T> a,Point<T> b)
+ Box(Point<T> a,Point<T> b)
{
_bottom_left = a;
_top_right = b;
_empty = false;
}
- ///Construct an instance from four numbers
+ ///Construct a box from four numbers
- ///Construct an instance from four numbers.
+ ///Construct a box from four numbers.
///\param l The left side of the box.
///\param b The bottom of the box.
///\param r The right side of the box.
///\param t The top of the box.
///\warning The left side must be no more than the right side and
///bottom must be no more than the top.
- BoundingBox(T l,T b,T r,T t)
+ Box(T l,T b,T r,T t)
{
_bottom_left=Point<T>(l,b);
_top_right=Point<T>(r,t);
_empty = false;
}
- ///Return \c true if the bounding box is empty.
+ ///Return \c true if the box is empty.
- ///Return \c true if the bounding box is empty (i.e. return \c false
+ ///Return \c true if the box is empty (i.e. return \c false
///if at least one point was added to the box or the coordinates of
///the box were set).
///
- ///The coordinates of an empty bounding box are not defined.
+ ///The coordinates of an empty box are not defined.
bool empty() const {
return _empty;
}
- ///Make the BoundingBox empty
+ ///Make the box empty
void clear() {
_empty = true;
}
@@ -328,7 +327,7 @@
///Give back the bottom left corner of the box
///Give back the bottom left corner of the box.
- ///If the bounding box is empty, then the return value is not defined.
+ ///If the box is empty, then the return value is not defined.
Point<T> bottomLeft() const {
return _bottom_left;
}
@@ -344,7 +343,7 @@
///Give back the top right corner of the box
///Give back the top right corner of the box.
- ///If the bounding box is empty, then the return value is not defined.
+ ///If the box is empty, then the return value is not defined.
Point<T> topRight() const {
return _top_right;
}
@@ -360,7 +359,7 @@
///Give back the bottom right corner of the box
///Give back the bottom right corner of the box.
- ///If the bounding box is empty, then the return value is not defined.
+ ///If the box is empty, then the return value is not defined.
Point<T> bottomRight() const {
return Point<T>(_top_right.x,_bottom_left.y);
}
@@ -377,7 +376,7 @@
///Give back the top left corner of the box
///Give back the top left corner of the box.
- ///If the bounding box is empty, then the return value is not defined.
+ ///If the box is empty, then the return value is not defined.
Point<T> topLeft() const {
return Point<T>(_bottom_left.x,_top_right.y);
}
@@ -394,7 +393,7 @@
///Give back the bottom of the box
///Give back the bottom of the box.
- ///If the bounding box is empty, then the return value is not defined.
+ ///If the box is empty, then the return value is not defined.
T bottom() const {
return _bottom_left.y;
}
@@ -410,7 +409,7 @@
///Give back the top of the box
///Give back the top of the box.
- ///If the bounding box is empty, then the return value is not defined.
+ ///If the box is empty, then the return value is not defined.
T top() const {
return _top_right.y;
}
@@ -426,7 +425,7 @@
///Give back the left side of the box
///Give back the left side of the box.
- ///If the bounding box is empty, then the return value is not defined.
+ ///If the box is empty, then the return value is not defined.
T left() const {
return _bottom_left.x;
}
@@ -442,7 +441,7 @@
/// Give back the right side of the box
/// Give back the right side of the box.
- ///If the bounding box is empty, then the return value is not defined.
+ ///If the box is empty, then the return value is not defined.
T right() const {
return _top_right.x;
}
@@ -458,7 +457,7 @@
///Give back the height of the box
///Give back the height of the box.
- ///If the bounding box is empty, then the return value is not defined.
+ ///If the box is empty, then the return value is not defined.
T height() const {
return _top_right.y-_bottom_left.y;
}
@@ -466,12 +465,12 @@
///Give back the width of the box
///Give back the width of the box.
- ///If the bounding box is empty, then the return value is not defined.
+ ///If the box is empty, then the return value is not defined.
T width() const {
return _top_right.x-_bottom_left.x;
}
- ///Checks whether a point is inside a bounding box
+ ///Checks whether a point is inside the box
bool inside(const Point<T>& u) const {
if (_empty)
return false;
@@ -481,11 +480,11 @@
}
}
- ///Increments a bounding box with a point
+ ///Increments the box with a point
- ///Increments a bounding box with a point.
+ ///Increments the box with a point.
///
- BoundingBox& add(const Point<T>& u){
+ Box& add(const Point<T>& u){
if (_empty) {
_bottom_left = _top_right = u;
_empty = false;
@@ -499,11 +498,11 @@
return *this;
}
- ///Increments a bounding box to contain another bounding box
+ ///Increments the box to contain another box
- ///Increments a bounding box to contain another bounding box.
+ ///Increments the box to contain another box.
///
- BoundingBox& add(const BoundingBox &u){
+ Box& add(const Box &u){
if ( !u.empty() ){
add(u._bottom_left);
add(u._top_right);
@@ -511,12 +510,12 @@
return *this;
}
- ///Intersection of two bounding boxes
+ ///Intersection of two boxes
- ///Intersection of two bounding boxes.
+ ///Intersection of two boxes.
///
- BoundingBox operator&(const BoundingBox& u) const {
- BoundingBox b;
+ Box operator&(const Box& u) const {
+ Box b;
if (_empty || u._empty) {
b._empty = true;
} else {
@@ -530,8 +529,49 @@
return b;
}
- };//class Boundingbox
+ };//class Box
+
+ ///Read a box from a stream
More information about the Lemon-commits
mailing list