IsValid() public method

public IsValid ( bool log ) : bool
log bool
return bool
Example #1
0
        /*
         * Draws the scene view helpers for IKSolverFullBodyBiped
         * */
        public static void AddScene(IKSolverFullBodyBiped solver, Color color, bool modifiable, ref int selectedEffector, Transform root)
        {
            if (!solver.IsValid(false))
            {
                return;
            }

            float heightF = Vector3.Distance(solver.chain.children[0].nodes[0].transform.position, solver.chain.children[0].nodes[1].transform.position) +
                            Vector3.Distance(solver.chain.children[2].nodes[0].transform.position, solver.chain.children[2].nodes[1].transform.position);

            float size = Mathf.Clamp(heightF * 0.1f, 0.005f, 0.05f);

            // Chain
            if (!Application.isPlaying)
            {
                IKSolverFullBodyInspector.AddChain(solver.chain, color, size);
                Handles.DrawLine(solver.chain.children[0].nodes[0].transform.position, solver.chain.children[1].nodes[0].transform.position);
                Handles.DrawLine(solver.chain.children[2].nodes[0].transform.position, solver.chain.children[3].nodes[0].transform.position);

                AddLimbHelper(solver.chain.children[0], size);
                AddLimbHelper(solver.chain.children[1], size);
                AddLimbHelper(solver.chain.children[2], size, root);
                AddLimbHelper(solver.chain.children[3], size, root);
            }

            // Effectors
            IKSolverFullBodyInspector.AddScene(solver, color, modifiable, ref selectedEffector, size);
        }
        // Draws the scene view helpers for IKSolverFullBodyBiped
        public static void AddScene(UnityEngine.Object target, IKSolverFullBodyBiped solver, Color color, ref int selectedEffector, Transform root)
        {
            if (Application.isPlaying && !solver.initiated) return;
            if (!Application.isPlaying && !solver.IsValid()) return;

            bool modifiable = solver.initiated;

            //@todo TEMP
            /*
            for (int i = 0; i < solver.chain.Length; i++) {
                for (int n = 0; n < solver.chain[i].nodes.Length; n++) {
                    Handles.DotCap(0, solver.chain[i].nodes[n].solverPosition, Quaternion.identity, 0.02f);
                }
            }
            */
            /*
            foreach (IKMappingLimb limb in solver.limbMappings) {
                Handles.DotCap(0, limb.GetBoneMap(IKMappingLimb.BoneMapType.Bone3).node.solverPosition, Quaternion.identity, 0.02f);
            }
            */

            float heightF = Vector3.Distance(solver.chain[1].nodes[0].transform.position, solver.chain[1].nodes[1].transform.position) +
                Vector3.Distance(solver.chain[3].nodes[0].transform.position, solver.chain[3].nodes[1].transform.position);

            float size = Mathf.Clamp(heightF * 0.075f, 0.001f, Mathf.Infinity);

            // Bend goals
            for (int i = 0; i < solver.chain.Length; i++) {
                if (solver.chain[i].nodes.Length == 3 && solver.chain[i].bendConstraint.bendGoal != null && solver.chain[i].bendConstraint.weight > 0f) {
                    Color c = color;
                    c.a = solver.chain[i].bendConstraint.weight;
                    Handles.color = c;

                    Handles.DrawLine(solver.chain[i].nodes[1].transform.position, solver.chain[i].bendConstraint.bendGoal.position);
                    Handles.SphereCap(0, solver.chain[i].nodes[1].transform.position, Quaternion.identity, size * 0.5f);
                    Handles.SphereCap(0, solver.chain[i].bendConstraint.bendGoal.position, Quaternion.identity, size * 0.5f);

                    Handles.color = Color.white;
                }
            }

            // Chain
            if (!modifiable) {
                for (int i = 0; i < solver.chain.Length; i++) {
                    IKSolverFullBodyInspector.AddChain(solver.chain, i, color, size);
                }

                Handles.DrawLine(solver.chain[1].nodes[0].transform.position, solver.chain[2].nodes[0].transform.position);
                Handles.DrawLine(solver.chain[3].nodes[0].transform.position, solver.chain[4].nodes[0].transform.position);

                AddLimbHelper(solver.chain[1], size);
                AddLimbHelper(solver.chain[2], size);
                AddLimbHelper(solver.chain[3], size, root);
                AddLimbHelper(solver.chain[4], size, root);
            }

            // Effectors
            IKSolverFullBodyInspector.AddScene(target, solver, color, modifiable, ref selectedEffector, size);
        }
        // Draws the scene view helpers for IKSolverFullBodyBiped
        public static void AddScene(UnityEngine.Object target, IKSolverFullBodyBiped solver, Color color, ref int selectedEffector, Transform root)
        {
            if (Application.isPlaying && !solver.initiated)
            {
                return;
            }
            if (!Application.isPlaying && !solver.IsValid())
            {
                return;
            }

            bool modifiable = solver.initiated;

            float heightF = Vector3.Distance(solver.chain[1].nodes[0].transform.position, solver.chain[1].nodes[1].transform.position) +
                            Vector3.Distance(solver.chain[3].nodes[0].transform.position, solver.chain[3].nodes[1].transform.position);

            float size = Mathf.Clamp(heightF * 0.075f, 0.001f, Mathf.Infinity);

            // Bend goals
            for (int i = 0; i < solver.chain.Length; i++)
            {
                if (solver.chain[i].nodes.Length == 3 && solver.chain[i].bendConstraint.bendGoal != null && solver.chain[i].bendConstraint.weight > 0f)
                {
                    Color c = color;
                    c.a           = solver.chain[i].bendConstraint.weight;
                    Handles.color = c;

                    Handles.DrawLine(solver.chain[i].nodes[1].transform.position, solver.chain[i].bendConstraint.bendGoal.position);
                    Handles.SphereHandleCap(0, solver.chain[i].nodes[1].transform.position, Quaternion.identity, size * 0.5f, EventType.Repaint);
                    Handles.SphereHandleCap(0, solver.chain[i].bendConstraint.bendGoal.position, Quaternion.identity, size * 0.5f, EventType.Repaint);

                    Handles.color = Color.white;
                }
            }

            // Chain
            if (!modifiable)
            {
                for (int i = 0; i < solver.chain.Length; i++)
                {
                    IKSolverFullBodyInspector.AddChain(solver.chain, i, color, size);
                }

                Handles.DrawLine(solver.chain[1].nodes[0].transform.position, solver.chain[2].nodes[0].transform.position);
                Handles.DrawLine(solver.chain[3].nodes[0].transform.position, solver.chain[4].nodes[0].transform.position);

                AddLimbHelper(solver.chain[1], size);
                AddLimbHelper(solver.chain[2], size);
                AddLimbHelper(solver.chain[3], size, root);
                AddLimbHelper(solver.chain[4], size, root);
            }

            // Effectors
            IKSolverFullBodyInspector.AddScene(target, solver, color, modifiable, ref selectedEffector, size);
        }
		// Draws the scene view helpers for IKSolverFullBodyBiped
		public static void AddScene(IKSolverFullBodyBiped solver, Color color, bool modifiable, ref int selectedEffector, Transform root) {
			if (!solver.IsValid(false)) return;
			if (Application.isPlaying && !solver.initiated) return;

			float heightF = Vector3.Distance(solver.chain[1].nodes[0].transform.position, solver.chain[1].nodes[1].transform.position) + 
				Vector3.Distance(solver.chain[3].nodes[0].transform.position, solver.chain[3].nodes[1].transform.position);

			float size = Mathf.Clamp(heightF * 0.075f, 0.001f, Mathf.Infinity);

			// Bend goals
			for (int i = 0; i < solver.chain.Length; i++) {
				if (solver.chain[i].nodes.Length == 3 && solver.chain[i].bendConstraint.bendGoal != null && solver.chain[i].bendConstraint.weight > 0f) {
					Color c = color;
					c.a = solver.chain[i].bendConstraint.weight;
					Handles.color = c;
					
					Handles.DrawLine(solver.chain[i].nodes[1].transform.position, solver.chain[i].bendConstraint.bendGoal.position);
					Handles.SphereCap(0, solver.chain[i].nodes[1].transform.position, Quaternion.identity, size * 0.5f);
					Handles.SphereCap(0, solver.chain[i].bendConstraint.bendGoal.position, Quaternion.identity, size * 0.5f);
					
					Handles.color = Color.white;
				}
			}

			// Chain
			if (!Application.isPlaying) {
				for (int i = 0; i < solver.chain.Length; i++) {
					IKSolverFullBodyInspector.AddChain(solver.chain, i, color, size);
				}

				Handles.DrawLine(solver.chain[1].nodes[0].transform.position, solver.chain[2].nodes[0].transform.position);
				Handles.DrawLine(solver.chain[3].nodes[0].transform.position, solver.chain[4].nodes[0].transform.position);

				AddLimbHelper(solver.chain[1], size);
				AddLimbHelper(solver.chain[2], size);
				AddLimbHelper(solver.chain[3], size, root);
				AddLimbHelper(solver.chain[4], size, root);
			}
			
			// Effectors
			IKSolverFullBodyInspector.AddScene(solver, color, modifiable, ref selectedEffector, size);
		}
        /*
         * Draws the scene view helpers for IKSolverFullBodyBiped
         * */
        public static void AddScene(IKSolverFullBodyBiped solver, Color color, bool modifiable, ref int selectedEffector, Transform root)
        {
            if (!solver.IsValid(false)) return;

            float heightF = Vector3.Distance(solver.chain[1].nodes[0].transform.position, solver.chain[1].nodes[1].transform.position) +
                Vector3.Distance(solver.chain[3].nodes[0].transform.position, solver.chain[3].nodes[1].transform.position);

            float size = Mathf.Clamp(heightF * 0.075f, 0.001f, Mathf.Infinity);

            // Chain
            if (!Application.isPlaying) {
                for (int i = 0; i < solver.chain.Length; i++) {
                    IKSolverFullBodyInspector.AddChain(solver.chain, i, color, size);
                }

                Handles.DrawLine(solver.chain[1].nodes[0].transform.position, solver.chain[2].nodes[0].transform.position);
                Handles.DrawLine(solver.chain[3].nodes[0].transform.position, solver.chain[4].nodes[0].transform.position);

                AddLimbHelper(solver.chain[1], size);
                AddLimbHelper(solver.chain[2], size);
                AddLimbHelper(solver.chain[3], size, root);
                AddLimbHelper(solver.chain[4], size, root);
            }

            // Effectors
            IKSolverFullBodyInspector.AddScene(solver, color, modifiable, ref selectedEffector, size);
        }