1
0
Fork 0

Add support for an offset for number-value typed text chunks

This commit is contained in:
ehofman 2004-01-13 18:28:46 +00:00
parent 9c49534907
commit 8e5a884428
3 changed files with 7 additions and 5 deletions

View file

@ -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;

View file

@ -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];
};

View file

@ -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.