Exemplo n.º 1
0
        // funkce 2.4
        public static GP VypisGPDetail(int id, Database pDb = null)
        {
            Database db;

            if (pDb == null)
            {
                db = new Database();
                db.Connect();
            }
            else
            {
                db = (Database)pDb;
            }

            SqlCommand command = db.CreateCommand(SQL_SELECT_DETAIL);

            command.Parameters.AddWithValue("@id", id);
            SqlDataReader reader = db.Select(command);

            GP GP = CteniGPDetail(reader);

            reader.Close();

            if (pDb == null)
            {
                db.Close();
            }

            return(GP);
        }
        public override void Run(RenderControl renderer)
        {
            var ellipse = SketchBuilder.MakeEllipse(GP.Origin(), 10, 5, GP.DX(), GP.DZ());

            renderer.ShowShape(ellipse, Vector3.Blue);

            ParametricCurve pc = new ParametricCurve(ellipse);

            var paramsList = pc.SplitByUniformLength(1, 0.01);

            uint itemCount = (uint)paramsList.Count;
            var  points    = new ParticleSceneNode(itemCount, Vector3.Green, 5.0f);
            var  lines     = new SegmentsSceneNode(itemCount, Vector3.Red, 2);

            Random random = new Random();

            for (int ii = 0; ii < paramsList.Count; ++ii)
            {
                var value = pc.D1(paramsList[ii]);
                var pos   = value.GetPoint();
                var dir   = value.GetVectors()[0];
                var end   = new GPnt(pos.XYZ().Added(dir.XYZ()));

                lines.SetPositions((uint)ii, Vector3.From(pos), Vector3.From(end));
                lines.SetColors((uint)ii, Vector3.Red, Vector3.From(random.NextDouble(), random.NextDouble(), random.NextDouble()));

                points.SetPosition((uint)ii, Vector3.From(pos));
            }

            renderer.ShowSceneNode(points);
            renderer.ShowSceneNode(lines);
        }
Exemplo n.º 3
0
        public override void Run(RenderControl render)
        {
            var material = MeshStandardMaterial.Create("workpiece");

            material.SetColor(new Vector3(0.9f));
            material.SetFaceSide(EnumFaceSide.DoubleSide);

            var shape = ShapeBuilder.MakeCylinder(GP.YOZ(), 5, 50, 0);

            mWorkpiece = BrepSceneNode.Create(shape, material, null);

            render.ShowSceneNode(mWorkpiece);

            var coord     = new GAx2(new GPnt(0, 0, 5), GP.DZ());
            var toolShape = ShapeBuilder.MakeCone(coord, 0, 2, 5, 0);
            var toolNode  = render.ShowShape(toolShape, ColorTable.Blue);


            render.ShowSceneNode(mMotionTrail);


            // Initialize Animation
            mAnimation = new RigidAnimation();

            var rotation = Matrix4.makeRotationAxis(new Vector3(1, 0, 0), (float)Math.PI);
            var trf      = Matrix4.makeTranslation(-50, 0, 0) * rotation;

            mAnimation.Add(new MatrixAnimationClip(mWorkpiece, mWorkpiece.GetTransform(), trf, 0, 10));
            mAnimation.Add(new MatrixAnimationClip(toolNode, toolNode.GetTransform(), trf, 10, 15));
            mAnimation.Add(new RotateAnimationClip(toolNode, Vector3.UNIT_Z, (float)Math.PI * 4, 16, 20));
        }
Exemplo n.º 4
0
            public override Shape drawShape(Graphics g)
            {
                Point[] po =
                {
                    new Point(x,       y),
                    new Point(300 + x, y),
                    new Point(300 + x, 100 + y),
                    new Point(200 + x, 100 + y),
                    new Point(200 + x, 150 + y),
                    new Point(100 + x, 150 + y), // start
                    new Point(100 + x, 100 + y), // end
                    new Point(x,       100 + y),
                    new Point(x,       y)
                };

                lineStart = new Point(100 + x, 150 + y);
                lineEnd   = new Point(100 + x, 100 + y);

                xlineStart = 100 + x;
                ylineStart = 150 + y;

                xlineEnd = 100 + x;
                ylineEnd = 100 + y;

                GP.Reset();
                GP.AddPolygon(po);

                g.DrawPath(new Pen(myColor, 5), GP);

                return(this);
            }
Exemplo n.º 5
0
        public override void Run(RenderControl render)
        {
            // 1. Make face with a hole.
            var c1 = SketchBuilder.MakeCircle(GP.Origin(), 30, GP.DZ());
            var c2 = SketchBuilder.MakeCircle(GP.Origin(), 100, GP.DZ());

            var face  = SketchBuilder.MakePlanarFace(c2);
            var face2 = SketchBuilder.MakePlanarFace(c1);
            var shape = BooleanTool.Cut(face, face2);
            //render.ShowShape(shape, ColorTable.Blue);

            var faces = shape.GetChildren(EnumTopoShapeType.Topo_FACE);

            // 2. Hatch the face.
            foreach (var item in faces)
            {
                HatchHatcher hh = new HatchHatcher(item);
                hh.Build();
                var material = BasicMaterial.Create("line");
                material.SetColor(new Vector3(0.5f, 0.5f, 1.0f));
                var node = hh.Create(material);

                // 3. Show the hatching lines.
                render.ShowSceneNode(node);
            }
        }
        public override void Run(RenderControl render)
        {
            RedMaterial = MeshPhongMaterial.Create("phong.color");
            RedMaterial.SetColor(Vector3.Red);

            GrayMaterial = MeshPhongMaterial.Create("phong.color");
            GrayMaterial.SetColor(Vector3.LightGray);
            GrayMaterial.SetTransparent(true);
            GrayMaterial.SetOpacity(0.5f);

            var tube = ShapeBuilder.MakeTube(new GPnt(0, 0, 5), GP.DZ(), 10, 2, 50);

            TubeNode = BrepSceneNode.Create(tube, RedMaterial, null);

            var cylinder = ShapeBuilder.MakeCylinder(GP.XOY(), 10, 60, 0);

            CylinderNode = BrepSceneNode.Create(cylinder, GrayMaterial, null);

            render.ShowSceneNode(TubeNode);
            render.ShowSceneNode(CylinderNode);


            var cone = ShapeBuilder.MakeCone(GP.YOZ(), 5, 0, 10, 0);
            var bs   = new BufferShape(cone, RedMaterial, null, 0.1);

            bs.Build();
            ConeNode1 = new BrepSceneNode(bs);
            ConeNode2 = new BrepSceneNode(bs);

            render.ShowSceneNode(ConeNode1);
            render.ShowSceneNode(ConeNode2);
        }
Exemplo n.º 7
0
        private bool PAUSE()
        {
            PauseOn = true;

            Pause = new PauseScreen();

            if (Pause.TriState == 0 || Pause.TriState == 1)
            {
                if (Pause.TriState == 0)
                {
                    Saving.SaveGame();
                }

                Quit = true;

                return(true);
            }

            Console.Clear();

            Refresh();
            GP.DrawGamePanelInvoker();
            Draw.Few($"[{(++Score).ToString()}]", 35, 9);
            DrawNextShape();

            Console.CursorVisible = false;

            PauseOn = false;

            return(false);
        }
Exemplo n.º 8
0
        public static int UpravaGPUzivatel(GP GP, Database pDb = null)
        {
            Database db;

            if (pDb == null)
            {
                db = new Database();
                db.Connect();
            }
            else
            {
                db = (Database)pDb;
            }

            SqlCommand command = db.CreateCommand(SQL_UPDATE_UZIVATEL);

            command.Parameters.AddWithValue("@nazev", GP.Nazev);
            command.Parameters.AddWithValue("@datum", GP.Datum);
            command.Parameters.AddWithValue("@delka", GP.Delka_okruhu);
            command.Parameters.AddWithValue("@pocet", GP.Pocet_kol);
            command.Parameters.AddWithValue("@stat", GP.Staty_ID);
            command.Parameters.AddWithValue("@id", GP.Uzivatel_ID);
            int ret = db.ExecuteNonQuery(command);

            if (pDb == null)
            {
                db.Close();
            }

            return(ret);
        }
Exemplo n.º 9
0
        GroupSceneNode CreateFrames(double width, double height, double deep, double radius)
        {
            var baseSketch = CreateSketch(radius, deep);

            //TopLeft
            var s11 = Project(baseSketch, new GPnt(0, 0, height), new GDir(-1, 0, -1), GP.DZ());
            //BottomLeft
            var s20 = Project(baseSketch, GP.Origin(), new GDir(-1, 0, 1), GP.DZ());
            //BottomRight
            var s12 = Project(s20, new GPnt(width, 0, 0), new GDir(1, 0, 1), GP.DX());
            //TopRight
            var s21 = Project(s11, new GPnt(width, 0, height), new GDir(-1, 0, 1), GP.DX());

            var frame1 = FeatureTool.Loft(s11, s20, false);
            var frame2 = FeatureTool.Loft(s20, s12, false);
            var frame3 = FeatureTool.Loft(s12, s21, false);
            var frame4 = FeatureTool.Loft(s21, s11, false);

            var frameMaterial = MeshStandardMaterial.Create("window-frame");

            frameMaterial.SetColor(Vector3.LightGray);
            frameMaterial.SetMetalness(0.5f);
            frameMaterial.SetFaceSide(EnumFaceSide.DoubleSide);

            var group = new GroupSceneNode();

            group.AddNode(BrepSceneNode.Create(frame1, frameMaterial, null));
            group.AddNode(BrepSceneNode.Create(frame2, frameMaterial, null));
            group.AddNode(BrepSceneNode.Create(frame3, frameMaterial, null));
            group.AddNode(BrepSceneNode.Create(frame4, frameMaterial, null));

            return(group);
        }
Exemplo n.º 10
0
        static void Funkce2(Database db)
        {
            db.BeginTransaction();
            Console.WriteLine("");
            Console.WriteLine("Funkce 2 --------------------------");
            Console.WriteLine("");

            // funkce 2.1 je zakomponovaná ve funkci 1.1

            Console.WriteLine("Vypis vsech GP (funkce 2.4):");
            Collection <GP> GP = EvidenceGP.VypisGP(db); // funkce 2.4

            foreach (GP Polozka in GP)
            {
                Console.WriteLine(Polozka.ID + "\t" + Polozka.Nazev + "\t" + Polozka.Datum);
            }

            // funkce 2.3 zakomponovaná ve funkci 1.3

            Console.WriteLine("");
            Console.WriteLine("Vypis detailu GP (funkce 2.5):");
            GP Vypis = EvidenceGP.VypisGPDetail(5, db); // funkce 2.5

            Console.WriteLine();
            Console.WriteLine(Vypis.ID + "\t" + Vypis.Nazev + "\t" + Vypis.Datum + "\t" + Vypis.Delka_okruhu + "\t" + Vypis.Pocet_kol + "\t" + Vypis.Staty_ID);

            EvidenceGP.UpravaGP(Vypis, db); // funkce 2.2

            db.EndTransaction();
        }
        double Orient3D_Checked(double[] pa, double[] pb, double[] pc, double[] pd)
        {
            // Call Orient3D in all the possible ways, and check that the results agree

            var P1 = GP.Orient3D(pa, pb, pc, pd);
            var P2 = GP.Orient3D(pb, pc, pa, pd);
            var P3 = GP.Orient3D(pc, pa, pb, pd);
            var p1 = GP.Orient3D(pa, pc, pb, pd);
            var p2 = GP.Orient3D(pc, pb, pa, pd);
            var p3 = GP.Orient3D(pb, pa, pc, pd);

            var p1X = GP.Orient3DExact(pa, pb, pc, pd);
            var p2X = GP.Orient3DExact(pb, pc, pa, pd);
            var p3X = GP.Orient3DExact(pc, pa, pb, pd);
            var p1R = GP.Orient3DExact(pa, pc, pb, pd);
            var p2R = GP.Orient3DExact(pc, pb, pa, pd);
            var p3R = GP.Orient3DExact(pb, pa, pc, pd);

            var p1s = GP.Orient3DSlow(pa, pb, pc, pd);
            var p2s = GP.Orient3DSlow(pb, pc, pa, pd);
            var p3s = GP.Orient3DSlow(pc, pa, pb, pd);
            var p1r = GP.Orient3DSlow(pa, pc, pb, pd);
            var p2r = GP.Orient3DSlow(pc, pb, pa, pd);
            var p3r = GP.Orient3DSlow(pb, pa, pc, pd);

            AssertEqual(p1X, p2X, p3X, -p1R, -p2R, -p3R, p1s, p2s, p3s, -p1r, -p2r, -p3r);
            //           AssertClose(p1X, P2, P3, -p1, -p2, -p3);
            AssertSameSign(p1X, P1, P2, P3, -p1, -p2, -p3);

            // TODO: Add a check that shows adaptive is 'close' to exact.

            return(P1);
        }
Exemplo n.º 12
0
 public IHttpActionResult SaveGps(string Latitude, string Longitude)
 {
     try
     {
         using (kernels1_itiEntities DB = new kernels1_itiEntities())
         {
             DATA.GP gps = new GP();
             gps.lat         = Latitude;
             gps.longitude   = Longitude;
             gps.updatedDate = DateTime.UtcNow;
             gps.deviceid    = "1";
             DB.GPS.Add(gps);
             DB.SaveChanges();
         }
         var response = new
         {
             Success = true,
             Message = "GPS Coorinates saved Successfully",
         };
         return(Ok(response));
     }
     catch (Exception)
     {
         return(Content(HttpStatusCode.BadRequest, "Error Found"));
     }
 }
Exemplo n.º 13
0
        public override void Run(RenderControl render)
        {
            var arc    = SketchBuilder.MakeArcOfCircle(new GCirc(GP.XOY(), 10), 0, Math.PI);
            var points = new GPntList
            {
                new GPnt(0, 0, 0),
                new GPnt(2, 5, 0),
                new GPnt(15, 15, 0)
            };
            var line = SketchBuilder.MakeBSpline(points);

            var extrema = new ExtremaCurveCurve();

            extrema.Initialize(arc, line);
            int count = extrema.GetPointCount();

            for (int ii = 0; ii < count; ++ii)
            {
                var point = extrema.GetPoint1(ii);
                var node  = new PrimitiveSceneNode(GeometryBuilder.AtomSphere(), EnumPrimitiveType.TRIANGLES, null);
                node.SetTransform(Matrix4.makeTranslation(Vector3.From(point)));
                render.ShowSceneNode(node);
            }

            render.ShowShape(arc, Vector3.Red);
            render.ShowShape(line, Vector3.Green);
        }
        public override void Run(RenderControl render)
        {
            var paramCurve = Sketch2dBuilder.MakeLine(new GPnt2d(0, 0), new GPnt2d(Math.PI * 20, 20));

            // curve one cone
            {
                var cone               = ShapeBuilder.MakeCone(GP.XOY(), 1, 10, 20, 0);
                var coneFace           = cone.FindChild(EnumTopoShapeType.Topo_FACE, 0);
                var curveOnConeSurface = SketchBuilder.MakeCurveOnSurface(paramCurve, coneFace);

                var material = LineDashedMaterial.Create("my.dashed.material");
                material.SetColor(ColorTable.Hex(0x0FFAA));
                var node = BrepSceneNode.Create(curveOnConeSurface, null, material);
                node.ComputeLineDistances(); // Enable dashed line style.

                render.ShowSceneNode(node);
            }
            // curve one cylinder
            {
                var cylinder     = ShapeBuilder.MakeCylinder(GP.XOY(), 2, 20, 0);
                var cylinderFace = cylinder.FindChild(EnumTopoShapeType.Topo_FACE, 0);

                var curveOnCylinderSurface = SketchBuilder.MakeCurveOnSurface(paramCurve, cylinderFace);

                var node2 = BrepSceneNode.Create(curveOnCylinderSurface, null, null);
                render.ShowSceneNode(node2);
            }
        }
        public override void Run(RenderControl render)
        {
            var sketch = SketchBuilder.MakeEllipse(GP.Origin(), 5, 3, GP.DX(), GP.DZ());

            // 1. Sweep
            {
                GPntList points = new GPntList {
                    GP.Origin(), new GPnt(20, 10, 30), new GPnt(50, 50, 50),
                };
                var path = SketchBuilder.MakeBSpline(points);
                render.ShowShape(path, Vector3.Green);

                var feature = FeatureTool.Sweep(sketch, path, EnumGeomFillTrihedron.ConstantNormal);
                render.ShowShape(feature, Vector3.Blue);
            }

            // 2. Revol
            {
                var feature = FeatureTool.Revol(sketch, new GAx1(new GPnt(-20, 0, 0), GP.DY()), 90);

                render.ShowShape(feature, Vector3.Green);
            }
            // 3. Loft
            {
                var baseWire = SketchBuilder.MakeRectangle(new GAx2(new GPnt(50, -50, 0), GP.DZ()), 20, 20, 5, false);
                var topWire  = SketchBuilder.MakeCircle(new GPnt(60, -40, 40), 5, GP.DZ());

                var loft = FeatureTool.Loft(baseWire, topWire, true);
                render.ShowShape(loft, Vector3.Red);
            }
        }
Exemplo n.º 16
0
 public void InitializeGPandGrammar(Grammar grm)
 {
     this.grm = grm;
     gp       = new GP();
     gp.createPopulation(POPSIZE, GENOME_SIZE);
     gp.minimizeFitness = grm.minimizeFitness;
 }
        public override void Run(RenderControl renderer)
        {
            string fileName = GetResourcePath("Holes.stp");
            var    shape    = StepIO.Open(fileName);

            if (shape == null)
            {
                return;
            }
            renderer.ShowShape(shape, Vector3.LightGray);

            var bbox = shape.GetBBox();

            var shape2 = ShapeBuilder.MakeBox(new GAx2(bbox.CornerMax(), GP.DZ()), 100, 100, 10);

            renderer.ShowShape(shape2, Vector3.LightGray);

            ExtremaShapeShape ess = new ExtremaShapeShape();

            if (!ess.Initialize(shape, shape2, 0.001))
            {
                return;
            }

            var pt1 = ess.GetPointOnShape1(0);
            var pt2 = ess.GetPointOnShape2(0);

            var line = SketchBuilder.MakeLine(pt1, pt2);


            renderer.ShowShape(line, Vector3.Red);
        }
        public override void Run(RenderControl render)
        {
            var material = MeshStandardMaterial.Create("workpiece");

            material.SetColor(new Vector3(0.9f));
            material.SetFaceSide(EnumFaceSide.DoubleSide);

            var shape = ShapeBuilder.MakeCylinder(GP.YOZ(), 5, 50, 0);

            mWorkpiece = BrepSceneNode.Create(shape, material, null);

            render.ShowSceneNode(mWorkpiece);

            {
                var coord     = new GAx2(new GPnt(0, 0, 5), GP.DZ());
                var toolShape = ShapeBuilder.MakeCone(coord, 0, 2, 5, 0);
                render.ShowShape(toolShape, Vector3.Blue);
            }


            render.ShowSceneNode(mMotionTrail);

            mLength = 0;
            mTheta  = 0;
        }
Exemplo n.º 19
0
        private void DoWork()
        {
            GP.ExecuteSecure(() => Work(Cts.Token, (a) => Invoke(a), new Progress <ProgressMessage>(ProgressHandler)));

            Action update = Close;

            this.Invoke(update);
        }
Exemplo n.º 20
0
        public async Task Create()
        {
            var bytes = await File.ReadAllBytesAsync("../../../test.gp3");

            var gpfile = GP.Create("test.gp3", bytes);

            Assert.NotNull(gpfile);
        }
Exemplo n.º 21
0
 public static void InsertGP(GP gp)
 {
     using (var context = new MyDBEntities())
     {
         context.GPs.Add(gp);
         context.SaveChanges();
     }
 }
Exemplo n.º 22
0
        public override bool OnParameterChanged(Element instance, ParameterDict parameters)
        {
            var shape  = CastShapeElement(instance);
            var radius = parameters.AsDouble("Radius", 5.0f);

            shape.SetShape(ShapeBuilder.MakeSphere(GP.Origin(), radius));
            return(true);
        }
Exemplo n.º 23
0
        public void btn_submit_Clicked()
        {
            // NEED TO DO VERIFICATION ON FORM. TRY CATCH ON REQUIRED EMPTY VARIABLES?

            if (string.IsNullOrEmpty(view.getMiddleName()))
            {
                personBuilder
                .WithNoMiddleName((Prefix)Enum.Parse(typeof(Prefix), view.getTitle()), view.getFirstName(), view.getLastName());

                if (string.IsNullOrEmpty(view.getEmergency()))
                {
                    personBuilder
                    .WithPrimaryContactOnly(view.getPhone());

                    if (string.IsNullOrEmpty(view.getSecondLine()) && string.IsNullOrEmpty(view.getThirdLine()))
                    {
                        addressBuilder
                        .OneLineAddress(view.getFirstLine(), view.getCity(), view.getCounty(), view.getPostcode());
                    }
                    else if (string.IsNullOrEmpty(view.getThirdLine()))
                    {
                        addressBuilder
                        .TwoLineAddress(view.getFirstLine(), view.getSecondLine(), view.getCity(), view.getCounty(), view.getPostcode());
                    }
                    else
                    {
                        addressBuilder
                        .ThreeLineAddress(view.getFirstLine(), view.getSecondLine(), view.getThirdLine(), view.getCity(), view.getCounty(), view.getPostcode());
                    }
                }
                else
                {
                    personBuilder
                    .WithAllContacts(view.getPhone(), view.getEmergency());
                }
            }
            else
            {
                personBuilder
                .WithMiddleName((Prefix)Enum.Parse(typeof(Prefix), view.getTitle()), view.getFirstName(), view.getMiddleName(), view.getLastName());
            }

            gp      = personBuilder.Build();
            address = addressBuilder.Build();
            GP practice = new GP();

            practice.GPPractice = view.getPracticeName();
            MemberDB.InsertGP(gp);
            AddressDB.InsertAddress(address);
            GPDB.InsertGP(practice);

            ConfirmationForm      cForm      = new ConfirmationForm();
            ConfirmationPresenter cPresenter = new ConfirmationPresenter(cForm);

            cForm.Show();
        }
Exemplo n.º 24
0
        public async Task CreateMidi()
        {
            var bytes = await File.ReadAllBytesAsync("../../../test.gp3");

            var gpfile = GP.Create("test.gp3", bytes);
            var song   = new NativeFormat(gpfile);
            var midi   = song.toMidi();

            Assert.NotNull(midi);
        }
Exemplo n.º 25
0
        /// <summary>
        /// Returns the hash code of this field
        /// </summary>
        ///
        /// <returns>The hash code</returns>
        public override int GetHashCode()
        {
            int hash = N * 31;

            hash += K * 31;
            hash += GF.GetHashCode();
            hash += GP.GetHashCode();
            hash += P1.GetHashCode();

            return(hash);
        }
Exemplo n.º 26
0
 public PR(EP ep, GP gp)
 {
     if (ep.Value == 0)
     {
         Value = 0;
     }
     else
     {
         Value = ep.Value / gp.Value;
     }
 }
Exemplo n.º 27
0
        public override void Run(RenderControl render)
        {
            var rect1 = SketchBuilder.MakeRectangle(GP.XOY(), 10, 5, 1, true);
            var rect2 = SketchBuilder.MakeRectangle(new GAx2(new GPnt(1, 1, 0), GP.DZ(), GP.DX()), 8, 3, 1, true);

            var cut = BooleanTool.Cut(rect1, rect2);

            var extrude = FeatureTool.Extrude(cut, 100, GP.DZ());

            render.ShowShape(extrude, Vector3.Blue);
        }
Exemplo n.º 28
0
        private static void LoadJsonData(IProgress <ProgressMessage> progress = null)
        {
            progress?.Report(new ProgressMessage(0, "Processing Boss data"));
            var exePath     = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
            var rawDataJson = GP.ReadJsonFile(exePath + @"\Data\DataConfig.json");

            progress?.Report(new ProgressMessage(0.5, "Processing Boss data"));
            Helper.DataBuilder.LoadDataJson(rawDataJson);
            Profession.Init(exePath + @"\Data\ProfessionData.json",
                            new Progress <double>(p => progress?.Report(new ProgressMessage((p * 0.5) + 0.5, "Processing Class data"))));
        }
        public override void Run(RenderControl renderer)
        {
            string fileName = GetResourcePath("Holes.stp");
            var    shape    = StepIO.Open(fileName);

            if (shape == null)
            {
                return;
            }


            var face    = shape.FindChild(EnumTopoShapeType.Topo_FACE, 148);
            var surface = new ParametricSurface(face);

            var wireExp = new WireExplor(face);
            var wires   = wireExp.GetInnerWires();

            foreach (var wire in wires)
            {
                // Show wire
                renderer.ShowShape(wire, Vector3.Red);

                var curve     = new ParametricCurve(wire);
                var paramList = curve.SplitByUniformLength(1, 0.01);

                var  lines = new SegmentsSceneNode((uint)paramList.Count, Vector3.Green, 2);
                uint idx   = 0;
                foreach (var p in paramList)
                {
                    var pt       = curve.Value(p);
                    var pointSur = new ExtremaPointSurface();
                    if (pointSur.Initialize(surface, pt, GP.Resolution(), GP.Resolution()))
                    {
                        var uv     = pointSur.GetParameter(0);
                        var normal = surface.GetNormal(uv.X(), uv.Y());

                        lines.SetPositions(idx++, Vector3.From(pt), Vector3.From(pt.XYZ().Added(normal.XYZ())));
                    }
                }
                lines.UpdateBoundingBox();
                renderer.ShowSceneNode(lines);
            }

            // Show face
            var faceMaterial = MeshStandardMaterial.Create("pbr.face");

            faceMaterial.SetColor(Vector3.LightGray);
            faceMaterial.SetFaceSide(EnumFaceSide.DoubleSide);
            var faceNode = BrepSceneNode.Create(face, faceMaterial, null);

            faceNode.SetDisplayFilter(EnumShapeFilter.Face);
            renderer.ShowSceneNode(faceNode);
        }
Exemplo n.º 30
0
Arquivo: Snake.cs Projeto: akil03/bx
 public void InstantHideTrail()
 {
     foreach (GroundPiece GP in tailGroundPieces)
     {
         if (GP.collectingSnake == this)
         {
             GP.tailPiece.FadeImmediate();
         }
         GP.RemoveCollectingSnake(this);
     }
     tailGroundPieces.Clear();
 }
        public void LoadConfiguration(GP.MetaData.GPMetaData serviceInfo, Uri taskEndPoint)
        {
            if (serviceInfo == null)
                return;

            TaskEndPoint = taskEndPoint;
            TaskName = Title = serviceInfo.DisplayName;
            HelpUrl = serviceInfo.HelpUrl;
            if (InputParameters == null)
                InputParameters = new List<ParameterSupport.ParameterConfig>();
            else
                InputParameters.Clear();

            if (OutputParameters == null)
                OutputParameters = new List<ParameterSupport.ParameterConfig>();
            else
                OutputParameters.Clear();

            if (LayerOrder == null)
                LayerOrder = new ObservableCollection<string>();
            else
                LayerOrder.Clear();
            
            Collection<LayerInformation> resultMapserviceLayerInfos = string.IsNullOrEmpty(serviceInfo.ResultMapServerName) || string.IsNullOrEmpty(serviceInfo.CurrentVersion) ? null : new Collection<LayerInformation>();

            #region Get parameter configs
            if (serviceInfo.Parameters != null)
            {
                int layerId = 0;
                foreach (ESRI.ArcGIS.Mapping.GP.MetaData.GPParameter param in serviceInfo.Parameters)
                {
                    ParameterConfig config = null;
                    if (param.DataType == "GPFeatureRecordSetLayer")
                    {
                        if (!string.IsNullOrEmpty(serviceInfo.ResultMapServerName) && param.Direction != "esriGPParameterDirectionInput")
                        {
                            if (!string.IsNullOrEmpty(serviceInfo.CurrentVersion)) // A resultmapservice can only be accessed at http://.../<resultMapservice>/MapServer/jobs/<jobId> when server version can be determined.
                                resultMapserviceLayerInfos.Add(ToLayerInfo(param, layerId++));
                            else
                            {
                                MapServiceLayerParameterConfig layerConfig = new MapServiceLayerParameterConfig
                                                                             {
                                                                                 Name = param.Name,
                                                                                 LayerName = param.DisplayName,
                                                                                 Type = GPParameterType.MapServiceLayer,
                                                                                 SupportsJobResource = false,
                                                                                 Opacity = 1,
                                                                             };
                                OutputParameters.Add(layerConfig);
                                LayerOrder.Add(layerConfig.Name);
                            }
                        }
                        else
                        {
                            #region No result GP mapserver
                            GP.ParameterSupport.FeatureLayerParameterConfig layerConfig = new ParameterSupport.FeatureLayerParameterConfig() { ShownAtRunTime = true };
                            layerConfig.Name = param.Name;
                            layerConfig.Label = layerConfig.DisplayName = string.IsNullOrEmpty(param.DisplayName) ? param.Name : param.DisplayName;
                            layerConfig.Mode = ParameterSupport.FeatureLayerParameterConfig.InputMode.SketchLayer;
                            layerConfig.Type = GPParameterType.FeatureLayer;
                            layerConfig.Required = param.ParameterType == "esriGPParameterTypeRequired";
                            ESRI.ArcGIS.Mapping.GP.MetaData.GPFeatureRecordSetLayer frs = param.DefaultValue as ESRI.ArcGIS.Mapping.GP.MetaData.GPFeatureRecordSetLayer;
                            if (frs != null)
                            {
                                if (frs.GeometryType == "esriGeometryPolyline")
                                {
                                    layerConfig.GeometryType = ESRI.ArcGIS.Mapping.Core.GeometryType.Polyline;
                                    layerConfig.HelpText = Resources.Strings.DrawLine;
                                }
                                else if (frs.GeometryType == "esriGeometryPolygon")
                                {
                                    layerConfig.GeometryType = ESRI.ArcGIS.Mapping.Core.GeometryType.Polygon;
                                    layerConfig.HelpText = Resources.Strings.DrawPolygon;
                                }
                                else if (frs.GeometryType == "esriGeometryPoint")
                                {
                                    layerConfig.GeometryType = ESRI.ArcGIS.Mapping.Core.GeometryType.Point;
                                    layerConfig.HelpText = Resources.Strings.DrawPoint;
                                }
                                else if (frs.GeometryType == "esriGeometryMultipoint")
                                {
                                    layerConfig.GeometryType = ESRI.ArcGIS.Mapping.Core.GeometryType.MultiPoint;
                                    layerConfig.HelpText = Resources.Strings.DrawPoint;
                                }
                                #region Layer with field info, geometry type and renderer
                                GraphicsLayer layer = new GraphicsLayer();
                                if (frs.Fields != null && frs.Fields.Length > 0)
                                {
                                    Collection<ESRI.ArcGIS.Mapping.Core.FieldInfo> fields = new Collection<ESRI.ArcGIS.Mapping.Core.FieldInfo>();

                                    List<string> doubleFields = new List<string>();
                                    List<string> singleFields = new List<string>();
                                    foreach (MetaData.Field field in frs.Fields)
                                    {
                                        #region Get Single and Double Fields
                                        string type = field.Type;
                                        if (type.StartsWith(GPConfiguration.esriFieldType, StringComparison.Ordinal))
                                        {
                                            type = type.Substring(GPConfiguration.esriFieldType.Length);
                                            ESRI.ArcGIS.Client.Field.FieldType fieldType =
                                                (ESRI.ArcGIS.Client.Field.FieldType)Enum.Parse(typeof(ESRI.ArcGIS.Client.Field.FieldType), type, true);

                                            if (fieldType == ESRI.ArcGIS.Client.Field.FieldType.Double)
                                                doubleFields.Add(field.Name);
                                            else if (fieldType == Client.Field.FieldType.Single)
                                                singleFields.Add(field.Name);
                                        }
                                        #endregion

                                        #region Get FieldInfos
                                        if (field.Type == "esriGeometry")
                                            continue;

                                        fields.Add(new ESRI.ArcGIS.Mapping.Core.FieldInfo()
                                        {
                                            DisplayName = field.Alias,
                                            FieldType = mapFieldType(field.Type),
                                            Name = field.Name,
                                            VisibleInAttributeDisplay = true,
                                            VisibleOnMapTip = true,
                                        });
                                        #endregion
                                    }

                                    ESRI.ArcGIS.Mapping.Core.LayerExtensions.SetFields(layer, fields);
                                    layerConfig.SingleFields = singleFields.ToArray();
                                    layerConfig.DoubleFields = doubleFields.ToArray();
                                }
                                ESRI.ArcGIS.Mapping.Core.LayerExtensions.SetGeometryType(layer, layerConfig.GeometryType);
                                layer.Renderer = FeatureLayerParameterConfig.GetSimpleRenderer(layerConfig.GeometryType);

                                // Disable pop-ups by default for input layers
                                if (param.Direction == "esriGPParameterDirectionInput")
                                    LayerProperties.SetIsPopupEnabled(layer, false);
                                layerConfig.Layer = layer;
                                #endregion
                            }
                            else
                            {
                                layerConfig.GeometryType = ESRI.ArcGIS.Mapping.Core.GeometryType.Unknown;
                                layerConfig.HelpText = Resources.Strings.UnknownGeometryType;
                            }
                            layerConfig.LayerName = layerConfig.Label;
                            layerConfig.ToolTip = layerConfig.HelpText;
                            layerConfig.Opacity = 1;

                            config = layerConfig;
                            LayerOrder.Add(layerConfig.Name);
                            #endregion
                        }
                    }
                    else if (param.DataType == "GPRasterDataLayer" || param.DataType == "GPRasterData")
                    {
                        if (string.IsNullOrEmpty(serviceInfo.ResultMapServerName) || param.Direction == "esriGPParameterDirectionInput")
                        {
                            config = new RasterDataParameterConfig()
                            {
                                Name = param.Name,
                                ShownAtRunTime = true,
                                FormatToolTip = "e.g. tif, jpg",
                                Type = param.DataType == "GPRasterDataLayer" ? GPParameterType.RasterDataLayer : GPParameterType.RasterData,
                                ToolTip = param.DataType == "GPRasterDataLayer" ? Resources.Strings.EnterUrlForRasterDataLayer : Resources.Strings.EnterUrlForRasterData,
                                HelpText = param.DataType == "GPRasterDataLayer" ? Resources.Strings.EnterUrlForRasterDataLayer : Resources.Strings.EnterUrlForRasterData,
                                Label = param.DisplayName,
                                DisplayName = param.DisplayName,
                                Required = param.ParameterType == "esriGPParameterTypeRequired",
                                Input = param.Direction == "esriGPParameterDirectionInput"
                            };
                        }
                        else if (string.IsNullOrEmpty(serviceInfo.CurrentVersion)) 
                        {
                            MapServiceLayerParameterConfig layerConfig = new MapServiceLayerParameterConfig
                            {
                                Name = param.Name,
                                LayerName = param.DisplayName,
                                Type = GPParameterType.MapServiceLayer,
                                SupportsJobResource = false,
                                Opacity = 1,
                            };
                            OutputParameters.Add(layerConfig);
                            LayerOrder.Add(layerConfig.Name);
                        }
                        else
                            resultMapserviceLayerInfos.Add(ToLayerInfo(param, layerId++));
                    }
                    else
                    {
                        #region other param types
                        if (param.DataType == "GPMultiValue:GPString")
                            config = new MultiValueStringConfig() { ShownAtRunTime = true };
                        else
                            config = new ParameterConfig() { ShownAtRunTime = true };

                        config.Name = param.Name;
                        config.Label = config.DisplayName = param.DisplayName;
                        config.Required = param.ParameterType == "esriGPParameterTypeRequired";

                        string defaultString = param.DefaultValue == null ? null : param.DefaultValue.ToString();

                        switch (param.DataType)
                        {
                            #region
                            case "GPBoolean":
                                config.Type = GPParameterType.Boolean;
                                if (param.DefaultValue != null)
                                    config.DefaultValue = new Client.Tasks.GPBoolean(param.Name, (bool)param.DefaultValue);
                                break;
                            case "GPDouble":
                                config.Type = GPParameterType.Double;
                                if (!string.IsNullOrEmpty(defaultString))
                                {
                                    double val = 0;
                                    if (double.TryParse(defaultString, System.Globalization.NumberStyles.Any, CultureHelper.GetCurrentCulture(), out val))
                                        config.DefaultValue = new Client.Tasks.GPDouble(param.Name, val);
                                }
                                break;
                            case "GPLong":
                                config.Type = GPParameterType.Long;
                                if (!string.IsNullOrEmpty(defaultString))
                                {
                                    int val = 0;
                                    if (int.TryParse(defaultString, out val))
                                        config.DefaultValue = new ESRI.ArcGIS.Client.Tasks.GPLong(param.Name, val);
                                }
                                break;
                            case "GPDate":
                                config.Type = GPParameterType.Date;
                                if (!string.IsNullOrEmpty(defaultString))
                                {
                                    long ticks = 0;
                                    if (long.TryParse(defaultString, out ticks))
                                        config.DefaultValue = new ESRI.ArcGIS.Client.Tasks.GPDate(param.Name, Epoch.AddMilliseconds(ticks));
                                }
                                break;
                            case "GPLinearUnit":
                                config.Type = GPParameterType.LinearUnit;
                                if (param.DefaultValue is ESRI.ArcGIS.Mapping.GP.MetaData.GPLinearUnit)
                                {
                                    ESRI.ArcGIS.Mapping.GP.MetaData.GPLinearUnit value = (param.DefaultValue as ESRI.ArcGIS.Mapping.GP.MetaData.GPLinearUnit);
                                    config.DefaultValue = new ESRI.ArcGIS.Client.Tasks.GPLinearUnit(param.Name,
                                        (ESRI.ArcGIS.Client.Tasks.esriUnits)(Enum.Parse(typeof(ESRI.ArcGIS.Client.Tasks.esriUnits), value.Units, true)),
                                        value.Distance);
                                }
                                break;
                            case "GPString":
                                config.Type = GPParameterType.String;
                                config.DefaultValue = new ESRI.ArcGIS.Client.Tasks.GPString(param.Name, defaultString);
                                if (param.ChoiceList != null && param.ChoiceList.Length > 0)
                                {
                                    config.ChoiceList = new List<Choice>(param.ChoiceList.Length);
                                    for (int i = 0; i < param.ChoiceList.Length; i++)
                                    {
                                        config.ChoiceList.Add(new Choice()
                                        {
                                            DisplayText = param.ChoiceList[i],
                                            Value =
                                                new ESRI.ArcGIS.Client.Tasks.GPString(param.Name, param.ChoiceList[i])
                                        });
                                    }
                                }
                                break;
                            case "GPMultiValue:GPString":
                                config.Type = GPParameterType.MultiValueString;

                                object[] defaultStrings = param.DefaultValue as object[];
                                // the default value could be an array of strings
                                if (defaultStrings != null && defaultStrings.Length > 0)
                                {
                                    List<GPString> list =
                                        (from string s in defaultStrings select new GPString(param.Name, s)).ToList();

                                    config.DefaultValue = new GPMultiValue<GPString>(param.Name, list);
                                }

                                if (param.ChoiceList != null && param.ChoiceList.Length > 0)
                                {
                                    config.ChoiceList = new List<Choice>(param.ChoiceList.Length);
                                    foreach (string t in param.ChoiceList)
                                    {
                                        config.ChoiceList.Add(new Choice
                                                                  {
                                                                      DisplayText = t,
                                                                      Value = new GPString(param.Name, t)
                                                                  });
                                    }
                                }
                                break;
                            case "GPRecordSet":
                                config.Type = GPParameterType.RecordSet;
                                config.ToolTip = config.HelpText = Resources.Strings.EnterUrlForRecordset;
                                break;
                            case "GPDataFile":
                                config.Type = GPParameterType.DataFile;
                                config.ToolTip = config.HelpText = Resources.Strings.EnterUrlForFile;
                                break;
                            default:
                                break;
                            #endregion
                        }
                        #endregion
                    }
                    if (config != null)
                    {
                        if (param.Direction == "esriGPParameterDirectionInput")
                        {
                            config.Input = true;
                            InputParameters.Add(config);
                        }
                        else
                        {
                            config.Input = false;
                            OutputParameters.Add(config);
                        }
                    }
                }
            }

            if (!string.IsNullOrEmpty(serviceInfo.ResultMapServerName) && !string.IsNullOrEmpty(serviceInfo.CurrentVersion))
            {
                MapServiceLayerParameterConfig layerConfig = new MapServiceLayerParameterConfig
                {
                    Name = serviceInfo.ResultMapServerName,
                    LayerName = serviceInfo.ResultMapServerName,
                    Type = GPParameterType.MapServiceLayer,
                    LayerInfos = resultMapserviceLayerInfos,
                    SupportsJobResource = true,
                    Opacity = 1,
                };
                OutputParameters.Add(layerConfig);
                LayerOrder.Add(layerConfig.Name);
            }

            #endregion
        }
Exemplo n.º 32
0
 public bool CanPlaceFeature(GP[,] feature, ref GP[,] map, int hPos, int vPos)
 {
     for (var h = hPos; h < hPos + feature.GetLength(0); ++h)
     {
         for (var v = vPos; v < vPos + feature.GetLength(1); ++v)
         {
             if(map[h,v] != GP.I)
                 return false;
         }
     }
     return true;
 }
Exemplo n.º 33
0
    public void CreateGameBoard(GP[,] pieceArray)
    {
        var board = GameManager.Instance.Board;
        var width = pieceArray.GetLength(0);
        var height = pieceArray.GetLength(1);
        board.CreateBoard(width, height);

        for (var h = 0; h < width; ++h)
        {
            for (var v = 0; v < height; ++v)
            {
                // create the piece
                var piece = GameObject.Instantiate(PrefabFromGP(pieceArray[h,v]));

                // always add a floor piece even if piece isn't a floor piece.
                var isFloor = piece.IsFloorPiece;
                if (!isFloor)
                {
                    var floorFirst = GameObject.Instantiate(FloorPiecePrefab);
                    board.SetPiece(h, v, floorFirst);
                }

                // tell the game NonFloorPieces
                board.SetPiece(h, v, piece);
            }
        }
    }
Exemplo n.º 34
0
public static final  short 	IMAGE_REL_MIPS_GPREL    	16-bit signed displacement of the target relative to the Global Pointer (GP) register. 
Exemplo n.º 35
0
    public GP[,] GenerateMap()
    {
        GP[,] generatedMap = new GP[7*20, 7*20];

        // mark every area as unset
        for(var i = 0; i < generatedMap.GetLength(0); ++i)
            for(var j = 0; j < generatedMap.GetLength(1); ++j)
                generatedMap[i,j] = GP.I;

        // place the white house randomly (special one time only chunk)
        var presidentPlaced = false;
        while(!presidentPlaced)
        {
            presidentPlaced = TryToPlaceFeatureRandomly(whiteHouse, ref generatedMap);
        }

        // Try to add some other features!  The map is 140x140, keep in mind feature size and the fact that some will fail
        var features = new GP[][,] { survivorSmallHouse /* 7 */, bigHouse /* 14 */, emptyStreetWithDebrisOrTrees /* 7 */ };
        var maxToPlace = new int[]{ 30, 20, 40 };
        for (var i = 0; i < features.Length; ++i)
        {
            var addedCount = 0;
            for (var tries = 0; tries < maxToPlace[i]; ++tries)
            {
                addedCount += TryToPlaceFeatureRandomly(features[i], ref generatedMap) ? 1 : 0;
            }
            Debug.Log(string.Format("Feature {2}: added {0}/{1}", addedCount, maxToPlace[i], i));
        }

        // Place some random starting zombies.
        var startingZombies = 2;
        var zombiesAdded = 0;
        while (zombiesAdded < startingZombies)
        {
            zombiesAdded += TryToPlaceFeatureRandomly(zombie, ref generatedMap) ? 1 : 0;
        }

        // Replace all remaining empty spaces with floors
        for (var i = 0; i < generatedMap.GetLength(0); ++i)
            for (var j = 0; j < generatedMap.GetLength(1); ++j)
                if (generatedMap[i, j] == GP.I)
                    generatedMap[i, j] = GP.F;

        return generatedMap;
    }
Exemplo n.º 36
0
 public void PlaceFeature(GP[,] feature, ref GP[,] map, int hPos, int vPos)
 {
     for (var h = hPos; h < hPos + feature.GetLength(0); ++h)
     {
         for (var v = vPos; v < vPos + feature.GetLength(1); ++v)
         {
             map[h,v] = feature[h-hPos, v-vPos];
         }
     }
 }
Exemplo n.º 37
0
 public GamePiece PrefabFromGP(GP gp)
 {
     switch (gp)
     {
         case GP.C:
             return CopPiecePrefab;
         case GP.F:
             return FloorPiecePrefab;
         case GP.V:
             return CivPiecePrefab;
         case GP.W:
             return WallPiecePrefab;
         case GP.Z:
             return ZombiePiecePrefab;
         case GP.P:
             return PresidentPiecePrefab;
         case GP.H:
             return HazmatPiecePrefab;
         case GP.O:
             return FatZombie;
         case GP.S:
             return SkinnyZombie;
         default:
             return null;
     }
 }
Exemplo n.º 38
0
    public bool TryToPlaceFeatureRandomly(GP[,] feature, ref GP[,] map)
    {
        var randomH = UnityEngine.Random.Range(0, map.GetLength(0)-feature.GetLength(0));
        var randomV = UnityEngine.Random.Range(0, map.GetLength(1)-feature.GetLength(1));

        if(CanPlaceFeature(feature, ref map, randomH, randomV))
        {
            PlaceFeature(feature, ref map, randomH, randomV);
            return true;
        }
        return false;
    }