xc
Pos3dArray3d.h
1 // -*-c++-*-
2 //----------------------------------------------------------------------------
3 // xc utils library; general purpose classes and functions.
4 //
5 // Copyright (C) Luis C. Pérez Tato
6 //
7 // XC utils is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation, either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // This software is distributed in the hope that it will be useful, but
13 // WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with this program.
19 // If not, see <http://www.gnu.org/licenses/>.
20 //----------------------------------------------------------------------------
21 //Pos3dArray3d
22 
23 #ifndef ARRAY_3DPOS3D_H
24 #define ARRAY_3DPOS3D_H
25 
26 #include "Pos3d.h"
27 #include "PosArray3d.h"
28 
29 class Pos3dArray;
30 class Trf3d;
31 class Revolution3d;
32 
33 
35 //
37 class Pos3dArray3d: public PosArray3d<Pos3d>
38  {
39  public:
40  Pos3d getCenter(void) const;
41  Pos3dArray3d(const size_t &iLayers= 1);
42  Pos3dArray3d(const size_t &,const PosArray<Pos3d> &);
43  Pos3dArray3d(const PosArray<Pos3d> &l1_points,const PosArray<Pos3d> &l2_points,
44  const PosArray<Pos3d> &l3_points,const PosArray<Pos3d> &l4_points,
45  const size_t &ndiv_12,const size_t &ndiv_13);
46  Pos3dArray3d(const Pos3dArray &l1_points,const Pos3dArray &l2_points,
47  const Pos3dArray &l3_points,const Pos3dArray &l4_points,
48  const size_t &ndiv_12,const size_t &ndiv_13);
49  void Transform(const Trf3d &trf);
50  Pos3dArray3d Transform(const Trf3d &trf) const;
51  };
52 
53 class BND3d;
54 
55 Pos3dArray3d create_uniform_grid(const BND3d &bnd,const size_t &ndiv_x,const size_t &ndiv_y,const size_t &ndiv_z);
56 Pos3dArray3d create_revolution_volume(const Revolution3d &r,const Pos3dArray &m);
57 
58 #endif
Array of positions in a three-dimensional space.
Definition: Pos3dArray.h:38
"boundary" en tres dimensiones.
Definition: BND3d.h:34
Revolution transformation.
Definition: Revolution3d.h:37
Position array in a three-dimensional space.
Definition: Pos3dArray3d.h:37
Posición en tres dimensiones.
Definition: Pos3d.h:44
Three-dimensional transformation.
Definition: Trf3d.h:39
Base class for grids of positions in 3D.
Definition: PosArray3d.h:35