Exemplo n.º 1
0
        public static AbstractPolygon makePlaneWall(int lineIndex, List <AbstractLineSegment> lineList0, List <AbstractLineSegment> lineList1)
        {
            AbstractLineSegment line0 = lineList0[lineIndex];
            AbstractLineSegment line1 = lineList1[lineIndex];
            AbstractPoint       point01;
            AbstractPoint       point02;
            AbstractPoint       point11;
            AbstractPoint       point12;

            if (line0.GetComponent <InteractableLineSegment>() != null)
            {
                point01 = line0.transform.GetComponent <InteractableLineSegment>().point1;
                point02 = line0.transform.GetComponent <InteractableLineSegment>().point2;
            }
            else            //(line0.GetComponent<DependentLineSegment>() != null)
            {
                point01 = line0.transform.GetComponent <DependentLineSegment>().point1;
                point02 = line0.transform.GetComponent <DependentLineSegment>().point2;
            }


            if (line1.GetComponent <InteractableLineSegment>() != null)
            {
                point11 = line1.transform.GetComponent <InteractableLineSegment>().point1;
                point12 = line1.transform.GetComponent <InteractableLineSegment>().point2;
            }
            else             //(line1.GetComponent<DependentLineSegment>() != null)
            {
                point11 = line1.transform.GetComponent <DependentLineSegment>().point1;
                point12 = line1.transform.GetComponent <DependentLineSegment>().point2;
            }


            AbstractLineSegment line2 = iLineSegment(point01, point11);
            AbstractLineSegment line3 = iLineSegment(point02, point12);

            HW_GeoSolver.ins.AddDependence(line2, point01);
            HW_GeoSolver.ins.AddDependence(line2, point11);
            HW_GeoSolver.ins.AddDependence(line3, point02);
            HW_GeoSolver.ins.AddDependence(line3, point12);

            line2.transform.GetComponent <AbstractLineSegment>().InitializeFigure();
            line3.transform.GetComponent <AbstractLineSegment>().InitializeFigure();

            List <AbstractLineSegment> lineList = new List <AbstractLineSegment>();

            lineList.Add(line0);
            lineList.Add(line1);
            lineList.Add(line2);
            lineList.Add(line3);

            List <AbstractPoint> pointList = new List <AbstractPoint>();

            pointList.Add(point01);
            pointList.Add(point02);
            pointList.Add(point12);
            pointList.Add(point11);

            return(iPolygon(lineList, pointList));
        }
Exemplo n.º 2
0
        public void makeRevolvedSurface(AbstractLineSegment attachedLine, Vector3 revPoint, Vector3 normDir)
        {
            #region intialize a cylinder, cone or conic /etc.
            InteractablePoint newPoint = InteractablePoint.Constructor();
            newPoint.Position3 = revPoint;            //nullreference on this line from shipswheel

            DependentRevolvedSurface drs = GeoObjConstruction.dRevSurface(newPoint.GetComponent <AbstractPoint>(), attachedLine, normDir);
            HW_GeoSolver.ins.AddDependence(drs, newPoint);
            HW_GeoSolver.ins.AddDependence(drs, attachedLine.GetComponent <MasterGeoObj>());
            #endregion
        }