public void SetParent(RenderableObjectBase obj, bool retainWorldTransform) { if (_parent != null) { _parent.RemoveChild(this); } ConvertWorldValues(obj); obj.RegisterChild(this); }
/// <summary> /// Will recalculate local transform values as to retain current world transform in relation to new parent /// </summary> private void ConvertWorldValues(RenderableObjectBase newParent) { LocalPosition = WorldPosition - newParent.WorldPosition; LocalSize = WorldSize - newParent.WorldSize; }
private void RegisterChild(RenderableObjectBase obj) { obj._parent = this; _children.Add(obj); }
public void SetParent(RenderableObjectBase obj) { SetParent(obj, true); }
private void RemoveChild(RenderableObjectBase obj) { _children.Remove(obj); }