예제 #1
0
    public void Execute(TranformationManager manager, ModulationEditionTool tool, RaycastHit hit)
    {
        var target = hit.collider.gameObject;

        if (target.transform.parent != null && target.transform.parent.name == "Snaps")
        {
            return;
        }
        if (target.name == "x" || target.name == "y" || target.name == "z" || target.name == "RotationAxis" || target.name == "SingleAxis")
        {
            return;
        }

        if (_tm.Target != null)
        {
            _tm.Target.GetComponent <MeshRenderer> ().material = _pm;
        }

        _pm = target.GetComponent <MeshRenderer> ().material;
        target.GetComponent <MeshRenderer> ().material = _sm;
        _tm.Target         = target;
        _tm.TargetPosition = target.transform.position;
        _tm.TargetRotation = target.transform.rotation;
        _tm.state          = TranformationManager.State.SET_TARGET;
    }
예제 #2
0
 public void RotateMode()
 {
     _activeTool.Gizmo.SetActive(false);
     _activeTool = _rotateTool;
     _activeTool.TurnOnGizmo.Execute(this, _activeTool, _hit);
     //if (testing) {
     PanelInsertItem.SetActive(false);
     //}
 }
예제 #3
0
 void SetGizmos()
 {
     _moveTool         = new MoveTool();
     _rotateTool       = new RotationTool();
     _moveTool.Gizmo   = Instantiate(MoveGizmo);
     _rotateTool.Gizmo = Instantiate(RotateGizmo);
     _moveTool.Gizmo.SetActive(false);
     _rotateTool.Gizmo.SetActive(false);
     _activeTool   = _moveTool;
     _inactiveTool = _rotateTool;
 }
예제 #4
0
 public void MoveMode()
 {
     if (Target != null)
     {
         _activeTool.TurnOnGizmo.Undo(_activeTool);
     }
     _activeTool = _moveTool;
     _activeTool.TurnOnGizmo.Execute(this, _activeTool, _hit);
     //if (testing) {
     PanelInsertItem.SetActive(false);
     //}
 }
예제 #5
0
        public void Execute(TranformationManager manager, ModulationEditionTool tool, RaycastHit hit)
        {
            if (hit.transform == null)
            {
                return;
            }

            var rotationTool = tool as RotationTool;

            rotationTool.Gizmo.SetActive(true);
            rotationTool.allAxis.SetActive(true);
            rotationTool.singleAxis.SetActive(false);

            rotationTool.Gizmo.transform.position = manager.Target.transform.position;
            manager.state = TranformationManager.State.SET_TRANSFORMATION;
        }
예제 #6
0
    // new panel target
    public void Execute(TranformationManager manager, ModulationEditionTool tool, GameObject newPanel)
    {
        if (newPanel.name == "x" || newPanel.name == "y" || newPanel.name == "z" || newPanel.name == "RotationAxis" || newPanel.name == "SingleAxis")
        {
            return;
        }

        if (_tm.Target != null)
        {
            _tm.Target.GetComponent <MeshRenderer> ().material = _pm;
        }

        _pm = newPanel.GetComponent <MeshRenderer> ().material;
        newPanel.GetComponent <MeshRenderer> ().material = _sm;
        _tm.Target         = newPanel;
        _tm.TargetPosition = newPanel.transform.position;
        _tm.TargetRotation = newPanel.transform.rotation;
        _tm.state          = TranformationManager.State.SET_TARGET;
    }
예제 #7
0
        public void Execute(TranformationManager manager, ModulationEditionTool tool, RaycastHit hit)
        {
            if (hit.transform == null)
            {
                return;
            }
            tool.Gizmo.SetActive(true);
            tool.Gizmo.transform.position = hit.transform.position;
            manager.state = TranformationManager.State.SET_TRANSFORMATION;

            var snaps = tool.Gizmo.transform.FindChild("Snaps");

            var comp = hit.transform.gameObject.GetComponent <WallPanelInfo> ();
            var p    = hit.transform.position;
            var p1   = p + comp.height * hit.transform.up;
            var p2   = p + -comp.width * hit.transform.right;
            var p3   = p + -comp.width * hit.transform.right + comp.height * hit.transform.up;

            snaps.FindChild("2").transform.position = p1;
            snaps.FindChild("3").transform.position = p2;
            snaps.FindChild("4").transform.position = p3;
        }
예제 #8
0
 public void Undo(ModulationEditionTool tool)
 {
 }
예제 #9
0
 public void Execute(TranformationManager manager, ModulationEditionTool tool, RaycastHit hit)
 {
 }
예제 #10
0
 public void Undo(ModulationEditionTool tool)
 {
     tool.Gizmo.SetActive(false);
 }
예제 #11
0
 public void Execute(TranformationManager manager, ModulationEditionTool tool, RaycastHit hit)
 {
     _target = manager.Target;
     Destroy(manager.Target);
 }