Commit Graph

74 Commits

Author SHA1 Message Date
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
f82010a1da Ref T270, fixes in interpolator
* interpolatedParts already "logs", do not do it twice
* performance: only recalculate "this->remoteAircraftSituationsAndChange(setup)" when there are new situations, not every interpolation step
2018-06-13 13:59:30 +02:00
Klaus Basan
e851934ce8 Ref T261, FSX clamped logging to avoid "status message overflow" if something goes wrong in interpolator.
In interpolator scenarios it can happen plenty of error log messagesa re generated in a short time. This can cause hanging.
2018-05-14 02:27:36 +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
2e7e210010 Ref T261, allow to enable/disable "fix scenery offset" via setup
* added UI functions
* fixed setup model
* use setup in interpolator
2018-05-08 16:06:55 +02:00
Klaus Basan
ea585ae166 Ref T261, CAircraftSituationChange improvements
* min/max ground distance, also added in situation list
* use model's vtol/CG info
* improved scenery deviation guessing
* adjusted interpolator scenery deviation handling
2018-05-08 16:06:55 +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
5243682124 Ref T260, interpolator improvements
* use last interpolated situation when recalculating interpolant
* flag if interpolation factor is to be calculated, or guessed
2018-05-08 16:06:41 +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
03af49348b Ref T259, Ref T243 formatting 2018-04-05 02:53:55 +02:00
Klaus Basan
5d155fb59c Ref T243, adjust offset for timestamp based objects when keeping the order 2018-02-07 02:41:46 +01:00
Klaus Basan
5a15e74f63 Ref T241, misc. logger improvements
* string formatting of logger info
* display longer in simulator
* better formatting of message
2018-02-05 03:45:25 +01:00
Klaus Basan
7c9f2e9aa2 Ref T243, verify parts/positions order (latest first) 2018-02-04 08:59:54 +01:00
Klaus Basan
d903a20f5e Ref T243, use offset times from network vatlib
* no need to check on own situations if the offset time is already set
* use push_frontKeepLatestFirst to ensure order (latest parts/situations first)
2018-02-04 08:59:20 +01:00
Klaus Basan
7e0c1033ba Ref T243, use offset times from network vatlib
* changed network config received signature (now with offset time)
* removed code to fix offset time, no longer needed
* using push_frontKeepLatestAdjustedFirst guaranteeing correct order
2018-02-04 08:57:32 +01:00
Klaus Basan
f99e82ac24 Ref T243, track the interpolated time ("real time" of interpolated situation)
* keep that time in interpolant
* set it for current position
* some comments and renamings
2018-02-04 08:53:45 +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
cd5fdfaf14 Ref T231, Ref T236, Ref T238 improved logging of situation/parts logging
* "dot" commands to log parts/situations
* log can also be displayed in simulator (if simulator can display text messages)
* fixed missings locks for m_interpolationRenderingSetup
* more detailed output
* renamings
* using hints in log
2018-01-30 20:35:05 +01:00
Klaus Basan
321cb8e563 Ref T236, transfer elevation to newer situations for future reference.
The elevation will be transferred within a given radius
2018-01-30 20:32:06 +01:00
Klaus Basan
c9ad99df2e Ref T238, logParts and getInterpolatedParts can be const 2018-01-30 20:31:53 +01:00
Klaus Basan
00d1315aac Ref T236, getGroundElevation can be used with and without provider 2018-01-30 20:31:47 +01:00
Klaus Basan
28346fbbdc Ref T231, set elevation as default for current situation 2018-01-30 20:31:38 +01:00
Klaus Basan
2da4b2719a Ref T231, fix for hovering aircraft
If there is no ground flag:

* only use CG/ground elevation close to ground
* and for AGL values clearly not on ground
* otherwise guess by speed ....
2018-01-30 20:30:43 +01:00
Klaus Basan
0991f20f7d Ref T229, adjusted renamings because of CInterpolationStatus changes 2018-01-30 20:29:48 +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
Mathew Sutcliffe
e0d9fb9df1 Ref T185 Enable spline interpolation with only one position update,
by just copying it three times, so planes can be rendered without waiting for more updates.
2017-11-12 13:48:07 +00: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
584fe51161 Ref T171, set object name for driver 2017-10-18 22:58:49 +02:00
Klaus Basan
c3f3f266d0 Ref T171, interpolator / interpolation logger formatting 2017-10-18 22:58:46 +02:00
Mathew Sutcliffe
f9ae3efaa3 T37 Avoid division by zero in case time offset is zero. 2017-09-24 19:52:49 +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
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
Mathew Sutcliffe
b38d668944 refs #852, #863, #896 Fixed time offset of parts from commit:74e93525 that was broken by commit:7a71d652. 2017-04-17 23:57:40 +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