Commit Graph

64 Commits

Author SHA1 Message Date
Klaus Basan
48d5e0daec Ref T397, interpolation / interpolant fixes
* fixed fillSituationsArray to return correct initial situations
* VERIFY ranges and times to avoid inf/NaN and issues in general
* if invalid situations, continue with last situation
* count invalid situations
2018-11-04 17:42:43 +01:00
Roland Winklmeier
29f464189b Move template in-class function definitions out of class
Keeping them defined in-class caused linker issues with the extern template
declaration in a non-optimized MinGW debug build. Apparently it did not
inline them but instead relied on the extern declaration and expected
them defined somewhere else.
2018-08-31 20:08:14 +02:00
Klaus Basan
9baa10c5f8 Style 2018-07-09 22:30:14 +02:00
Klaus Basan
3f14be6517 Ref T275, Ref T280, parts guessing and interpolating can have different ratios 2018-06-20 00:58:37 +02:00
Klaus Basan
c7482ebc1a Ref T275, use refactored and improved elevation functions in interpolator 2018-06-18 03:04:47 +02:00
Klaus Basan
d1157bb5c6 Ref T275, moved "preset" of elevation to situation class (from interpolator) 2018-06-18 03:04:41 +02:00
Klaus Basan
fe396e19aa Ref T275, interpolator improvements
* flags for same parts/situation status
* transfer elevation (Ref T273) from previous situation
* preset elevation based on network situations if possible
* set elevation info
* function CInterpolator::initInterpolatedSituation
2018-06-13 13:59:59 +02:00
Klaus Basan
c6f3d4e2f2 Ref T270, mark interpolator as unit test
* if we use "recycled" parts, we have to store also the last status
* mark unit test so "recycling" is disabled
* status flag for "reused"
2018-06-13 13:59:46 +02:00
Klaus Basan
181ed36f3d Ref T270, interpolator optimization by passing aircraft number
Rational: Except for FS9 we interpolate all aircraft in one loop at the same time. This can cause that some steps are always done at the same time for all aircraft of that loop. By passing the number we can more equally distribute such tasks, avoiding peaks.
2018-06-13 13:59:39 +02:00
Klaus Basan
464c8dfe83 Formatting 2018-05-26 21:19:20 +02:00
Klaus Basan
4ced6b4f97 Formatting 2018-05-18 00:24:58 +02:00
Klaus Basan
0f9b275f52 Allow to mark interpolator for unit tests (which can be used to disable some checks) 2018-05-12 21:40:31 +02:00
Klaus Basan
23dcccc806 Ref T261, adjusted interpolation setup
* removed "IndexEnableGndFlag" as this is actually part of FSD network settings
* renamed to "isForcingVtolInterpolation"
* adjusted interpolator, and UI for setup
2018-05-12 21:40:09 +02:00
Klaus Basan
0808cdb223 Ref T261, further unify interpolator handling
* return interpolation results parts/situation in one step
* base class init for each interpolation step, less redundant code
* removed old interpolation/parts function
* adjusted unit tests and simulator objects (such as SimObject)
2018-05-08 16:06:52 +02:00
Klaus Basan
bac3d14d50 Ref T261, interpolator adjustments
* using interface IInterpolant, renamed to CInterpolant for concrete implmentation
* CInterpolatorPBH has itws own file now, is included
* linear interpolator only re-calculates interpolant when needed (same as spline interpolator)
2018-05-08 16:06:51 +02:00
Klaus Basan
2a5261f3f6 Ref T261, interpolator PBH in own file 2018-05-08 16:06:50 +02:00
Klaus Basan
29407d113e Ref T261, encapsulated groundInterpolationFactor
Rational: Less compilation time when need to change
2018-05-08 16:06:48 +02:00
Klaus Basan
7db8823770 Ref T261, interpolator changes
* use CAircraftSituationChange
* recalculate interpolant if situation changed (due to elevation update)
* keep extra info string for debugging
* improved situation checking
2018-05-08 16:06:46 +02:00
Klaus Basan
9fa3e415f5 Ref T260, interpolator deferred init fix. Make sure lambda is not called when interpolator is deleted. 2018-05-08 16:06:37 +02:00
Klaus Basan
cd1ce37ec3 Ref T259, Ref T243 interpolator changes
* interpolators use providers for client/situations/parts/ground elevation
* interpolators do no longer use own situations/parts, but those from provider
* interpolators are no longer QObjects (as it is not needed)
* use gnd flag from situation for gnd interpolation, there is no longer a parts gnd flag interpolation
* guess parts during interpolation
* changed iterators to m_s[i] as it makes clearer which values are used
** the flag is transferred from parts -> situation in airspace monitor
** if the other client already provides and gnd.flag in situation this also works
* adjusted logging
* use providers in unit tests / adjusted tests
* improved situation verification/assert
2018-05-08 16:06:33 +02:00
Klaus Basan
0c06ac26f7 Ref T259, Ref T243 removed interpolation hints
* no longer needed with providers in that form
* pure refactoring commit, just guarantees compilation
* already minor adjustments to use providers
2018-04-13 23:37:18 +02:00
Klaus Basan
333a92ff63 Ref T259, Ref T243 renaming to CInterpolationAndRenderingSetupPerCallsign 2018-04-13 23:36:34 +02:00
Klaus Basan
83b6578e69 Ref T259, Ref T243 use elevation plane for altitude
general idea: by using the plane class, we can set a elevation and then find a better one

* use elevation plane in situation
* adjusted depending classes such as hints, lists
* using setGroundElevationChecked so elevation can be gradually improved
2018-04-05 02:54:28 +02:00
Klaus Basan
0191f35d5a Ref T259, Ref T243 improvements in interpolator
* functions for unit tests (like clear)
* maxParts/Situations
2018-04-05 02:54:10 +02:00
Klaus Basan
e9e0ae1ff4 Ref T241, Ref T243 formatting and minor tweaks
* unified how we write thread_local const
* ASSERTs
* formatting
2018-02-04 08:53:48 +01:00
Klaus Basan
6a2435074c Ref T241, further improved interpolation logging
* all interpolation positions can  be logged (3 for spline, 2 for linear)
* interpolated (log) time, setting to real time (i.e. unadjusted time)
* only set logger values with logger attached
2018-02-04 08:50:55 +01:00
Klaus Basan
69e2ed6efe Ref T231, Ref T236, Ref T238 improvements based on Unit test
* check for a correct callsign (assert)
* set callsign if missing (fallback)
* resetLastInterpolation - null last inperpolation
2018-01-30 20:35:09 +01:00
Klaus Basan
0a06ad223f Ref T231, Ref T236, Ref T238 improvements of interpolator
* keep last interpolated sitation, removed m_isFirstInterpolation
* allow to obtain the old/new situation
* transfer of elevations to newer situations
2018-01-30 20:35:07 +01:00
Klaus Basan
c9ad99df2e Ref T238, logParts and getInterpolatedParts can be const 2018-01-30 20:31:53 +01:00
Klaus Basan
c39d4f66a3 Setting parent object for timers and formatting 2018-01-30 20:30:39 +01:00
Klaus Basan
75c2eec3d1 Ref T229, adjusted CInterpolationStatus
* The `changed`flag in interpolation was faulty.
* It was able to determine if the value was really changed by interpolation, which was the same as indicating that the value was interpolated.
* But there were cases, when the value was interpolated and not changed.
* Also there were cases when the value was changed, but not interpolated.
2018-01-30 20:29:46 +01:00
Klaus Basan
c23fe86f7f Ref T219, changed or removed some log category functions
* removed unused
* used standard "static const CLogCategoryList &getLogCategories()" patten
2018-01-14 18:46:04 +01:00
Klaus Basan
46a7b67ae5 Ref T180, interpolator status can check validity of situation and provide an info string 2017-11-09 04:42:10 +01:00
Klaus Basan
e5261c3e99 Ref T180, added utility function getInterpolatorInfo() allowing to log some info about interpolator 2017-11-04 21:44:42 +01:00
Klaus Basan
c3f3f266d0 Ref T171, interpolator / interpolation logger formatting 2017-10-18 22:58:46 +02:00
Mathew Sutcliffe
aaeb2e8ceb T37 Fixed wrong parameter names. 2017-09-24 19:52:44 +01:00
Mathew Sutcliffe
6a6f98ebd1 refs #896 Renaming members. 2017-04-17 23:58:17 +01:00
Klaus Basan
78f3ef375f refs #896, added logging of CG and old/new position 2017-04-17 23:58:13 +01:00
Klaus Basan
03b8739158 refs #895, add initial parts when aircraft is added in FSX
plus some utility functions
2017-04-17 23:58:09 +01:00
Klaus Basan
a27717cf8b refs #895, also log when parts are empty
* added empty flag
* move logging into own function (because it is called in multiple places now)
2017-04-17 23:58:07 +01:00
Klaus Basan
5e19431d2b Formatting, comments
#895
2017-04-17 23:58:04 +01:00
Klaus Basan
7427847bb4 refs #895, CPartsStatus(bool supportsParts) 2017-04-17 23:58:03 +01:00
Mathew Sutcliffe
598733d521 refs #863 Fixed a bug where a plane would only start rendering when it first starts moving. 2017-02-24 15:22:35 +00:00
Mathew Sutcliffe
04ddd3bfa5 refs #863 Move interpolator logging into a separate class.
A single logger instance can be shared between multiple interpolator instances.
2017-02-24 15:22:34 +00:00
Mathew Sutcliffe
e67b5fccc4 refs #863 Change callsign parameter to be a member instead. 2017-02-24 15:22:32 +00:00
Mathew Sutcliffe
8d351d8279 refs #863 Added cubic spline interpolator. 2017-02-24 15:22:31 +00:00
Mathew Sutcliffe
4cc5643340 refs #863 Further decomposed interpolator into granularly replaceable strategy methods. 2017-02-24 15:22:30 +00:00
Mathew Sutcliffe
aad4cb5e88 refs #863 Factor out code not specific to linear interpolation into the base class. 2017-02-24 15:22:28 +00:00
Mathew Sutcliffe
c0f163589d refs #863 Simplification. 2017-02-24 15:22:27 +00:00
Mathew Sutcliffe
9c918b8799 refs #863 Interpolator inheritance based on CRTP rather than virtual methods. 2017-02-24 15:22:26 +00:00