App
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
app::Rect Class Reference

Třída reprezentuje obdélník v ss obrazu pomocí celočíselných souřadnic. More...

#include <Geometry.hpp>

Public Member Functions

 Rect ()
 Vytvoří neplatný obdélník kde tl = br = (0, 0).
 
 Rect (const Point tl, const Point br)
 Vytvoř obdélník mezi zadanými body.
 
 Rect (int tlx, int tly, int brx, int bry)
 Vytvoří obdélník ze zadaných souřadnic.
 
int isValid () const
 Vrací 1 pokud je obdélník platný.
 
int isPositive () const
 Vrací 1 pokud obdélník leží celý v 1. kvadrantu.
 
int getWidth () const
 Vrací šířku obdélníku.
 
int getHeight () const
 Vrací výšku obdélníku.
 
int moveTo (const Point ntl)
 Posune obdélník na danou pozici.
 
Rect makeCopyAt (const Point ntl) const
 Vrací kopii obdélníku na dané pozici.
 
int resizeBy (const Vect dtl, const Vect dbr)
 Změní velikost obdélníku.
 
int getDifference (const Rect &other, Vect &dtl, Vect &dbr) const
 Do vektorů dtl a dbr uloží rozdíl velikostí.
 

Static Public Member Functions

static Rect makeCopyAt (const Rect &src, Point ntl)
 Vrací kopii obdélníku na dané pozici.
 
static Rect makeResizedCopy (const Rect &src, const Vect dtl, const Vect dbr)
 Vrací kopii obdélníku upravenou o dané vektory.
 
static Rect getIntersection (const Rect &rct1, const Rect &rct2)
 Vrátí průnik obdélníků.
 

Public Attributes

Point tl
 Horní levý roh (TopLeft).
 
Point br
 Dolní pravý roh (BottomRight).
 

Detailed Description

Třída reprezentuje obdélník v ss obrazu pomocí celočíselných souřadnic.

Třída reprezentuje obdélník v ss obrazu pomocí celočíselných souřadnic. Uvažuje se kladný směr osy x horizontálně doprava a kladný směr osy y vertikálně dolů.

Definition at line 104 of file Geometry.hpp.

Constructor & Destructor Documentation

app::Rect::Rect ( )
inline

Vytvoří neplatný obdélník kde tl = br = (0, 0).

Definition at line 111 of file Geometry.hpp.

{ tl = Point(0, 0); br = Point(0, 0); }
app::Rect::Rect ( const Point  tl,
const Point  br 
)
inline

Vytvoř obdélník mezi zadanými body.

Vytvoří obdélník mezi zadanými body.

Parameters
tlHorní levý roh vytvářeného obdélníku.
brDolní pravý roh vytvářeného obdélníku.

Definition at line 119 of file Geometry.hpp.

{ this->tl = tl; this->br = br; }
app::Rect::Rect ( int  tlx,
int  tly,
int  brx,
int  bry 
)
inline

Vytvoří obdélník ze zadaných souřadnic.

Vytvoří obdélník ze zadaných souřadnic.

Parameters
tlxx-ová souřadnice horního levého rohu.
tlyy-ová souřadnice horního levého rohu.
brxx-ová souřadnice dolního pravého rohu.
bryy-ová souřadnice dolního pravého rohu.

Definition at line 129 of file Geometry.hpp.

{ tl = Point(tlx, tly); br = Point(brx, bry); }

Member Function Documentation

int app::Rect::getDifference ( const Rect other,
Vect dtl,
Vect dbr 
) const

Do vektorů dtl a dbr uloží rozdíl velikostí.

Vytvoří vektor dtl tak, že jako jeho počáteční bod nastaví horní levý roh tohoto obdélníku a jako koncový bod nastaví horní levý roh obdélníku other. Analogicky nastaví vektor dbr.

Parameters
otherObdélník, ke kterému zjišťujeme rozdíl.
dtlRozdílový vektor horního levého rohu.
dbrRozdílový vektor dolního pravého rohu.
Returns
vrací 0 při úspěchu, jinak kód chyby.

Definition at line 55 of file Geometry.cpp.

{
dtl.from = tl;
dtl.to = other.tl;
dbr.from = br;
dbr.to = other.br;
return 0;
}
int app::Rect::getHeight ( ) const
inline

Vrací výšku obdélníku.

Definition at line 149 of file Geometry.hpp.

{ return (br.y - tl.y); }
Rect app::Rect::getIntersection ( const Rect rct1,
const Rect rct2 
)
static

Vrátí průnik obdélníků.

Vrátí průnik obdélníků.

Nekontroluje, zda vznikne platný obdélník, ale kontroluje platnost vstupních obdélníků. Pokud nejsou tyto platné, vrací Rect(0, 0, 0, 0).

Parameters
rct1První obdélník.
rct2Druhý obdélník.
Returns
Průnik obdélníků.

Definition at line 43 of file Geometry.cpp.

{
// tato validace nutná - jinak se může vrátit platný rect, ale nesmysl
if ( !(rct1.isValid() && rct2.isValid()) ) { return Rect(0, 0, 0, 0); }
int t, l, b, r;
t = (rct1.tl.y > rct2.tl.y) ? rct1.tl.y : rct2.tl.y;
l = (rct1.tl.x > rct2.tl.x) ? rct1.tl.x : rct2.tl.x;
b = (rct1.br.y < rct2.br.y) ? rct1.br.y : rct2.br.y;
r = (rct1.br.x < rct2.br.x) ? rct1.br.x : rct2.br.x;
Rect res = Rect(Point(l, t), Point(r, b));
return res;
}
int app::Rect::getWidth ( ) const
inline

Vrací šířku obdélníku.

Definition at line 146 of file Geometry.hpp.

{ return (br.x - tl.x); }
int app::Rect::isPositive ( ) const
inline

Vrací 1 pokud obdélník leží celý v 1. kvadrantu.

Vrací 1 pokud obdélník leží celý v 1. kvadrantu (tedy pokud levý horní roh i pravý dolní roh leží v 1. kvadrantu, jejich souřadnice jsou >= 0), nekontroluje se platnost obdélníku!

Returns
Vrací 1 pokud obdélník leží celý v 1. kvadrantu, jinak vrací 0.

Definition at line 143 of file Geometry.hpp.

{ if (tl.isPositive() && br.isPositive()) { return 1; } else { return 0; } }
int app::Rect::isValid ( ) const
inline

Vrací 1 pokud je obdélník platný.

Vrací 1 pokud je obdélník platný, tedy horní levý roh je opravdu horní levý roh ve stanoveném souřadném systému

Returns
1 pokud je obdélník platný, 0 pokud není.

Definition at line 136 of file Geometry.hpp.

{ if ((getWidth() <=0) || (getHeight() <= 0)) { return 0; } else { return 1; } }
Rect app::Rect::makeCopyAt ( const Point  ntl) const

Vrací kopii obdélníku na dané pozici.

Vrací obdélník, který vznikne posunem obdélníku takovým, že jeho horní levý roh bude totožný s bodem ntl.

Parameters
ntlSouřadnice horního levého rohu nového obdélníka.
Returns
Posunutá kopie obdélníku.

Definition at line 19 of file Geometry.cpp.

{
int dx = ntl.x - tl.x;
int dy = ntl.y - tl.y;
return Rect(ntl, Point (br.x + dx, br.y + dy));
}
Rect app::Rect::makeCopyAt ( const Rect src,
Point  ntl 
)
static

Vrací kopii obdélníku na dané pozici.

Vrací obdélník, který vznikne posunem obdélníku takovým, že jeho horní levý roh bude totožný s bodem ntl.

Parameters
srcKopírovaný obdélník.
ntlSouřadnice horního levého rohu nového obdélníka.
Returns
Posunutá kopie obdélníku.

Definition at line 25 of file Geometry.cpp.

{
int dx = ntl.x - src.tl.x;
int dy = ntl.y - src.tl.y;
return Rect(ntl, Point (src.br.x + dx, src.br.y + dy));
}
Rect app::Rect::makeResizedCopy ( const Rect src,
const Vect  dtl,
const Vect  dbr 
)
static

Vrací kopii obdélníku upravenou o dané vektory.

Vrací kopii obdélníku změněnou tak, že se posune jeho horní levý roh o velikost vektoru dtl a dolní pravý roh o velikost vektoru dbr.

Nekontroluje, zda vznikne neplatný obdélník!!!

Parameters
srcKopírovaný obdélník.
dtlVektor posunu horního levého rohu.
dbrVektor posunu dolního pravého rohu.
Returns
0 při úspěchu, jinak kód chyby.

Definition at line 39 of file Geometry.cpp.

{
return Rect(src.tl.x + dtl.getdx(), src.tl.y + dtl.getdy(), src.br.x + dbr.getdx(), src.br.y + dbr.getdy());
}
int app::Rect::moveTo ( const Point  ntl)

Posune obdélník na danou pozici.

Posune obdélník na novou pozici tak, že jeho horní levý roh bude totožný s bodem ntl

Parameters
ntlSouřadnice nového horního levého rohu.
Returns
0 při úspěchu, jinak kód chyby.

Definition at line 10 of file Geometry.cpp.

{
int dx = ntl.x - tl.x;
int dy = ntl.y - tl.y;
tl = ntl;
br.x += dx;
br.y += dy;
return 0;
}
int app::Rect::resizeBy ( const Vect  dtl,
const Vect  dbr 
)

Změní velikost obdélníku.

Změní velikost obdélníku tak, že posune jeho horní levý roh o velikost vektoru dtl a dolní pravý roh o velikost vektoru dbr.

Nekontroluje, zda vznikne neplatný obdélník!!!

Parameters
dtlVektor posunu horního levého rohu.
dbrVektor posunu dolního pravého rohu.
Returns
0 při úspěchu, jinak kód chyby.

Definition at line 31 of file Geometry.cpp.

{
tl.x += dtl.getdx();
tl.y += dtl.getdy();
br.x += dbr.getdx();
br.y += dbr.getdy();
return 0;
}

Member Data Documentation

Point app::Rect::br

Dolní pravý roh (BottomRight).

Definition at line 108 of file Geometry.hpp.

Point app::Rect::tl

Horní levý roh (TopLeft).

Definition at line 107 of file Geometry.hpp.


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