public Vector3 GetNewPositionDir(Vector3 point, Vector3[] normalVector, double distancex, double distancey, double distancez) { Vector3 directionVector = new Vector3(0, 0, 0); foreach (Vector3 vector in normalVector) { directionVector.AddInternal(vector); } directionVector.NormalizeSafe(); directionVector.Scale(distancex + distancey); Vector3 result = GetVectorDistanceDir(directionVector, point, distancex, distancey, distancez); result.x = Math.Max(result.x, 0); result.x = Math.Min(result.x, _MaxXExtension); result.y = Math.Max(result.y, 0); result.y = Math.Min(result.y, _MaxYExtension); result.z = Math.Min(result.z, _MaxZExtension); if (_RemoveButtonExtension) { result.z = Math.Max(result.z, 0); } if (_RemoveTopExtension) { result.z = Math.Min(result.z, point.z); } return(result); }
public Vector3 GetNewPosition(Vector3 point, Vector3[] normalVector, double distance) { Vector3 directionVector = new Vector3(0, 0, 0); foreach (Vector3 vector in normalVector) { directionVector.AddInternal(vector); } directionVector.NormalizeSafe(); directionVector.Scale(distance); Vector3 result = point.Add(directionVector); if (_RemoveButtonExtension) { result.z = Math.Max(result.z, 0); } if (_RemoveTopExtension) { result.z = Math.Min(result.z, point.z); } return(result); }