Free Electron
BladeOp.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 __grass_BladeOp_h__
8 #define __grass_BladeOp_h__
9 
10 namespace fe
11 {
12 namespace ext
13 {
14 
15 /**************************************************************************//**
16  @brief Handler to bend and buckle curves based on a collider
17 
18  @ingroup grass
19 *//***************************************************************************/
20 class FE_DL_EXPORT BladeOp:
21  public SurfaceBindOp,
22  public Initialize<BladeOp>,
23  public ObjectSafe<BladeOp>
24 {
25  public:
26 
27  BladeOp(void):
28  m_frame(-1) {}
29 virtual ~BladeOp(void) {}
30 
31  void initialize(void);
32 
33  //* As HandlerI
34 virtual void handle(Record& a_rSignal);
35 
36  using OperatorThreaded::run;
37 
38 virtual void run(I32 a_id,sp<SpannedRange> a_spRange);
39 
40  private:
41 
42  sp<SurfaceAccessibleI> m_spOutputAccessible;
43  sp<DrawMode> m_spDebugGroup;
44 
45  I32 m_frame;
46 
47  Blade m_blade;
48 };
49 
50 } /* namespace ext */
51 } /* namespace fe */
52 
53 #endif /* __grass_BladeOp_h__ */
Object level locking for thread safety.
Definition: Safe.h:216
kernel
Definition: namespace.dox:3
Per-class participation in the Initialized <> mechanism.
Definition: Initialized.h:117
Operator to correlate a attachable surface with a driving surface.
Definition: SurfaceBindOp.h:20
Handler to bend and buckle curves based on a collider.
Definition: BladeOp.h:20
Reference to an instance of a Layout.
Definition: RecordSB.h:35
Intrusive Smart Pointer.
Definition: src/core/ptr.h:53
minimal semi-implicit curve sim
Definition: Blade.h:20