idTech4.Extensions.FixDegenerateNormal C# (CSharp) 메소드

FixDegenerateNormal() 공개 정적인 메소드

public static FixDegenerateNormal ( this v ) : bool
v this
리턴 bool
		public static bool FixDegenerateNormal(this Vector3 v)
		{
			if(v.X == 0.0f)
			{
				if(v.Y == 0.0f)
				{
					if(v.Z > 0.0f)
					{
						if(v.Z != 1.0f)
						{
							v.Z = 1.0f;
							return true;
						}
					}
					else
					{
						if(v.Z != -1.0f)
						{
							v.Z = -1.0f;
							return true;
						}
					}
					return false;
				}
				else if(v.Z == 0.0f)
				{
					if(v.Y > 0.0f)
					{
						if(v.Y != 1.0f)
						{
							v.Y = 1.0f;
							return true;
						}
					}
					else
					{
						if(v.Y != -1.0f)
						{
							v.Y = -1.0f;
							return true;
						}
					}
					return false;
				}
			}
			else if(v.Y == 0.0f)
			{
				if(v.Z == 0.0f)
				{
					if(v.X > 0.0f)
					{
						if(v.X != 1.0f)
						{
							v.X = 1.0f;
							return true;
						}
					}
					else
					{
						if(v.X != -1.0f)
						{
							v.X = -1.0f;
							return true;
						}
					}
					return false;
				}
			}
			if(idMath.Abs(v.X) == 1.0f)
			{
				if((v.X != 0.0f) || (v.Z != 0.0f))
				{
					v.Y = v.Z = 0.0f;
					return true;
				}
				return false;
			}
			else if(idMath.Abs(v.Y) == 1.0f)
			{
				if((v.X != 0.0f) || (v.Z != 0.0f))
				{
					v.X = v.Z = 0.0f;
					return true;
				}
				return false;
			}
			else if(idMath.Abs(v.Z) == 1.0f)
			{
				if((v.X != 0.0f) || (v.Y != 0.0f))
				{
					v.X = v.Y = 0.0f;
					return true;
				}
				return false;
			}
			return false;
		}