public static Point3D FindCoincident3DPoint(PrimitiveCurve[] curves) { Point3D[][] EndPoints = new Point3D[2][]; for (int count = 0; count < 2; count++) { EndPoints[count] = new Point3D[2]; } EnhancedPrimitiveCurve epc = (EnhancedPrimitiveCurve)curves[0]; EndPoints[0][0] = epc.Points3D[0]; EndPoints[0][1] = epc.Points3D[1]; epc = (EnhancedPrimitiveCurve)curves[1]; EndPoints[1][0] = epc.Points3D[0]; EndPoints[1][1] = epc.Points3D[1]; Point3D CP = Point3DCompareReturn(EndPoints[0], EndPoints[1]); return(CP); }
public override void UpdateCurvesGeometry() { //Now comes the tedious job to draw the feature curves of the cuboid //Define the vertices of the cube centered at the center of the coordinate system Point3D A = new Point3D(-0.5 * Width, 0.5 * Height, 0.5 * Depth); Point3D B = new Point3D(0.5 * Width, 0.5 * Height, 0.5 * Depth); Point3D C = new Point3D(0.5 * Width, -0.5 * Height, 0.5 * Depth); Point3D Dc = new Point3D(-0.5 * Width, -0.5 * Height, 0.5 * Depth); Point3D E = new Point3D(-0.5 * Width, 0.5 * Height, -0.5 * Depth); Point3D F = new Point3D(0.5 * Width, 0.5 * Height, -0.5 * Depth); Point3D G = new Point3D(0.5 * Width, -0.5 * Height, -0.5 * Depth); Point3D Hc = new Point3D(-0.5 * Width, -0.5 * Height, -0.5 * Depth); Point3D[] Pnts = new Point3D[] { A, B, C, Dc, E, F, G, Hc }; double[][] P = FindTransformationMatrix(W, H, D); TransformPoints(Pnts, Center, P); A = Pnts[0]; B = Pnts[1]; C = Pnts[2]; Dc = Pnts[3]; E = Pnts[4]; F = Pnts[5]; G = Pnts[6]; Hc = Pnts[7]; FeatureCurves[0].Points = ShapeHelper.ProjectCurve(A, E); FeatureCurves[1].Points = ShapeHelper.ProjectCurve(A, B); FeatureCurves[2].Points = ShapeHelper.ProjectCurve(B, F); FeatureCurves[3].Points = ShapeHelper.ProjectCurve(E, F); FeatureCurves[4].Points = ShapeHelper.ProjectCurve(Dc, Hc); FeatureCurves[5].Points = ShapeHelper.ProjectCurve(C, Dc); FeatureCurves[6].Points = ShapeHelper.ProjectCurve(C, G); FeatureCurves[7].Points = ShapeHelper.ProjectCurve(G, Hc); FeatureCurves[8].Points = ShapeHelper.ProjectCurve(A, Dc); FeatureCurves[9].Points = ShapeHelper.ProjectCurve(B, C); FeatureCurves[10].Points = ShapeHelper.ProjectCurve(F, G); FeatureCurves[11].Points = ShapeHelper.ProjectCurve(E, Hc); EnhancedPrimitiveCurve ec = (EnhancedPrimitiveCurve)FeatureCurves[0]; ec.Points3D = new Point3D[] { A, E }; ec = (EnhancedPrimitiveCurve)FeatureCurves[1]; ec.Points3D = new Point3D[] { A, B }; ec = (EnhancedPrimitiveCurve)FeatureCurves[2]; ec.Points3D = new Point3D[] { B, F }; ec = (EnhancedPrimitiveCurve)FeatureCurves[3]; ec.Points3D = new Point3D[] { E, F }; ec = (EnhancedPrimitiveCurve)FeatureCurves[4]; ec.Points3D = new Point3D[] { Dc, Hc }; ec = (EnhancedPrimitiveCurve)FeatureCurves[5]; ec.Points3D = new Point3D[] { C, Dc }; ec = (EnhancedPrimitiveCurve)FeatureCurves[6]; ec.Points3D = new Point3D[] { C, G }; ec = (EnhancedPrimitiveCurve)FeatureCurves[7]; ec.Points3D = new Point3D[] { G, Hc }; ec = (EnhancedPrimitiveCurve)FeatureCurves[8]; ec.Points3D = new Point3D[] { A, Dc }; ec = (EnhancedPrimitiveCurve)FeatureCurves[9]; ec.Points3D = new Point3D[] { B, C }; ec = (EnhancedPrimitiveCurve)FeatureCurves[10]; ec.Points3D = new Point3D[] { F, G }; ec = (EnhancedPrimitiveCurve)FeatureCurves[11]; ec.Points3D = new Point3D[] { E, Hc }; }