X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FInstrumentation%2FNavDisplay.hxx;h=870c3cc3051a58089dd83a13cd143a221253ef3e;hb=0b9adf8854398461333eba43df18fa2f5c8231a1;hp=3e7adc7fa6566aac1c4218af82a53fff4606c92b;hpb=96ee2b1577d16564cd43ac0ddf50ac784f807d29;p=flightgear.git diff --git a/src/Instrumentation/NavDisplay.hxx b/src/Instrumentation/NavDisplay.hxx index 3e7adc7fa..870c3cc30 100644 --- a/src/Instrumentation/NavDisplay.hxx +++ b/src/Instrumentation/NavDisplay.hxx @@ -76,6 +76,8 @@ public: void forceUpdate() { _forceUpdate = true; } + bool anyRuleForType(const std::string& type) const; + bool isPositionedShown(FGPositioned* pos); protected: std::string _name; int _num; @@ -107,6 +109,7 @@ private: void limitDisplayedSymbols(); void findItems(); + void isPositionedShownInner(FGPositioned* pos, SymbolRuleVector& rules); void foundPositionedItem(FGPositioned* pos); void computePositionedPropsAndHeading(FGPositioned* pos, SGPropertyNode* nd, double& heading); void computePositionedState(FGPositioned* pos, string_set& states); @@ -117,8 +120,6 @@ private: void processAI(); void computeAIStates(const SGPropertyNode* ai, string_set& states); - bool anyRuleForType(const std::string& type) const; - bool anyRuleMatches(const std::string& type, const string_set& states) const; void findRules(const std::string& type, const string_set& states, SymbolRuleVector& rules); SymbolInstance* addSymbolInstance(const osg::Vec2& proj, double heading, SymbolDef* def, SGPropertyNode* vars); @@ -146,7 +147,8 @@ private: SGPropertyNode_ptr _navRadio1Node; SGPropertyNode_ptr _navRadio2Node; SGPropertyNode_ptr _xCenterNode, _yCenterNode; - + SGPropertyNode_ptr _viewHeadingNode; + osg::ref_ptr _symbolTexture; osg::ref_ptr _radarGeode; osg::ref_ptr _textGeode; @@ -188,7 +190,8 @@ private: SGVec3d _cachedPos; FGPositioned::List _itemsInRange; SGPropertyNode_ptr _excessDataNode; - + int _maxSymbols; + class CacheListener; std::auto_ptr _cacheListener;