WPSBox2< T > Class Template Reference

small class which defines a 2D WPSBox More...

#include <libwps_internal.h>

Classes

struct  PosSizeLt
 internal struct used to create sorted map, sorted first min then max More...

Public Types

typedef std::map< WPSBox2< T >, T, struct PosSizeLtMap
 map of WPSBox2

Public Member Functions

 WPSBox2 (Vec2< T > minPt=Vec2< T >(), Vec2< T > maxPt=Vec2< T >())
 constructor
template<class U>
 WPSBox2 (WPSBox2< U > const &p)
 generic constructor
Vec2< T > const & min () const
 the minimum 2D point (in x and in y)
Vec2< T > const & max () const
 the maximum 2D point (in x and in y)
Vec2< T > & min ()
 the minimum 2D point (in x and in y)
Vec2< T > & max ()
 the maximum 2D point (in x and in y)
Vec2< T > const & operator[] (int c) const
 the two extremum points which defined the box
Vec2< T > size () const
 the box size
Vec2< T > center () const
 the box center
void set (Vec2< T > const &x, Vec2< T > const &y)
 resets the data to minimum x and maximum y
void setMin (Vec2< T > const &x)
 resets the minimum point
void setMax (Vec2< T > const &y)
 resets the maximum point
void resizeFromMin (Vec2< T > const &sz)
 resize the box keeping the minimum
void resizeFromMax (Vec2< T > const &sz)
 resize the box keeping the maximum
void resizeFromCenter (Vec2< T > const &sz)
 resize the box keeping the center
template<class U>
void scale (U factor)
 scales all points of the box by factor
void extend (T val)
 extends the bdbox by (val, val) keeping the center
WPSBox2< T > getUnion (WPSBox2< T > const &box) const
 returns the union between this and box
WPSBox2< T > getIntersection (WPSBox2< T > const &box) const
 returns the intersection between this and box
bool operator== (WPSBox2< T > const &p) const
 comparison operator==
bool operator!= (WPSBox2< T > const &p) const
 comparison operator!=
bool operator< (WPSBox2< T > const &p) const
 comparison operator< : fist sorts min by Y,X values then max extremity
int cmp (WPSBox2< T > const &p) const
 comparison function : fist sorts min by Y,X values then max extremity

Protected Attributes

Vec2< T > m_pt [2]
 the two extremities

Friends

std::ostream & operator<< (std::ostream &o, WPSBox2< T > const &f)
 print data in form X0xY0<->X1xY1

Detailed Description

template<class T>
class WPSBox2< T >

small class which defines a 2D WPSBox

Member Typedef Documentation

◆ Map

template<class T>
typedef std::map<WPSBox2<T>, T,struct PosSizeLt> WPSBox2< T >::Map

map of WPSBox2

Constructor & Destructor Documentation

◆ WPSBox2() [1/2]

template<class T>
WPSBox2< T >::WPSBox2 ( Vec2< T > minPt = Vec2<T>(),
Vec2< T > maxPt = Vec2<T>() )
inlineexplicit

constructor

Referenced by WPSBox2< T >::PosSizeLt::operator()().

◆ WPSBox2() [2/2]

template<class T>
template<class U>
WPSBox2< T >::WPSBox2 ( WPSBox2< U > const & p)
inlineexplicit

generic constructor

Member Function Documentation

◆ center()

template<class T>
Vec2< T > WPSBox2< T >::center ( ) const
inline

the box center

Referenced by WPSGraphicShape::transform().

◆ cmp()

template<class T>
int WPSBox2< T >::cmp ( WPSBox2< T > const & p) const
inline

comparison function : fist sorts min by Y,X values then max extremity

Referenced by WPSBox2< int >::operator!=(), WPSBox2< T >::PosSizeLt::operator()(), WPSBox2< int >::operator<(), and WPSBox2< int >::operator==().

◆ extend()

template<class T>
void WPSBox2< T >::extend ( T val)
inline

extends the bdbox by (val, val) keeping the center

◆ getIntersection()

template<class T>
WPSBox2< T > WPSBox2< T >::getIntersection ( WPSBox2< T > const & box) const
inline

returns the intersection between this and box

◆ getUnion()

template<class T>
WPSBox2< T > WPSBox2< T >::getUnion ( WPSBox2< T > const & box) const
inline

◆ max() [1/2]

template<class T>
Vec2< T > & WPSBox2< T >::max ( )
inline

the maximum 2D point (in x and in y)

◆ max() [2/2]

template<class T>
Vec2< T > const & WPSBox2< T >::max ( ) const
inline

the maximum 2D point (in x and in y)

Referenced by WPSTransformation::operator*().

◆ min() [1/2]

template<class T>
Vec2< T > & WPSBox2< T >::min ( )
inline

the minimum 2D point (in x and in y)

◆ min() [2/2]

template<class T>
Vec2< T > const & WPSBox2< T >::min ( ) const
inline

the minimum 2D point (in x and in y)

Referenced by WPSTransformation::operator*().

◆ operator!=()

template<class T>
bool WPSBox2< T >::operator!= ( WPSBox2< T > const & p) const
inline

comparison operator!=

◆ operator<()

template<class T>
bool WPSBox2< T >::operator< ( WPSBox2< T > const & p) const
inline

comparison operator< : fist sorts min by Y,X values then max extremity

◆ operator==()

template<class T>
bool WPSBox2< T >::operator== ( WPSBox2< T > const & p) const
inline

comparison operator==

◆ operator[]()

template<class T>
Vec2< T > const & WPSBox2< T >::operator[] ( int c) const
inline

the two extremum points which defined the box

Parameters
cvalue 0 means the minimum, value 1 means the maximum

◆ resizeFromCenter()

template<class T>
void WPSBox2< T >::resizeFromCenter ( Vec2< T > const & sz)
inline

resize the box keeping the center

◆ resizeFromMax()

template<class T>
void WPSBox2< T >::resizeFromMax ( Vec2< T > const & sz)
inline

resize the box keeping the maximum

◆ resizeFromMin()

template<class T>
void WPSBox2< T >::resizeFromMin ( Vec2< T > const & sz)
inline

resize the box keeping the minimum

◆ scale()

template<class T>
template<class U>
void WPSBox2< T >::scale ( U factor)
inline

scales all points of the box by factor

◆ set()

template<class T>
void WPSBox2< T >::set ( Vec2< T > const & x,
Vec2< T > const & y )
inline

resets the data to minimum x and maximum y

◆ setMax()

template<class T>
void WPSBox2< T >::setMax ( Vec2< T > const & y)
inline

◆ setMin()

template<class T>
void WPSBox2< T >::setMin ( Vec2< T > const & x)
inline

◆ size()

◆ operator<<

template<class T>
std::ostream & operator<< ( std::ostream & o,
WPSBox2< T > const & f )
friend

print data in form X0xY0<->X1xY1

Member Data Documentation

◆ m_pt

template<class T>
Vec2<T> WPSBox2< T >::m_pt[2]
protected

The documentation for this class was generated from the following file:

Generated on Sat Jul 19 2025 05:24:40 for libwps by doxygen 1.14.0