SA.FullBodyIK._LimitXY_Square C# (CSharp) Method

_LimitXY_Square() public static method

public static _LimitXY_Square ( Vector3 &dir, float limitXMinus, float limitXPlus, float limitYMinus, float limitYPlus ) : bool
dir Vector3
limitXMinus float
limitXPlus float
limitYMinus float
limitYPlus float
return bool
		public static bool _LimitXY_Square(
			ref Vector3 dir,                // dirZ
			float limitXMinus,               // X-
			float limitXPlus,                // X+
			float limitYMinus,               // Z-
			float limitYPlus )               // Z+
		{
			bool isXLimited = false;
			bool isYLimited = false;

			if( dir.x < -limitXMinus ) {
				dir.x = -limitXMinus;
				isXLimited = true;
			} else if( dir.x > limitXPlus ) {
				dir.x = limitXPlus;
				isXLimited = true;
			}

			if( dir.y < -limitYMinus ) {
				dir.y = -limitYMinus;
				isYLimited = true;
			} else if( dir.y > limitYPlus ) {
				dir.y = limitYPlus;
				isYLimited = true;
			}

			if( isXLimited || isYLimited ) {
				dir.z = SAFBIKSqrt( 1.0f - (dir.x * dir.x + dir.y * dir.y) );
				return true;
			} else {
				if( dir.z < 0.0f ) {
					dir.z = -dir.z;
					return true;
                }
			}

			return false;
		}
FullBodyIK