public InstanceOf(ApexType type, IApexNode sourExpression) { _type = type; _sourExpression = sourExpression as Expression; }
static Tuple2<Vector3, Vector3> GetTangentPoints(ApexType type1, Vector3 center1, ApexType type2, Vector3 center2, float radius) { Tuple2<Vector3, Vector3> answer; if (type1 == ApexType.Point && type2 == ApexType.Point) { answer = new Tuple2<Vector3, Vector3>(center1, center2); } else if (type1 == ApexType.Point) { Vector3 tmp = MathUtility.GetTangent(center2, radius, center1, type2 == ApexType.Left); answer = new Tuple2<Vector3, Vector3>(center1, tmp); } else if (type2 == ApexType.Point) { Vector3 tmp = MathUtility.GetTangent(center1, radius, center2, type1 == ApexType.Right); answer = new Tuple2<Vector3, Vector3>(tmp, center2); } else if (type1 == type2) { answer = MathUtility.GetOutterTangent(center1, radius, center2, radius, type1 == ApexType.Left); } else { answer = MathUtility.GetInnerTangent(center1, radius, center2, radius, type1 == ApexType.Right); } return answer; }
public CastExpression(ApexType type, IApexNode sourExpression) { _type = type; _sourExpression = sourExpression as Expression; }