Ejemplo n.º 1
0
        public RotationHandle Initialize(RuntimeTransformHandle p_parentTransformHandle)
        {
            _parentTransformHandle = p_parentTransformHandle;
            transform.SetParent(_parentTransformHandle.transform, false);

            _axes = new List <RotationAxis>();

            if (_parentTransformHandle.axes == HandleAxes.X || _parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.XYZ)
            {
                _axes.Add(new GameObject().AddComponent <RotationAxis>()
                          .Initialize(_parentTransformHandle, Vector3.right, -Vector3.forward, Color.red));
            }

            if (_parentTransformHandle.axes == HandleAxes.Y || _parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XYZ)
            {
                _axes.Add(new GameObject().AddComponent <RotationAxis>()
                          .Initialize(_parentTransformHandle, Vector3.up, Vector3.forward, Color.blue));
            }

            if (_parentTransformHandle.axes == HandleAxes.Z || _parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.XYZ)
            {
                _axes.Add(new GameObject().AddComponent <RotationAxis>()
                          .Initialize(_parentTransformHandle, Vector3.forward, Vector3.right, Color.green));
            }

            return(this);
        }
Ejemplo n.º 2
0
        public PositionPlane Initialize(RuntimeTransformHandle p_runtimeHandle, Vector3 p_axis1, Vector3 p_axis2, Vector3 p_perp, Color p_color)
        {
            _parentTransformHandle = p_runtimeHandle;
            _defaultColor          = p_color;
            _axis1 = p_axis1;
            _axis2 = p_axis2;
            _perp  = p_perp;

            InitializeMaterial();

            transform.SetParent(p_runtimeHandle.transform, false);

            _handle = new GameObject();
            _handle.transform.SetParent(transform, false);
            MeshRenderer mr = _handle.AddComponent <MeshRenderer>();

            mr.material = _material;
            MeshFilter mf = _handle.AddComponent <MeshFilter>();

            mf.mesh = MeshUtils.CreateBox(.02f, .5f, 0.5f);
            MeshCollider mc = _handle.AddComponent <MeshCollider>();

            _handle.transform.localRotation = Quaternion.FromToRotation(Vector3.up, _perp);
            _handle.transform.localPosition = (_axis1 + _axis2) * .25f;

            return(this);
        }
Ejemplo n.º 3
0
        public RotationAxis Initialize(RuntimeTransformHandle p_runtimeHandle, Vector3 p_axis, Vector3 p_perp, Color p_color)
        {
            _parentTransformHandle = p_runtimeHandle;
            _axis         = p_axis;
            _perp1        = p_perp;
            _perp2        = Vector3.Cross(_axis, _perp1);
            _defaultColor = p_color;

            InitializeMaterial();

            transform.SetParent(p_runtimeHandle.transform, false);

            GameObject o = new GameObject();

            o.transform.SetParent(transform, false);
            MeshRenderer mr = o.AddComponent <MeshRenderer>();

            mr.material = _material;
            MeshFilter mf = o.AddComponent <MeshFilter>();

            mf.mesh = MeshUtils.CreateTorus(2f, .02f, 32, 6);
            MeshCollider mc = o.AddComponent <MeshCollider>();

            mc.sharedMesh             = MeshUtils.CreateTorus(2f, .1f, 32, 6);
            o.transform.localRotation = Quaternion.FromToRotation(Vector3.up, _axis);
            return(this);
        }
Ejemplo n.º 4
0
        public PositionHandle Initialize(RuntimeTransformHandle p_runtimeHandle)
        {
            _parentTransformHandle = p_runtimeHandle;
            transform.SetParent(_parentTransformHandle.transform, false);
            gameObject.layer = _parentTransformHandle.raycastLayer;

            _axes = new List <PositionAxis>();

            if (_parentTransformHandle.axes == HandleAxes.X || _parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.XYZ)
            {
                _axes.Add(new GameObject().AddComponent <PositionAxis>()
                          .Initialize(_parentTransformHandle, Vector3.right, -Vector3.forward, Color.red));
            }

            if (_parentTransformHandle.axes == HandleAxes.Y || _parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XYZ)
            {
                _axes.Add(new GameObject().AddComponent <PositionAxis>()
                          .Initialize(_parentTransformHandle, Vector3.up, Vector3.forward, Color.blue));
            }

            if (_parentTransformHandle.axes == HandleAxes.Z || _parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XYZ)
            {
                _axes.Add(new GameObject().AddComponent <PositionAxis>()
                          .Initialize(_parentTransformHandle, Vector3.forward, Vector3.right, Color.green));
            }

            _planes = new List <PositionPlane>();

            if (_parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.XYZ)
            {
                _planes.Add(new GameObject().AddComponent <PositionPlane>()
                            .Initialize(_parentTransformHandle, new Vector3(1, 1, 0), -Vector3.forward, new Color(0, 1, 0, .2f)));
            }

            if (_parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XYZ)
            {
                _planes.Add(new GameObject().AddComponent <PositionPlane>()
                            .Initialize(_parentTransformHandle, new Vector3(0, 1, 1), Vector3.right, new Color(1, 0, 0, .2f)));
            }

            if (_parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.XYZ)
            {
                _planes.Add(new GameObject().AddComponent <PositionPlane>()
                            .Initialize(_parentTransformHandle, new Vector3(1, 0, 1), Vector3.up, new Color(0, 0, 1, .2f)));
            }

            return(this);
        }
Ejemplo n.º 5
0
        public ScaleGlobal Initialize(RuntimeTransformHandle p_parentTransformHandle, Vector3 p_axis, Color p_color)
        {
            _parentTransformHandle = p_parentTransformHandle;
            _axis = p_axis;
            _defaultColor = p_color;
            
            InitializeMaterial();

            transform.SetParent(p_parentTransformHandle.transform, false);

            GameObject o = new GameObject();
            o.transform.SetParent(transform, false);
            MeshRenderer mr = o.AddComponent<MeshRenderer>();
            mr.material = _material;
            MeshFilter mf = o.AddComponent<MeshFilter>();
            mf.mesh = MeshUtils.CreateBox(.35f, .35f, .35f);
            MeshCollider mc = o.AddComponent<MeshCollider>();

            return this;
        }
Ejemplo n.º 6
0
        public ScaleAxis Initialize(RuntimeTransformHandle p_runtimeHandle, Vector3 p_axis, Vector3 p_perp,
                                    Color p_color)
        {
            _parentTransformHandle = p_runtimeHandle;
            _axis         = p_axis;
            _perp         = p_perp;
            _defaultColor = p_color;

            InitializeMaterial();

            transform.SetParent(p_runtimeHandle.transform, false);

            GameObject o = new GameObject();

            o.transform.SetParent(transform, false);
            MeshRenderer mr = o.AddComponent <MeshRenderer>();

            mr.material = _material;
            MeshFilter mf = o.AddComponent <MeshFilter>();

            mf.mesh = MeshUtils.CreateCone(p_axis.magnitude * SIZE, .02f, .02f, 8, 1);
            MeshCollider mc = o.AddComponent <MeshCollider>();

            mc.sharedMesh             = MeshUtils.CreateCone(p_axis.magnitude * SIZE, .1f, .02f, 8, 1);
            o.transform.localRotation = Quaternion.FromToRotation(Vector3.up, p_axis);
            o.layer = p_runtimeHandle.raycastLayer;

            o = new GameObject();
            o.transform.SetParent(transform, false);
            mr          = o.AddComponent <MeshRenderer>();
            mr.material = _material;
            mf          = o.AddComponent <MeshFilter>();
            mf.mesh     = MeshUtils.CreateBox(.25f, .25f, .25f);
            mc          = o.AddComponent <MeshCollider>();
            o.transform.localRotation = Quaternion.FromToRotation(Vector3.up, p_axis);
            o.transform.localPosition = p_axis * SIZE;
            o.layer = p_runtimeHandle.raycastLayer;

            return(this);
        }
Ejemplo n.º 7
0
        public RotationAxis Initialize(RuntimeTransformHandle p_runtimeHandle, Vector3 p_axis, Vector3 p_perp, Color p_color)
        {
            _parentTransformHandle = p_runtimeHandle;
            _axis         = p_axis;
            _perp         = p_perp;
            _defaultColor = p_color;

            InitializeMaterial();

            transform.SetParent(p_runtimeHandle.transform, false);

            GameObject o = new GameObject();

            o.transform.SetParent(transform, false);
            MeshRenderer mr = o.AddComponent <MeshRenderer>();

            mr.material = _material;
            MeshFilter mf = o.AddComponent <MeshFilter>();

            mf.mesh = MeshUtils.CreateTorus(2f, .02f, 32, 6);
            MeshCollider mc = o.AddComponent <MeshCollider>();

            mc.sharedMesh             = MeshUtils.CreateTorus(2f, .1f, 32, 6);
            o.transform.localRotation = Quaternion.FromToRotation(Vector3.up, _axis);
            o.layer = p_runtimeHandle.raycastLayer;

            o = new GameObject();
            o.transform.SetParent(transform, false);
            mr                        = o.AddComponent <MeshRenderer>();
            mr.material               = new Material(Shader.Find("sHTiF/HandleShader"));
            mr.material.color         = new Color(1, 1, 0, .5f);
            _arcMesh                  = o.AddComponent <MeshFilter>();
            o.transform.localRotation = Quaternion.FromToRotation(Vector3.up, _axis);
            o.layer                   = p_runtimeHandle.raycastLayer;
            o.SetActive(false);

            return(this);
        }
Ejemplo n.º 8
0
        public ScaleHandle Initialize(RuntimeTransformHandle p_parentTransformHandle)
        {
            _parentTransformHandle = p_parentTransformHandle;
            transform.SetParent(_parentTransformHandle.transform, false);

            _axes = new List <ScaleAxis>();

            if (_parentTransformHandle.axes == HandleAxes.X || _parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.XYZ)
            {
                _axes.Add(new GameObject().AddComponent <ScaleAxis>()
                          .Initialize(_parentTransformHandle, Vector3.right, -Vector3.forward, Color.red));
            }

            if (_parentTransformHandle.axes == HandleAxes.Y || _parentTransformHandle.axes == HandleAxes.XY || _parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XYZ)
            {
                _axes.Add(new GameObject().AddComponent <ScaleAxis>()
                          .Initialize(_parentTransformHandle, Vector3.up, Vector3.forward, Color.blue));
            }

            if (_parentTransformHandle.axes == HandleAxes.Z || _parentTransformHandle.axes == HandleAxes.XZ || _parentTransformHandle.axes == HandleAxes.YZ || _parentTransformHandle.axes == HandleAxes.XYZ)
            {
                _axes.Add(new GameObject().AddComponent <ScaleAxis>()
                          .Initialize(_parentTransformHandle, Vector3.forward, Vector3.right, Color.green));
            }

            if (_parentTransformHandle.axes != HandleAxes.X && _parentTransformHandle.axes != HandleAxes.Y && _parentTransformHandle.axes != HandleAxes.Z)
            {
                _globalAxis = new GameObject().AddComponent <ScaleGlobal>()
                              .Initialize(_parentTransformHandle, HandleBase.GetVectorFromAxes(_parentTransformHandle.axes), Color.white);

                _globalAxis.InteractionStart  += OnGlobalInteractionStart;
                _globalAxis.InteractionUpdate += OnGlobalInteractionUpdate;
                _globalAxis.InteractionEnd    += OnGlobalInteractionEnd;
            }

            return(this);
        }