Free Electron
Space.h
Go to the documentation of this file.
1 /* Copyright (C) 2003-2021 Free Electron Organization
2  Any use of this software requires a license. If a valid license
3  was not distributed with this file, visit freeelectron.org. */
4 
5 /** @file */
6 
7 #ifndef __spatial_Space_h__
8 #define __spatial_Space_h__
9 
10 #include "SpaceI.h"
11 #include "signal/signal.h"
12 
13 namespace fe
14 {
15 namespace ext
16 {
17 
18 class FE_DL_EXPORT AffineSpace :
19  virtual public SpaceI,
20  public Initialize<AffineSpace>
21 {
22  public:
23  AffineSpace(void);
24 virtual ~AffineSpace(void);
25 
26  void initialize(void);
27 
28  // AS SpaceI
29 virtual void to( SpatialVector &a_unit,
30  const SpatialVector &a_world);
31 virtual void from( SpatialVector &a_world,
32  const SpatialVector &a_unit);
33 
34 virtual void setTransform(
35  const SpatialTransform &a_transform);
36 
37 virtual void setAxisAligned(
38  const SpatialVector &a_origin,
39  const SpatialVector &a_extent);
40 
41 
42  private:
43  SpatialTransform m_forward;
44  SpatialTransform m_inverse;
45 };
46 
47 } /* namespace ext */
48 } /* namespace fe */
49 
50 
51 #endif /* __spatial_Space_h__ */
52 
kernel
Definition: namespace.dox:3