Home | Develop | Download | Contact
RegionRect.hpp
1 /*
2  * RegionRect.hpp
3  *
4  * Copyright 2018 Fernando Pujaico Rivera <fernando.pujaico.rivera@gmail.com>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19  * MA 02110-1301, USA.
20  *
21  */
22 
35 #ifndef __PDS_REGIONRECT_HPP__
36 #define __PDS_REGIONRECT_HPP__
37 
38 
48 #include <sstream> // std::ostringstream
49 #include <vector>
50 
51 namespace Pds{
52 
53 class Matrix;
54 template <class Datum> class Array;
55 
64 {
65 public:
67  int L0;
69  int C0;
71  unsigned int Nlin;
73  unsigned int Ncol;
74 public:
75 
86  RegionRect(void);
87 
88 
98  RegionRect(int L0,int C0,unsigned int Nlin,unsigned int Ncol);
99 
101 
106 public:
107 
118  void Print(std::string str="") const;
119 
125  void PrintStylized(std::string str="") const;
126 
133  void MakeEmpty(void);
148  bool IsEmpty(void) const;
149 
150 
158  bool IsInside(const Pds::RegionRect &R) const;
159 
160 
168  bool IsInside(const Pds::Matrix &A) const;
169 
177  template <class Datum>
178  bool IsInside(const Pds::Array<Datum> &A) const;
179 
180 
198  bool Travel(int DL,int DC);
199 
207  bool Move(int L0,int C0);
208 
226 
236 
253  static Pds::RegionRect Intersection(const std::vector<Pds::RegionRect> &B);
254 
263  static Pds::RegionRect Superior(const std::vector<Pds::RegionRect> &B);
264 
273  static Pds::RegionRect Mean(const std::vector<Pds::RegionRect> &B);
289  int FilePrint(FILE *fd) const;
290 
309  bool FileScan(FILE *fd);
310 
311 
327  bool LoadString(const std::string &str);
328 
334 }; // Class RegionRect
335 
336 } // namespace Pds
337 
338 
343 #endif
344 
La clase tipo Array . Esta clase genera una agrupación de 2 datos. Para usar incluir Pds/Array.
Definition: Array.hpp:68
La clase tipo Pds::Matrix . Esta clase genera una matriz de Nlin lineas y Ncol columnas....
Definition: Matrix.hpp:86
La estructura tipo Pds::RegionRect . Esta estructura genera una region. Para usar incluir <Pds/Region...
Definition: RegionRect.hpp:64
unsigned int Ncol
Definition: RegionRect.hpp:73
unsigned int Nlin
Definition: RegionRect.hpp:71
RegionRect(void)
Crea un objeto de tipo Pds::RegionRect.
static Pds::RegionRect Intersection(const std::vector< Pds::RegionRect > &B)
Intersecta las regiones en el vector de regiones B.
void MakeEmpty(void)
libera los datos internos de la region haciendola nula. es decir con todos los valores iguales cero.
bool IsEmpty(void) const
Verifica si la region es nula es decir con lineas o columnas y anchos cero.
bool IsInside(const Pds::Matrix &A) const
Indica si la region Rin está dentro de la region de una matriz.
RegionRect(int L0, int C0, unsigned int Nlin, unsigned int Ncol)
Crea la variable Pds::RegionRect.
void PrintStylized(std::string str="") const
Muestra en pantalla el contenido de Pds::RegionRect, en el formato (l0,c0)[nlin,ncol].
Pds::RegionRect Superior(const Pds::RegionRect &B) const
Retorna la region superior a la actual y a la region B.
static Pds::RegionRect Mean(const std::vector< Pds::RegionRect > &B)
Retorna la region media de todas las regiones en el vector B.
bool Move(int L0, int C0)
Movimentada a (L0,C0).
bool FileScan(FILE *fd)
Carga de un FILE la variable Pds::RegionRect.
int FilePrint(FILE *fd) const
Imprime en un FILE la variable Pds::RegionRect.
bool IsInside(const Pds::Array< Datum > &A) const
Indica si la region Rin está dentro de la region de una matriz.
Pds::RegionRect Intersection(const Pds::RegionRect &B) const
Intersecta la region actual con la region B.
bool Travel(int DL, int DC)
mueve la posicion de la region suma R+(L,C).
bool IsInside(const Pds::RegionRect &R) const
Indica si la region Rin está dentro de la region R.
bool LoadString(const std::string &str)
Carga la variable de tipo Pds::RegionRect desde una cadena data.
static Pds::RegionRect Superior(const std::vector< Pds::RegionRect > &B)
Retorna la region superior a todas las regiones en el vector B.
void Print(std::string str="") const
Muestra en pantalla el contenido de Pds::RegionRect, elementos separados por tabulador.
Nombre de espacion para PDS (Procesamiento Digital de Senales)
Definition: RaFile.hpp:46

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed