Free Electron
GridWrapOp.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 __oplab_GridWrapOp_h__
8 #define __oplab_GridWrapOp_h__
9 namespace fe
10 {
11 namespace ext
12 {
13 
14 /**************************************************************************//**
15  @brief Operator to move an attachable surface using a driving surface
16 
17  @ingroup oplab
18 *//***************************************************************************/
19 class FE_DL_EXPORT GridWrapOp:
20  public OperatorThreaded,
21  public Initialize<GridWrapOp>
22 {
23  public:
24 
25  GridWrapOp(void) {}
26 virtual ~GridWrapOp(void) {}
27 
28  void initialize(void);
29 
30  //* As HandlerI
31 virtual void handle(Record& a_rSignal);
32 
33  using OperatorThreaded::run;
34 
35  // TODO
36 virtual void run(I32 a_id,sp<SpannedRange> a_spRange) {}
37 
38  private:
39 
40  class GridNode
41  {
42  public:
43  GridNode(void):
44  m_weight(0.0)
45  { setIdentity(m_transform); }
46 
47  SpatialTransform m_transform;
48  Real m_weight;
49  };
50 
51  MatrixPower<SpatialTransform> m_matrixPower;
52  sp<DrawI> m_spDrawDebug;
53 };
54 
55 } /* namespace ext */
56 } /* namespace fe */
57 
58 #endif /* __oplab_GridWrapOp_h__ */
Handler to move curves away from a collider.
Definition: OperatorThreaded.h:20
kernel
Definition: namespace.dox:3
General template for fixed size numeric matrices.
Definition: Matrix.h:42
Per-class participation in the Initialized <> mechanism.
Definition: Initialized.h:117
Reference to an instance of a Layout.
Definition: RecordSB.h:35
Intrusive Smart Pointer.
Definition: src/core/ptr.h:53
Operator to move an attachable surface using a driving surface.
Definition: GridWrapOp.h:19