public void SetTransform(AttachmentType type, Vector3 position, Vector3 rotation, string attachmentKey = null)
 {
     _internalOverlay.SetAttachment(type, position, rotation, attachmentKey);
     Position = position;
     Rotation = rotation;
     Absolute = type == AttachmentType.Absolute;
 }
        public void Setup(Overlay parent)
        {
            _parent          = parent;
            _internalOverlay = new InternalOverlay("vrub." + _parent.DerivedKey + ".models." + Key, "", Meters, true);

            if (Absolute)
            {
                _internalOverlay.SetAttachment(AttachmentType.Absolute, Position, Rotation);
            }
            else
            {
                _internalOverlay.SetAttachment(AttachmentType.Overlay, Position, Rotation, ParentKey == null ? "vrub." + _parent.DerivedKey : ParentKey);
            }

            _internalOverlay.SetTextureSize(1, 1);
            _internalOverlay.ToggleInput(false);

            if (!_generatedOnePixelTexture)
            {
                GenerateOnePixelTexture(Width, Height);
            }

            if (Animations != null && Animations.Count > 0)
            {
                foreach (RenderModelAnimation anim in Animations)
                {
                    anim.GetFrames(parent.BasePath);
                }
            }

            if (StartingAnimation != null)
            {
                SetAnimation(StartingAnimation);
            }
            else
            {
                UpdateModel(ModelFile);
            }

            _internalOverlay.Show();
        }