Example #1
0
 public PassThroughWrapper(TransformableSceneObject target)
 {
     this.target = target;
 }
Example #2
0
 public SceneFrameWrapper(Scene scene, TransformableSceneObject target)
 {
     this.parentScene = scene;
     this.target      = target;
 }
Example #3
0
        public void Create(Scene parentScene, TransformableSceneObject target)
        {
            this.parentScene = parentScene;
            this.target      = target;

            this.parentScene.SelectionChangedEvent += OnSceneSelectionChanged;

            gizmo = new GameObject("TransformGizmo");

            float fAlpha = 0.5f;

            xMaterial = MaterialUtil.CreateTransparentMaterial(Color.red, fAlpha);
            yMaterial = MaterialUtil.CreateTransparentMaterial(Color.green, fAlpha);
            zMaterial = MaterialUtil.CreateTransparentMaterial(Color.blue, fAlpha);

            x = AppendMeshGO("x_translate",
                             (Mesh)Resources.Load("meshes/transform_gizmo_x", typeof(Mesh)),
                             xMaterial, gizmo);
            Widgets [x] = new AxisTranslationWidget(0, parentScene);
            y           = AppendMeshGO("y_translate",
                                       (Mesh)Resources.Load("meshes/transform_gizmo_y", typeof(Mesh)),
                                       yMaterial, gizmo);
            Widgets [y] = new AxisTranslationWidget(1, parentScene);
            z           = AppendMeshGO("z_translate",
                                       (Mesh)Resources.Load("meshes/transform_gizmo_z", typeof(Mesh)),
                                       zMaterial, gizmo);
            Widgets [z] = new AxisTranslationWidget(2, parentScene);

            rotate_x = AppendMeshGO("x_rotate",
                                    (Mesh)Resources.Load("meshes/axisrotate_x", typeof(Mesh)),
                                    xMaterial, gizmo);
            Widgets [rotate_x] = new AxisRotationWidget(0, parentScene);
            rotate_y           = AppendMeshGO("y_rotate",
                                              (Mesh)Resources.Load("meshes/axisrotate_y", typeof(Mesh)),
                                              yMaterial, gizmo);
            Widgets [rotate_y] = new AxisRotationWidget(1, parentScene);
            rotate_z           = AppendMeshGO("z_rotate",
                                              (Mesh)Resources.Load("meshes/axisrotate_z", typeof(Mesh)),
                                              zMaterial, gizmo);
            Widgets [rotate_z] = new AxisRotationWidget(2, parentScene);


            // plane translation widgets
            translate_xy = AppendMeshGO("xy_translate",
                                        (Mesh)Resources.Load("meshes/plane_translate_xy", typeof(Mesh)),
                                        zMaterial, gizmo);
            Widgets [translate_xy] = new PlaneTranslationWidget(2, parentScene);
            translate_xz           = AppendMeshGO("xz_translate",
                                                  (Mesh)Resources.Load("meshes/plane_translate_xz", typeof(Mesh)),
                                                  yMaterial, gizmo);
            Widgets [translate_xz] = new PlaneTranslationWidget(1, parentScene);
            translate_yz           = AppendMeshGO("yz_translate",
                                                  (Mesh)Resources.Load("meshes/plane_translate_yz", typeof(Mesh)),
                                                  xMaterial, gizmo);
            Widgets [translate_yz] = new PlaneTranslationWidget(0, parentScene);


            // disable shadows on widget components
            foreach (var go in GameObjects)
            {
                go.GetComponent <MeshRenderer>().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
            }

            eCurrentFrameMode = FrameType.LocalFrame;
            SetActiveFrame(eCurrentFrameMode);

            int nWidgetLayer = LayerMask.NameToLayer(SceneGraphConfig.WidgetOverlayLayerName);

            foreach (var go in GameObjects)
            {
                go.layer = nWidgetLayer;
            }
        }