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,
|
FGTextLayer::Chunk::Chunk (ChunkType type, const SGPropertyNode * node,
|
||||||
const string &fmt, float mult)
|
const string &fmt, float mult, float offs)
|
||||||
: _type(type), _fmt(fmt), _mult(mult)
|
: _type(type), _fmt(fmt), _mult(mult), _offs(offs)
|
||||||
{
|
{
|
||||||
if (_fmt.empty()) {
|
if (_fmt.empty()) {
|
||||||
if (type == TEXT_VALUE)
|
if (type == TEXT_VALUE)
|
||||||
|
@ -1117,7 +1117,7 @@ FGTextLayer::Chunk::getValue () const
|
||||||
sprintf(_buf, _fmt.c_str(), _node->getStringValue());
|
sprintf(_buf, _fmt.c_str(), _node->getStringValue());
|
||||||
break;
|
break;
|
||||||
case DOUBLE_VALUE:
|
case DOUBLE_VALUE:
|
||||||
sprintf(_buf, _fmt.c_str(), _node->getFloatValue() * _mult);
|
sprintf(_buf, _fmt.c_str(), _offs + _node->getFloatValue() * _mult);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return _buf;
|
return _buf;
|
||||||
|
|
|
@ -492,7 +492,7 @@ public:
|
||||||
public:
|
public:
|
||||||
Chunk (const string &text, const string &fmt = "%s");
|
Chunk (const string &text, const string &fmt = "%s");
|
||||||
Chunk (ChunkType type, const SGPropertyNode * node,
|
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;
|
const char * getValue () const;
|
||||||
private:
|
private:
|
||||||
|
@ -501,6 +501,7 @@ public:
|
||||||
const SGPropertyNode * _node;
|
const SGPropertyNode * _node;
|
||||||
string _fmt;
|
string _fmt;
|
||||||
float _mult;
|
float _mult;
|
||||||
|
float _offs;
|
||||||
mutable char _buf[1024];
|
mutable char _buf[1024];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -365,9 +365,10 @@ readTextChunk (const SGPropertyNode * node)
|
||||||
else if (type == "number-value") {
|
else if (type == "number-value") {
|
||||||
string propName = node->getStringValue("property");
|
string propName = node->getStringValue("property");
|
||||||
float scale = node->getFloatValue("scale", 1.0);
|
float scale = node->getFloatValue("scale", 1.0);
|
||||||
|
float offset = node->getFloatValue("offset", 0.0);
|
||||||
SGPropertyNode * target = fgGetNode(propName.c_str(), true);
|
SGPropertyNode * target = fgGetNode(propName.c_str(), true);
|
||||||
chunk = new FGTextLayer::Chunk(FGTextLayer::DOUBLE_VALUE, target,
|
chunk = new FGTextLayer::Chunk(FGTextLayer::DOUBLE_VALUE, target,
|
||||||
format, scale);
|
format, scale, offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unknown type.
|
// Unknown type.
|
||||||
|
|
Loading…
Add table
Reference in a new issue