Free Electron
SurfaceGroundSystem.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 __tire_SurfaceGroundSystem_h__
8 #define __tire_SurfaceGroundSystem_h__
9 
10 namespace fe
11 {
12 namespace ext
13 {
14 
15 /// @brief AsTireLiveCollision to SurfaceI collision system
17  virtual public Stepper,
18  virtual public GroundI,
19  public Initialize<SurfaceGroundTireSystem>
20 {
21  public:
22  class Tire
23  {
24  public:
25  WeakRecord m_r_tire;
26  };
28  void initialize(void) {}
29 virtual void compile(const t_note_id &a_note_id);
30 virtual void step(t_moa_real a_dt);
31 virtual void setSurface(sp<SurfaceI> a_spSurface);
32 virtual void setTransform(const SpatialTransform &a_transform);
33  private:
34  sp<SurfaceI> m_spSurface;
35  SpatialTransform m_transform;
36  std::vector<Tire> m_tires;
37 };
38 
39 
40 class SurfaceClosestPointSystem :
41  virtual public Stepper,
42  public Initialize<SurfaceClosestPointSystem>
43 {
44  public:
45  SurfaceClosestPointSystem(void);
46  void initialize(void) {}
47 virtual void compile(const t_note_id &a_note_id);
48 virtual void step(t_moa_real a_dt);
49  private:
50  sp<RecordGroup> rg_all;
51  AsContactLive m_asContact;
52  AsLocator m_asLocator;
53  AsSurfaceLive m_asSurface;
54  AsSurfacePlane m_asSurfacePlane;
55  AsPoint m_asPoint;
56  std::vector<Record> m_xform_contacts;
57  std::vector<Record> m_surfaces;
58 };
59 
60 } /* namespace ext */
61 } /* namespace fe */
62 
63 #endif /* __tire_SurfaceGroundSystem_h__ */
64 
virtual void compile(const t_note_id &a_note_id)
Compile internal structure for dataset.
Definition: SurfaceGroundSystem.cc:28
Interface to attach a SurfaceI.
Definition: SplatterI.h:28
kernel
Definition: namespace.dox:3
Time Stepping System.
Definition: Stepper.h:15
Per-class participation in the Initialized <> mechanism.
Definition: Initialized.h:117
AsTireLiveCollision to SurfaceI collision system.
Definition: SurfaceGroundSystem.h:16
Something with a location in simulation.
Definition: moaAS.h:216
virtual void step(t_moa_real a_dt)
Move system forward in time by a timestep.
Definition: SurfaceGroundSystem.cc:45
Intrusive Smart Pointer.
Definition: src/core/ptr.h:53
Non-persistent reference to an instance of a Layout.
Definition: WeakRecordSB.h:17