App

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

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

  tl | Horní levý roh vytvářeného obdélníku.
  br | Dolní 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

  tlx | x-ová souřadnice horního levého rohu.
  tly | y-ová souřadnice horního levého rohu.
  brx | x-ová souřadnice dolního pravého rohu.
  bry | y-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

  other | Obdélník, ke kterému zjišťujeme rozdíl.
  dtl | Rozdílový vektor horního levého rohu.
  dbr | Rozdí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

  rct1 | První obdélník.
  rct2 | Druhý 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

  ntl | Souř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

  src | Kopírovaný obdélník.
  ntl | Souř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

  src | Kopírovaný obdélník.
  dtl | Vektor posunu horního levého rohu.
  dbr | Vektor 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

  ntl | Souř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

  dtl | Vektor posunu horního levého rohu.
  dbr | Vektor 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:

- /home/xxx/eclipse_workspaces/app/appcore/jni/app/utils/Geometry.hpp
- /home/xxx/eclipse_workspaces/app/appcore/jni/app/utils/Geometry.cpp