void SceneNode::add_child(SceneNode *node)
{
+ if(!node) return;
+
if(node->parent) {
if(node->parent == this) {
return;
bool SceneNode::remove_child(SceneNode *node)
{
+ if(!node) return false;
+
auto it = std::find(children.begin(), children.end(), node);
if(it != children.end()) {
assert(node->parent == this);
xform.pre_scale(scale);
if(parent) {
- xform = parent->xform * xform;
+ xform = xform * parent->xform;
}
inv_xform = inverse(xform);
}