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 
85  RegionRect(void);
86 
87 
96  RegionRect(int L0,int C0,unsigned int Nlin,unsigned int Ncol);
97 
99 
104 public:
105 
116  void Print(std::string str="") const;
117 
123  void PrintStylized(std::string str="") const;
124 
131  void MakeEmpty(void);
146  bool IsEmpty(void) const;
147 
148 
156  bool IsInside(const Pds::RegionRect &R) const;
157 
158 
166  bool IsInside(const Pds::Matrix &A) const;
167 
175  template <class Datum>
176  bool IsInside(const Pds::Array<Datum> &A) const;
177 
178 
196  bool Travel(int DL,int DC);
197 
205  bool Move(int L0,int C0);
206 
224 
234 
251  static Pds::RegionRect Intersection(const std::vector<Pds::RegionRect> &B);
252 
261  static Pds::RegionRect Superior(const std::vector<Pds::RegionRect> &B);
262 
271  static Pds::RegionRect Mean(const std::vector<Pds::RegionRect> &B);
287  int FilePrint(FILE *fd) const;
288 
307  bool FileScan(FILE *fd);
308 
309 
325  bool LoadString(const std::string &str);
326 
332 }; // Class RegionRect
333 
334 } // namespace Pds
335 
336 
341 #endif
342 
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:47

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed