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
51namespace Pds{
52
53class Matrix;
54template <class Datum> class Array;
55
64{
65public:
67 int L0;
69 int C0;
71 unsigned int Nlin;
73 unsigned int Ncol;
74public:
75
86
87
96 RegionRect(int L0,int C0,unsigned int Nlin,unsigned int Ncol);
97
99
104public:
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:71
La clase tipo Pds::Matrix . Esta clase genera una matriz de Nlin lineas y Ncol columnas....
Definition: Matrix.hpp:96
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
const std::string Matrix
Tag de un objeto de tipo Pds::Ra::Tag::Matrix.
Definition: RaDefines.hpp:402
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 espacio para Pds (Procesamiento Digital de Senales)
Definition: AbstractRV.hpp:42

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed