diff options
author | Marius Kintel <marius@kintel.net> | 2012-02-19 12:09:02 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2012-02-19 12:09:02 (GMT) |
commit | c5703b44077ca6185f7611d6ffba68f4955c1cbd (patch) | |
tree | d427746f36983ea977a84e0d04a04d179592ce7c /src/transform.cc | |
parent | 955e0f1344d772119e2d7af1afb7658df7e8c43e (diff) |
bugfix: Fix crash bug when using zero scale factors. Reported by Alan Cox
Diffstat (limited to 'src/transform.cc')
-rw-r--r-- | src/transform.cc | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/transform.cc b/src/transform.cc index f5038b1..c2ac194 100644 --- a/src/transform.cc +++ b/src/transform.cc @@ -87,11 +87,10 @@ AbstractNode *TransformModule::evaluate(const Context *ctx, const ModuleInstanti { Vector3d scalevec(1,1,1); Value v = c.lookup_variable("v"); - v.getnum(scalevec[0]); - v.getnum(scalevec[1]); - v.getnum(scalevec[2]); - v.getv3(scalevec[0], scalevec[1], scalevec[2]); - if (scalevec[2] == 0) scalevec[2] = 1; + if (!v.getv3(scalevec[0], scalevec[1], scalevec[2], 1.0)) { + double num; + if (v.getnum(num)) scalevec.setConstant(num); + } node->matrix.scale(scalevec); } else if (this->type == ROTATE) |