/// <summary>
        /// Creates a new sphere primitive proxy.
        /// </summary>
        private SphereProxy AddSphereProxy(EntityProxy parent)
        {
            SphereProxy sphere = new SphereProxy(sceneDocument, parent);
            TreeNode    node   = AddTreeNode(parent.TreeNode, sphere);

            return(sphere);
        }
        /// <summary>
        /// Builds a default scene document.
        /// </summary>
        private void CreateDefaultDocument()
        {
            // Lock stacks
            sceneDocument.LockUndoRedo = true;

            // Set camera position
            sceneDocument.EditorScene.Camera.Position = new Vector3(0, 2, 50);
            sceneDocument.EditorScene.Camera.Update();

            // Add lighting rig
            AddDefaultLightingRig();

            // Create entities
            EntityProxy entityProxy = AddEntityProxy();

            // Add sphere primitive component
            SphereProxy sphereProxy = AddSphereProxy(entityProxy);

            sphereProxy.Position = new Vector3(0, 0.5f, 0);

            // Add model component
            DaggerfallModelProxy modelProxy = AddModelProxy(entityProxy, 456);

            // Add quad terrain component
            QuadTerrainProxy terrainProxy = AddQuadTerrainComponentProxy(entityProxy);

            terrainProxy.Position       = new Vector3(-1024f, 0, -1024f);
            terrainProxy.Scale          = new Vector3(4, 0.16f, 4);
            terrainProxy.TextureRepeat  = 100f;
            terrainProxy.NormalStrength = 0.01f;

            // Expand nodes
            documentProxy.TreeNode.Expand();
            entityProxy.TreeNode.Expand();

            // Unlock stacks
            sceneDocument.LockUndoRedo = false;
        }