Esempio n. 1
0
 //Event for buy menu buttons to add new blocks
 private static void buyMenuButtonClickEvent(int newBlockLevel)
 {
     if (PointGeneration.totalPoint >= newBlockLevel * staticMultiplier)
     {
         bool output = ObjectPlacement.placeBuyedBlock(newBlockLevel);
         if (output)
         {
             PointGeneration.totalPoint -= newBlockLevel * staticMultiplier;
             PointGeneration.immediateUpdate();
         }
     }
 }
Esempio n. 2
0
    //public GameObject[] platformsToSpawn;


    // Use this for initialization
    void Start()
    {
        //platformWidth = platformToSpawn.GetComponent<BoxCollider2D>().size.x;

        platformWidths = new float[poolObjects.Length];

        for (int i = 0; i < poolObjects.Length; i++)
        {
            platformWidths[i] = poolObjects[i].poolObject.GetComponent <BoxCollider2D>().size.x;
        }

        minHeight = -3.5f;
        maxHeight = maxHeightPoint.position.y;

        pointGenerator = FindObjectOfType <PointGeneration>();
    }
    public void RegeneratePoints()
    {
        switch (samplingMethod)
        {
        case SamplingTypes.Random:
            points = PointGeneration.random_sampling(numPoints, regionSize);
            break;

        case SamplingTypes.Poisson:
            points    = PointGeneration.poisson_sampling(numPoints, regionSize, radius, retryAttempts);
            numPoints = points.Count;
            break;

        case SamplingTypes.ImprovedPoisson:
            points    = PointGeneration.improved_poisson_sampling(numPoints, regionSize, radius, retryAttempts);
            numPoints = points.Count;
            break;

        default:
            throw new ArgumentOutOfRangeException();
        }
    }
Esempio n. 4
0
        public List <Point> DevelopPolyline(ObjectId plineID, bool reverse, double startBGL, double endBGL)
        {
            Database workingDatabase = HostApplicationServices.WorkingDatabase;
            PointSet pointSet        = new PointSet();

            using (Transaction transaction = workingDatabase.TransactionManager.StartTransaction())
            {
                DBObject @object = transaction.GetObject(plineID, (OpenMode)0, true);
                pointSet = PointGeneration.SubdividePolyline(@object, transaction, 0.0);
            }
            if (reverse)
            {
                pointSet.Reverse();
            }
            PointSet pointSet2 = new PointSet();
            double   num       = 0.0;
            double   num2      = 0.0;
            double   num3      = 0.0;

            for (int i = 0; i < pointSet.Count - 1; i++)
            {
                double num4 = pointSet[i].DistanceTo(pointSet[i + 1]);
                double num5 = pointSet[i].DistanceXY(pointSet[i + 1]);
                if (startBGL >= num && startBGL < num + num4)
                {
                    ngeometry.VectorGeometry.Vector3d vector3d = new ngeometry.VectorGeometry.Vector3d(pointSet[i + 1] - pointSet[i]);
                    vector3d.Norm = Math.Abs(startBGL - num);
                    pointSet2.Add(pointSet[i] + vector3d.ToPoint());
                    num3 = num2 + pointSet[i].DistanceXY(pointSet[i] + vector3d.ToPoint());
                }
                if (num > startBGL && num < endBGL)
                {
                    pointSet2.Add(pointSet[i]);
                }
                if (endBGL > num && endBGL <= num + num4)
                {
                    ngeometry.VectorGeometry.Vector3d vector3d2 = new ngeometry.VectorGeometry.Vector3d(pointSet[i + 1] - pointSet[i]);
                    vector3d2.Norm = Math.Abs(endBGL - num);
                    pointSet2.Add(pointSet[i] + vector3d2.ToPoint());
                }
                num  += num4;
                num2 += num5;
            }
            if (endBGL > num)
            {
                pointSet2.Add(pointSet[pointSet.Count - 1]);
            }
            PointSet pointSet3 = new PointSet();
            double   num6      = num3;

            for (int j = 0; j < pointSet2.Count; j++)
            {
                pointSet3.Add(new Point(num6, CMD_Development.double_2 * pointSet2[j].Z, 0.0));
                if (j == pointSet2.Count - 1)
                {
                    break;
                }
                num6 += pointSet2[j].DistanceXY(pointSet2[j + 1]);
            }
            return(pointSet3.ToList());
        }
Esempio n. 5
0
        public static List <Edge> ToCeometricEdgeList(ObjectId[] idArray)
        {
            Database    workingDatabase = HostApplicationServices.WorkingDatabase;
            List <Edge> list            = new List <Edge>();

            using (Transaction transaction = workingDatabase.TransactionManager.StartTransaction())
            {
                for (int i = 0; i < idArray.Length; i++)
                {
                    DBObject @object = transaction.GetObject(idArray[i], (OpenMode)0);
                    if (!(@object == null))
                    {
                        Autodesk.AutoCAD.DatabaseServices.Line line = @object as Autodesk.AutoCAD.DatabaseServices.Line;
                        if (line != null)
                        {
                            ngeometry.VectorGeometry.Point startPoint = Conversions.ToCeometricPoint(line.StartPoint);
                            ngeometry.VectorGeometry.Point endPoint   = Conversions.ToCeometricPoint(line.EndPoint);
                            list.Add(new Edge(startPoint, endPoint));
                        }
                        else
                        {
                            PointSet pointSet = null;
                            Polyline polyline = @object as Polyline;
                            if (polyline != null)
                            {
                                pointSet = PointGeneration.SubdivideLWPolyline(polyline, 0.0);
                                if (polyline.Closed)
                                {
                                    pointSet.Add(pointSet[0]);
                                }
                            }
                            Polyline2d polyline2d = @object as Polyline2d;
                            if (polyline2d != null)
                            {
                                pointSet = PointGeneration.SubdividePolyline2d(polyline2d, transaction, 0.0);
                                if (polyline2d.Closed)
                                {
                                    pointSet.Add(pointSet[0]);
                                }
                            }
                            Polyline3d polyline3d = @object as Polyline3d;
                            if (polyline3d != null)
                            {
                                pointSet = PointGeneration.SubdividePolyline3d(polyline3d, transaction, 0.0);
                                if (polyline3d.Closed)
                                {
                                    pointSet.Add(pointSet[0]);
                                }
                            }
                            if (pointSet != null)
                            {
                                for (int j = 0; j < pointSet.Count - 1; j++)
                                {
                                    list.Add(new Edge(pointSet[j], pointSet[j + 1]));
                                }
                            }
                        }
                    }
                }
            }
            return(list);
        }