//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(); } } }
//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(); } }
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()); }
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); }