Add support for an offset for number-value typed text chunks
This commit is contained in:
parent
9c49534907
commit
8e5a884428
3 changed files with 7 additions and 5 deletions
|
@ -1092,8 +1092,8 @@ FGTextLayer::Chunk::Chunk (const string &text, const string &fmt)
|
|||
}
|
||||
|
||||
FGTextLayer::Chunk::Chunk (ChunkType type, const SGPropertyNode * node,
|
||||
const string &fmt, float mult)
|
||||
: _type(type), _fmt(fmt), _mult(mult)
|
||||
const string &fmt, float mult, float offs)
|
||||
: _type(type), _fmt(fmt), _mult(mult), _offs(offs)
|
||||
{
|
||||
if (_fmt.empty()) {
|
||||
if (type == TEXT_VALUE)
|
||||
|
@ -1117,7 +1117,7 @@ FGTextLayer::Chunk::getValue () const
|
|||
sprintf(_buf, _fmt.c_str(), _node->getStringValue());
|
||||
break;
|
||||
case DOUBLE_VALUE:
|
||||
sprintf(_buf, _fmt.c_str(), _node->getFloatValue() * _mult);
|
||||
sprintf(_buf, _fmt.c_str(), _offs + _node->getFloatValue() * _mult);
|
||||
break;
|
||||
}
|
||||
return _buf;
|
||||
|
|
|
@ -492,7 +492,7 @@ public:
|
|||
public:
|
||||
Chunk (const string &text, const string &fmt = "%s");
|
||||
Chunk (ChunkType type, const SGPropertyNode * node,
|
||||
const string &fmt = "", float mult = 1.0);
|
||||
const string &fmt = "", float mult = 1.0, float offs = 0.0);
|
||||
|
||||
const char * getValue () const;
|
||||
private:
|
||||
|
@ -501,6 +501,7 @@ public:
|
|||
const SGPropertyNode * _node;
|
||||
string _fmt;
|
||||
float _mult;
|
||||
float _offs;
|
||||
mutable char _buf[1024];
|
||||
};
|
||||
|
||||
|
|
|
@ -365,9 +365,10 @@ readTextChunk (const SGPropertyNode * node)
|
|||
else if (type == "number-value") {
|
||||
string propName = node->getStringValue("property");
|
||||
float scale = node->getFloatValue("scale", 1.0);
|
||||
float offset = node->getFloatValue("offset", 0.0);
|
||||
SGPropertyNode * target = fgGetNode(propName.c_str(), true);
|
||||
chunk = new FGTextLayer::Chunk(FGTextLayer::DOUBLE_VALUE, target,
|
||||
format, scale);
|
||||
format, scale, offset);
|
||||
}
|
||||
|
||||
// Unknown type.
|
||||
|
|
Loading…
Add table
Reference in a new issue