xc
Ref3d3d.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 //Ref3d3d.h
22 
23 #ifndef REF3D3D_H
24 #define REF3D3D_H
25 
26 #include "Ref.h"
27 #include "utility/geom/coo_sys/Rect3d3dCooSys.h"
28 #include "utility/geom/d3/GeomObj3d.h"
29 #include "utility/geom/pos_vec/Pos3d.h"
30 
31 class Line3d;
32 class Vector3d;
33 class Plane;
34 
39 class Ref3d3d : public Ref<Rect3d3dCooSys>
40  {
41  public:
44 
45  public:
46  Ref3d3d(void);
47  explicit Ref3d3d(const Pos3d &o);
48  Ref3d3d(const Pos3d &,const Rect3d3dCooSys &);
49  Ref3d3d(const Pos3d &o,const Pos3d &p);
50  Ref3d3d(const Pos3d &p1,const Pos3d &p2,const Pos3d &p3);
51  Ref3d3d(const Pos3d &o,const Vector3d &v1,const Vector3d &v2);
52  Ref3d3d(const Pos3d &o,const Vector3d &v1,const Vector3d &v2,const Vector3d &v3);
53  Ref3d3d(const Line3d &r,const Pos3d &p);
54  Vector3d getIVector(void) const; //I unary vector.
55  Vector3d getJVector(void) const; //J unary vector.
56  Vector3d getKVector(void) const; //K unary vector.
57  Line3d getXAxis(void) const; //Return the x axis.
58  Line3d getYAxis(void) const; //Return the y axis.
59  Line3d getZAxis(void) const; //Return the z axis.
60  Plane getXYPlane(void) const; //Return the XY plane.
61  Plane getXZPlane(void) const; //Return the XZ plane.
62  Plane getYZPlane(void) const; //Return the YZ plane.
63 /* inline virtual void GiraX(const double &ang_rad) */
64 /* { trf.GiraX(ang_rad); } */
65 /* inline virtual void GiraY(const double &ang_rad) */
66 /* { trf.GiraY(ang_rad); } */
67 /* inline virtual void GiraZ(const double &ang_rad) */
68 /* { trf.GiraZ(ang_rad); } */
69 
70  //double GetZLocal(const Pos3d &p) const;
71  //Return the la Z of the point p expressed in local coordinates
72  //expressed in local coordinates.
73 
74  //Return the global coordinates of vector v from its
75  //local coordinates.
76 /* m_double Trf(const m_double &v) */
77 /* { */
78 /* m_double vt(3,1); */
79 /* vt= trf * v; */
80 /* return vt; */
81 /* } */
82 
83  virtual ~Ref3d3d(void);
84  };
85 
86 #endif
87 
88 
89 
90 
91 
92 
Line3d getZAxis(void) const
Return the line defining the z axis.
Definition: Ref3d3d.cc:84
Base class for position lists.
Definition: PolyPos.h:35
Three-dimensional coordinate system defined in a three-dimensional space.
Definition: Rect3d3dCooSys.h:33
Plane in a three-dimensional space.
Definition: Plane.h:49
Vector3d getIVector(void) const
Return the unary vector I expressed in global coordinates.
Definition: Ref3d3d.cc:60
Vector3d getKVector(void) const
Return the unary vector K expressed in global coordinates.
Definition: Ref3d3d.cc:66
Ref3d3d(void)
Constructor.
Definition: Ref3d3d.cc:28
Line3d getXAxis(void) const
Return the line defining the x axis.
Definition: Ref3d3d.cc:70
Vector3d getJVector(void) const
Return the unary vector J expressed in global coordinates.
Definition: Ref3d3d.cc:63
Base class for reference systems.
Definition: Ref.h:37
Posición en tres dimensiones.
Definition: Pos3d.h:44
Line in a three-dimensional space.
Definition: Line3d.h:62
Line3d getYAxis(void) const
Return the line defining the y axis.
Definition: Ref3d3d.cc:77
Vector en tres dimensiones.
Definition: Vector3d.h:39
Three-dimensional reference system defined in a three-dimensional space.
Definition: Ref3d3d.h:39