Free Electron
TireI.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_TireI_h__
8 #define __tire_TireI_h__
9 
10 namespace fe
11 {
12 namespace ext
13 {
14 
15 /// The most simple least common denominator, single contact, patch oriented
16 /// Many (most?) "tire models" are this, or use this.
17 class FE_DL_EXPORT TireI
18  : virtual public Component,
19  public CastableAs<TireI>
20 {
21  public:
22  /** Timestep the tire */
23 virtual void step(t_moa_real a_dt) = 0;
24 
25  /** "Make" a tire based on src/data configuration.
26  r_tire is the actual record the tire can access "live".
27  r_config is the record, possibly loaded from file, to
28  parameterize the model.
29  */
30 virtual bool compile(Record r_tire, Record r_config,
31  sp<RecordGroup> a_rg_dataset) = 0;
32 
33  /** Translational velocity in tire space, wrt surface.
34  Tire space:
35  X is longitudinal
36  Y is lateral
37  Z is vertical (yaw axis)
38  */
39 virtual void setVelocity( const t_moa_v3 &a_velocity) = 0;
40  /** Angular velocity around Y axis
41  - X axis (camber-like roll)
42  - Y axis (normal sense of tire rotation)
43  - Z axis (steering velocity)
44  */
45 virtual void setAngularVelocity( const t_moa_v3 &a_ang_velocity) = 0;
46 virtual void setContact( const t_moa_real a_radius,
47  const t_moa_real a_inclination) = 0;
48 
49  /** Return the force, in tire space */
50 virtual const t_moa_v3 &getForce(void) = 0;
51  /** Return the moment, in tire space */
52 virtual const t_moa_v3 &getMoment(void) = 0;
53 virtual const t_moa_v3 &getVelocity(void) = 0;
54 virtual const t_moa_v3 &getAngularVelocity(void) = 0;
55 virtual const t_moa_real &getRadius(void) = 0;
56 
57 virtual t_moa_real &contactRadius(void) = 0;
58 virtual t_moa_real &inclination(void) = 0;
59 
60 };
61 
62 } /* namespace ext */
63 } /* namespace fe */
64 
65 #endif /* __tire_TireI_h__ */
66 
67 
kernel
Definition: namespace.dox:3
The most simple least common denominator, single contact, patch oriented Many (most?) "tire models" are this, or use this.
Definition: TireI.h:17
Reference to an instance of a Layout.
Definition: RecordSB.h:35
Base for all interfacable components.
Definition: Component.h:20
Per-class participation non-RTTI fallback dynamic casting mechanism.
Definition: Castable.h:192