public static void LoadGeometry()
 {
     foreach (string item in geometryDirs)
     {
         geometrys.Add(item, GeometryModel.LoadGeometryFile(item));
     }
 }
Example #2
0
        public void UpdateUI(GeometryModel geometryModel, GeometryStyleAsset.GeometryStyleSet styleSet)
        {
            switch (geometryModel)
            {
            case PointModel pointModel:
                _fillingLayer.gameObject.SetActive(false);
                _outlineLayer.gameObject.SetActive(true);
                _outlineLayer.Draw(vh => DrawPoint(vh, pointModel, styleSet));
                break;

            case LineModel lineModel:
                _fillingLayer.gameObject.SetActive(false);
                _outlineLayer.gameObject.SetActive(true);
                _outlineLayer.Draw(vh => DrawLine(vh, lineModel, styleSet));
                break;

            case RectangleModel rectangleModel:
            {
                var style = styleSet;
                _fillingLayer.gameObject.SetActive(true);
                _outlineLayer.gameObject.SetActive(true);
                _fillingLayer.Draw(vh => DrawRectangleFilling(vh, rectangleModel, style));
                _outlineLayer.Draw(vh => DrawRectangleOutline(vh, rectangleModel, style));
                break;
            }
            }
        }
Example #3
0
        /// <summary>
        /// 根据ID获取对象空间坐标
        /// </summary>
        /// <param name="boid"></param>
        /// <returns></returns>
        public List <GeometryModel> GetGeometryByID(string boid)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append(" SELECT BOID,GATHERID,NAME,T.GEOMETRY.MakeValid().STAsText() AS GEOMETRY,SOURCEDB  FROM GEOMETRY T ");
            strSql.Append(" WHERE BOID =@BOID");
            SqlParameter[] parameters =
            {
                new SqlParameter("BOID", SqlDbType.VarChar, 36)
            };
            parameters[0].Value = boid;
            DataTable            dt   = SqlServerDBHelper.GetDataTable(strSql.ToString(), parameters);
            List <GeometryModel> list = new List <GeometryModel>();

            if (dt != null && dt.Rows.Count > 0)
            {
                foreach (DataRow item in dt.Rows)
                {
                    GeometryModel model = new GeometryModel();
                    model.BOID     = item["BOID"].ToString();
                    model.GATHERID = item["GATHERID"].ToString();
                    model.GEOMETRY = item["GEOMETRY"].ToString();
                    model.NAME     = item["NAME"].ToString();
                    model.SOURCEDB = item["SOURCEDB"].ToString();
                    list.Add(model);
                }
            }
            return(list);
        }
Example #4
0
        public void ParseGeometryTest()
        {
            string pluginDirectory = Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath);
            string json            = File.ReadAllText(Path.Combine(pluginDirectory, "geometry.json"));

            var settings = new JsonSerializerSettings();

            settings.NullValueHandling     = NullValueHandling.Ignore;
            settings.DefaultValueHandling  = DefaultValueHandling.IgnoreAndPopulate;
            settings.MissingMemberHandling = MissingMemberHandling.Error;
            settings.Formatting            = Formatting.Indented;
            settings.ContractResolver      = new CamelCasePropertyNamesContractResolver();

            var fake = new PlayerMob(string.Empty, null);

            string newName = $"geometry.{DateTime.UtcNow.Ticks}.{new Random().NextDouble()}";

            json = json.Replace("geometry.humanoid.custom", newName);

            fake.Skin.GeometryName = newName;
            fake.Skin.GeometryData = json;

            GeometryModel geometryModel = JsonConvert.DeserializeObject <GeometryModel>(json, settings);

            var state = new Code4FunPlugin.GravityGeometryBehavior(fake, geometryModel);

            state.FakeMeltTicking(fake, new PlayerEventArgs(null));
        }
Example #5
0
 private void SetVelocity(GeometryModel model, Random random)
 {
     foreach (var geometry in model.Geometry)
     {
         SetVelocity(geometry, random);
     }
 }
Example #6
0
        public override void OnWorldIntitialize(World world)
        {
            for (int i = 1; i < 16; ++i)
            {
                TerrainCorner corners =
                    ((i >> 0) % 2 == 1 ? TerrainCorner.FrontLeft : TerrainCorner.None) |
                    ((i >> 1) % 2 == 1 ? TerrainCorner.FrontRight : TerrainCorner.None) |
                    ((i >> 2) % 2 == 1 ? TerrainCorner.BackLeft : TerrainCorner.None) |
                    ((i >> 3) % 2 == 1 ? TerrainCorner.BackRight : TerrainCorner.None);

                Face solidFaces = Face.Bottom |
                                  ((corners & TerrainCorner.All) == TerrainCorner.All ? Face.Top : Face.None) |
                                  ((corners & TerrainCorner.Left) == TerrainCorner.Left ? Face.Left : Face.None) |
                                  ((corners & TerrainCorner.Front) == TerrainCorner.Front ? Face.Front : Face.None) |
                                  ((corners & TerrainCorner.Right) == TerrainCorner.Right ? Face.Right : Face.None) |
                                  ((corners & TerrainCorner.Back) == TerrainCorner.Back ? Face.Back : Face.None);

                BlockType sand = BlockManager.Get("MarsMiner_Sand", i - 1);
                sand.SetComponant(new VisibilityBComponant(true, solidFaces));
                sand.SetComponant(new ModelBComponant(GeometryModel.Terrain(corners,
                                                                            "images_blocks_sand", "images_blocks_sandtri",
                                                                            "images_blocks_sand", "images_blocks_sandtri", "images_blocks_sand")));

                BlockType rock = BlockManager.Get("MarsMiner_Rock", i - 1);
                rock.SetComponant(new VisibilityBComponant(true, solidFaces));
                rock.SetComponant(new ModelBComponant(GeometryModel.Terrain(corners,
                                                                            "images_blocks_rock", "images_blocks_rocktri",
                                                                            "images_blocks_rock", "images_blocks_rocktri", "images_blocks_rock")));
            }

            BlockType boulder = BlockManager.Get("MarsMiner_Boulder");

            boulder.SetComponant(new VisibilityBComponant(true, Face.All));
            boulder.SetComponant(new ModelBComponant(GeometryModel.Cube("images_blocks_boulder")));
        }
        /// <summary>
        /// Callback when the trail drawing layer changes
        /// </summary>
        private void Drawing_ContentsChanged(GeometryModel <RedliningElement> model, GeometryModel <RedliningElement> .ContentsChangedEventArgs args)
        {
            CheckMenuItemStates();

            // Send the trail model change on the databus
            Messenger.Send(new LiteMapTrailModelChangedMessage(this, model, args));
        }
        public async Task AddDiagramLines(MaterialModel materalModel, GeometryModel geometryModel, bool IsUpdate = false)
        {
            if (materalModel is null)
            {
                throw new ArgumentNullException(nameof(materalModel));
            }

            if (geometryModel is null)
            {
                throw new ArgumentNullException(nameof(geometryModel));
            }
            CreateMaterialAndGeometry(materalModel, geometryModel);

            var solver = new Solver(Material, Geometry);
            await solver.CalcAsync(0.5);

            if (!IsUpdate)
            {
                Results.Add(solver.List);
                ResultsAsPoint.Add(new List <Point>(solver.List.Select(c => new Point {
                    X = c.M_Rd, Y = c.N_Rd
                })));
            }
            else
            {
                Results[SelectedItemIndex]        = solver.List;
                ResultsAsPoint[SelectedItemIndex] = new List <Point>(solver.List.Select(c => new Point {
                    X = c.M_Rd, Y = c.N_Rd
                }));
            }
        }
Example #9
0
        static void Main(string[] args)
        {
            GeometryModel Mdl = Importer.Load <GeometryModel>("test.ext");


            Console.WriteLine("Done!");
            Console.ReadLine();
        }
 /// <summary>
 /// Creates a new instance of the <see cref="OperationMethod" /> class.
 /// </summary>
 /// <typeparam name="SourceType">The type of the source.</typeparam>
 /// <typeparam name="ResultType">The type of the result.</typeparam>
 /// <param name="identifier">The identifier.</param>
 /// <param name="name">The name.</param>
 /// <param name="remarks">The remarks.</param>
 /// <param name="isReversible">Indicates whether the method is reversible.</param>
 /// <param name="supportedModels">The supported models of the method.</param>
 /// <param name="supportedModes">The supported execution modes of the method.</param>
 /// <param name="parameters">The parameters of the method.</param>
 /// <returns>The <see cref="OperationMethod"/> instance produced by the method.</returns>
 /// <exception cref="System.ArgumentNullException">The identifier is null.</exception>
 public static OperationMethod CreateMethod <SourceType, ResultType>(String identifier, String name, String remarks,
                                                                     Boolean isReversible,
                                                                     GeometryModel supportedModels, ExecutionMode supportedModes,
                                                                     params OperationParameter[] parameters)
 {
     return(new OperationMethod(identifier, name, remarks, null, Version.Default,
                                isReversible, typeof(SourceType), typeof(ResultType),
                                supportedModels, supportedModes, parameters));
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="SpectralOperationMethod" /> class.
 /// </summary>
 /// <param name="identifier">The identifier.</param>
 /// <param name="name">The name.</param>
 /// <param name="remarks">The remarks.</param>
 /// <param name="aliases">The aliases.</param>
 /// <param name="version">The version.</param>
 /// <param name="isReversible">Indicates whether the method is reversible.</param>
 /// <param name="spectralDomain">The spectral domain of the operation.</param>
 /// <param name="sourceType">The source type of the method.</param>
 /// <param name="resultType">The result type of the method.</param>
 /// <param name="supportedModels">The supported geometry models.</param>
 /// <param name="supportedFormats">The supported raster formats.</param>
 /// <param name="supportedModes">The supported execution modes of the method.</param>
 /// <param name="parameters">The parameters of the operation.</param>
 /// <exception cref="System.ArgumentNullException">The identifier is null.</exception>
 public SpectralOperationMethod(String identifier, String name, String remarks, String[] aliases, Version version,
                                Boolean isReversible, SpectralOperationDomain spectralDomain,
                                Type sourceType, Type resultType, GeometryModel supportedModels,
                                RasterFormat supportedFormats,
                                ExecutionMode supportedModes,
                                params OperationParameter[] parameters)
     : base(identifier, name, remarks, aliases, version, isReversible, sourceType, resultType, supportedModels, supportedModes, parameters)
 {
     _supportedFormats = ExtractRasterFormats(supportedFormats);
     _spectralDomain   = spectralDomain;
 }
Example #12
0
        private void CreateSphere(GeometryData geometry, Material material, Vector3 position, Vector3 scale)
        {
            var mesh  = new GeometryMesh(geometry, material, Matrix.Identity);
            var model = new GeometryModel();

            model.Add(mesh);

            (var sphereGeometry, var sphereTransform, var sphereBounds) = this.Geometry.Create(model);
            sphereTransform.MoveTo(position);
            sphereTransform.SetScale(scale);
        }
Example #13
0
        public static GeometryRender Create(Direct3d d3d, GeometryModel source)
        {
            GeometryRender render = null;

            //Create the geometry object based type
            switch (source.GetType().Name)
            {
            case "ConeModel":
                render = new ConeRender(d3d, source);
                break;

            case "CylinderModel":
                render = new CylinderRender(d3d, source);
                break;

            case "CuboidModel":
                render = new CuboidRender(d3d, source);
                break;

            case "LineModel":
                render = new LineRender(d3d, source);
                break;

            case "PointModel":
                render = new PointRender(d3d, source);
                break;

            case "RectangleModel":
                render = new RectangleRender(d3d, source);
                break;

            case "SphereModel":
                render = new SphereRender(d3d, source);
                break;

            case "RoundModel":
                render = new RoundRender(d3d, source);
                break;

            case "SingleEOSymbolModel":
                render = new SingleEOSymbolRender(d3d, source);
                break;

            default:
                break;
            }

            if (render != null)
            {
                render.Initialize( );
            }

            return(render);
        }
Example #14
0
        private static void UpdateGeometry(ref GeometryModel incompleteGeometry, Vec <Coordinate> focusPosition)
        {
            switch (incompleteGeometry)
            {
            case RectangleModel rectangleModel:
                RectangleCreation.UpdateRectangle(rectangleModel, focusPosition);
                break;

            case LineModel lineModel:
                LineCreation.UpdateLine(lineModel, focusPosition);
                break;
            }
        }
Example #15
0
        /// <summary>
        /// 空间坐标是否存在
        /// </summary>
        /// <param name="Geometry"></param>
        /// <returns></returns>
        public bool ExistGeometry(GeometryModel Geometry)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append(" SELECT BOID,NAME,T.GEOMETRY.GET_WKT() GEOMETRY,SOURCEDB  FROM GEOMETRY T ");
            strSql.Append(" WHERE BOID =:BOID");
            OracleParameter[] parameters =
            {
                new OracleParameter("BOID", OracleDbType.Varchar2, 36)
            };
            parameters[0].Value = Geometry.BOID;
            return(OracleDBHelper.OracleHelper.ExecuteQueryText <GeometryModel>(strSql.ToString(), parameters).Count > 0 ? true : false);
        }
Example #16
0
        public IActionResult Save(GeometryModel model)
        {
            if (model.GeometryType == GeometryType.Line)
            {
                return(Json(model as GeometryLineModel));
            }
            else if (model.GeometryType == GeometryType.Circle)
            {
                return(Json(model as GeometryCircleModel));
            }

            return(new EmptyResult());
        }
Example #17
0
            public GravityGeometryBehavior(PlayerMob mob, GeometryModel currentModel)
            {
                Mob          = mob;
                CurrentModel = currentModel;
                var geometry = CurrentModel.CollapseToDerived(CurrentModel.FindGeometry(mob.Skin.GeometryName));

                geometry.Subdivide(true, false);

                SetVelocity(geometry, new Random());

                CurrentModel.Geometry.Clear();
                CurrentModel.Geometry.Add(geometry);
            }
Example #18
0
        /// <summary>
        /// 空间坐标是否存在
        /// </summary>
        /// <param name="Geometry"></param>
        /// <returns></returns>
        public bool ExistGeometry(GeometryModel Geometry)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append(" SELECT BOID,NAME,T.GEOMETRY.MakeValid().STAsText() AS GEOMETRY,SOURCEDB  FROM GEOMETRY T ");
            strSql.Append(" WHERE BOID =@BOID");
            SqlParameter[] parameters =
            {
                new SqlParameter("BOID", SqlDbType.VarChar, 36)
            };
            parameters[0].Value = Geometry.BOID;

            return(SqlServerDBHelper.GetDataTable(strSql.ToString(), parameters).Rows.Count > 0 ? true : false);
        }
Example #19
0
        public IGeometryModel ReadGeometry(int lod)
        {
            if (lod < 0 || lod >= ((IRenderGeometry)this).LodCount)
            {
                throw new ArgumentOutOfRangeException(nameof(lod));
            }

            var model = new GeometryModel(Name)
            {
                CoordinateSystem = CoordinateSystem.Default
            };

            model.Nodes.AddRange(Nodes);
            model.MarkerGroups.AddRange(MarkerGroups);
            model.Bounds.AddRange(BoundingBoxes);
            model.Materials.AddRange(Halo3Common.GetMaterials(Shaders));

            foreach (var region in Regions)
            {
                var gRegion = new GeometryRegion {
                    SourceIndex = Regions.IndexOf(region), Name = region.Name
                };
                gRegion.Permutations.AddRange(region.Permutations.Where(p => p.SectionIndex >= 0).Select(p =>
                                                                                                         new GeometryPermutation
                {
                    SourceIndex = region.Permutations.IndexOf(p),
                    Name        = p.Name,
                    MeshIndex   = p.SectionIndex,
                    MeshCount   = 1
                }));

                if (gRegion.Permutations.Any())
                {
                    model.Regions.Add(gRegion);
                }
            }

            Func <int, int, int> mapNodeFunc = null;

            if (Flags.HasFlag(ModelFlags.UseLocalNodes))
            {
                mapNodeFunc = (si, i) => NodeMaps[si].Indices[i];
            }

            model.Meshes.AddRange(Halo3Common.GetMeshes(cache, ResourcePointer, Sections, (s, m) => m.BoundsIndex = 0, mapNodeFunc));

            CreateInstanceMeshes(model);

            return(model);
        }
Example #20
0
        public IGeometryModel ReadGeometry(int lod)
        {
            if (lod < 0 || lod >= ((IRenderGeometry)this).LodCount)
            {
                throw new ArgumentOutOfRangeException(nameof(lod));
            }

            using (var reader = cache.CreateReader(cache.DefaultAddressTranslator))
            {
                var model = new GeometryModel(item.FileName())
                {
                    CoordinateSystem = CoordinateSystem.Default
                };

                model.Nodes.AddRange(Nodes);
                model.MarkerGroups.AddRange(MarkerGroups);

                var shaderRefs = Shaders.Select(s => s.ShaderReference);
                model.Materials.AddRange(Halo1Common.GetMaterials(shaderRefs, reader));

                foreach (var region in Regions)
                {
                    var gRegion = new GeometryRegion {
                        SourceIndex = Regions.IndexOf(region), Name = region.Name
                    };
                    gRegion.Permutations.AddRange(region.Permutations.Select(p =>
                                                                             new GeometryPermutation
                    {
                        SourceIndex = region.Permutations.IndexOf(p),
                        Name        = p.Name,
                        MeshIndex   = p.LodIndex(lod),
                        MeshCount   = 1
                    }));

                    model.Regions.Add(gRegion);
                }

                if (cache.CacheType == CacheType.Halo1Xbox)
                {
                    model.Meshes.AddRange(ReadXboxMeshes(reader));
                }
                else
                {
                    model.Meshes.AddRange(ReadPCMeshes(reader));
                }

                return(model);
            }
        }
Example #21
0
        public static string ToJson(GeometryModel geometryModel)
        {
            var settings = new JsonSerializerSettings();

            settings.NullValueHandling     = NullValueHandling.Ignore;
            settings.DefaultValueHandling  = DefaultValueHandling.IgnoreAndPopulate;
            settings.MissingMemberHandling = MissingMemberHandling.Error;
            //settings.Formatting = Formatting.Indented;
            settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            settings.Converters.Add(new StringEnumConverter {
                NamingStrategy = new CamelCaseNamingStrategy()
            });

            return(JsonConvert.SerializeObject(geometryModel, settings));
        }
Example #22
0
        public void SpawnFake(Player player, string name)
        {
            string pluginDirectory = Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath);

            //var bytes = Encoding.Default.GetBytes(new string('Z', 8192));
            //byte[] skinData = Skin.GetTextureFromFile(Path.Combine(pluginDirectory, "test_skin.png"));
            byte[] skinData   = Skin.GetTextureFromFile(Path.Combine(pluginDirectory, "IMG_0220.png"));
            string skinString = File.ReadAllText(Path.Combine(pluginDirectory, "geometry.json"));

            var    random  = new Random();
            string newName = $"geometry.{DateTime.UtcNow.Ticks}.{random.NextDouble()}";

            skinString = skinString.Replace("geometry.humanoid.custom", newName);
            GeometryModel geometryModel = Skin.Parse(skinString);

            PlayerLocation coordinates = player.KnownPosition;
            Vector3        direction   = Vector3.Normalize(player.KnownPosition.GetHeadDirection()) * 1.5f;

            var fake = new PlayerMob(string.Empty, player.Level)
            {
                KnownPosition = new PlayerLocation(coordinates.X + direction.X, coordinates.Y, coordinates.Z + direction.Z, 0, 0)
                                //KnownPosition = new PlayerLocation(coordinates.X + direction.X, coordinates.Y, coordinates.Z + direction.Z, coordinates.HeadYaw + 180f, coordinates.Yaw + 180f)
            };

            fake.Skin.Data = skinData;
            fake.Skin.SkinResourcePatch = new SkinResourcePatch()
            {
                Geometry = new GeometryIdentifier()
                {
                    Default = newName
                }
            };
            fake.Skin.GeometryName = newName;
            //fake.Skin.GeometryData = skinString;
            fake.Skin.GeometryData = Skin.ToJson(geometryModel);
            ;

            fake.SpawnEntity();

            fake.SetPosition(new PlayerLocation(coordinates.X + direction.X, coordinates.Y, coordinates.Z + direction.Z, 0, 0), true);

            var state = new GravityGeometryBehavior(fake, geometryModel);

            fake.Ticking += state.FakeMeltTicking;
        }
Example #23
0
        public IGeometryModel ReadGeometry(int lod)
        {
            if (lod < 0 || lod >= ((IRenderGeometry)this).LodCount)
            {
                throw new ArgumentOutOfRangeException(nameof(lod));
            }

            var model = new GeometryModel(Utils.GetFileName(item.FullPath))
            {
                CoordinateSystem = CoordinateSystem.Default
            };

            model.Nodes.AddRange(Nodes);
            model.MarkerGroups.AddRange(MarkerGroups);
            model.Bounds.AddRange(BoundingBoxes);
            model.Materials.AddRange(Halo5Common.GetMaterials(Materials));

            foreach (var region in Regions)
            {
                var gRegion = new GeometryRegion {
                    Name = region.Name
                };
                gRegion.Permutations.AddRange(region.Permutations.Where(p => p.SectionIndex >= 0).Select(p =>
                                                                                                         new GeometryPermutation
                {
                    Name      = p.Name,
                    MeshIndex = p.SectionIndex,
                    MeshCount = p.SectionCount
                }));

                if (gRegion.Permutations.Any())
                {
                    model.Regions.Add(gRegion);
                }
            }

            Func <int, int, int> mapNodeFunc = null;

            model.Meshes.AddRange(Halo5Common.GetMeshes(module, item, Sections, lod, s => 0, mapNodeFunc));

            CreateInstanceMeshes(model, lod);

            return(model);
        }
Example #24
0
    protected void CopyFrom (TComponentModel alias)
    {
      if (alias.NotNull ()) {
        SettingsModel.CopyFrom (alias.SettingsModel);

        InfoModel.CopyFrom (alias.InfoModel);
        StatusModel.CopyFrom (alias.StatusModel);
                
        ImageModel.CopyFrom (alias.ImageModel);
        GeometryModel.CopyFrom (alias.GeometryModel);
        LayoutModel.CopyFrom (alias.LayoutModel);
        TextModel.CopyFrom (alias.TextModel);
        NodeModel.CopyFrom (alias.NodeModel);
        ContentModel.CopyFrom (alias.ContentModel);

        NodeModelCollection = new Collection<ExtensionNode> (alias.NodeModelCollection);
        ContentModelCollection = new Collection<ExtensionContent> (alias.ContentModelCollection);
      }
    }
        /// <summary>
        /// Callback when the edit geometry selection changes
        /// </summary>
        void DrawingSelection_ContentsChanged(GeometryModel <RedliningElement> selection, GeometryModel <RedliningElement> .ContentsChangedEventArgs args)
        {
            if (!SettingUp && IsEditing && this.EditFeature != null)
            {
                if (selection.Count == 1)
                {
                    var element = selection[0];
                    var field   = element.Tag as FeatureGeometryFieldDescriptor;

                    if (field != null)
                    {
                        // Get the geometry
                        var geometry = element.Geometry;

                        // Set the geometry
                        EditFeature[field] = geometry;
                    }
                }
            }
        }
Example #26
0
        public void SpawnFake(Player player, string name)
        {
            string pluginDirectory = Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath);

            //var bytes = Encoding.Default.GetBytes(new string('Z', 8192));
            byte[] bytes = Skin.GetTextureFromFile(Path.Combine(pluginDirectory, "test_skin.png"));
            //byte[] bytes = Skin.GetTextureFromFile(Path.Combine(pluginDirectory, "IMG_0220.png"));
            string skinString = File.ReadAllText(Path.Combine(pluginDirectory, "geometry.json"));

            var    random  = new Random();
            string newName = $"geometry.{DateTime.UtcNow.Ticks}.{random.NextDouble()}";

            skinString = skinString.Replace("geometry.humanoid", newName);
            GeometryModel geometryModel = Skin.Parse(skinString);

            var coordinates = player.KnownPosition;
            var direction   = Vector3.Normalize(player.KnownPosition.GetHeadDirection()) * 1.5f;

            PlayerMob fake = new PlayerMob(string.Empty, player.Level)
            {
                Skin = new Skin
                {
                    SkinId           = "testing",
                    Slim             = false,
                    SkinData         = bytes,
                    CapeData         = new byte[0],
                    SkinGeometryName = newName,
                    SkinGeometry     = skinString
                },
                KnownPosition = new PlayerLocation(coordinates.X + direction.X, coordinates.Y, coordinates.Z + direction.Z, 0, 0)
                                //KnownPosition = new PlayerLocation(coordinates.X + direction.X, coordinates.Y, coordinates.Z + direction.Z, coordinates.HeadYaw + 180f, coordinates.Yaw + 180f)
            };

            fake.SpawnEntity();

            fake.SetPosition(new PlayerLocation(coordinates.X + direction.X, coordinates.Y, coordinates.Z + direction.Z, 0, 0), true);

            GravityGeometryBehavior state = new GravityGeometryBehavior(fake, geometryModel);

            fake.Ticking += state.FakeMeltTicking;
        }
        // GeometryModelからPOSTデータを作成
        private static FormUrlEncodedContent GetContent(GeometryModel geometry)
        {
            var nameValues = geometry switch  {
                GeometryLineModel line => new Dictionary <string, string> {
                    { nameof(GeometryModel.GeometryType), line.GeometryType.ToString() },
                    { nameof(GeometryLineModel.X1), line.X1.ToString() },
                    { nameof(GeometryLineModel.Y1), line.Y1.ToString() },
                    { nameof(GeometryLineModel.X2), line.X2.ToString() },
                    { nameof(GeometryLineModel.Y2), line.Y2.ToString() },
                },
                GeometryCircleModel circle => new Dictionary <string, string> {
                    { nameof(GeometryModel.GeometryType), circle.GeometryType.ToString() },
                    { nameof(GeometryCircleModel.R), circle.R.ToString() },
                    { nameof(GeometryCircleModel.X), circle.X.ToString() },
                    { nameof(GeometryCircleModel.Y), circle.Y.ToString() },
                },
                _ => throw new ArgumentException(nameof(geometry)),
            };

            return(new FormUrlEncodedContent(nameValues));
        }
Example #28
0
        /// <summary>
        /// 添加空间坐标
        /// </summary>
        /// <param name="Geometry"></param>
        /// <returns></returns>
        public bool InsertGeometry(GeometryModel Geometry)
        {
            StringBuilder strInsertSql = new StringBuilder();

            strInsertSql.Append(" INSERT INTO GEOMETRY(  ");
            strInsertSql.Append(" BOID,NAME,GATHERID,GEOMETRY,SOURCEDB)");
            strInsertSql.Append(" VALUES (:BOID,:NAME,GATHERID,SDO_GEOMETRY(:GEOMETRY,4326),:SOURCEDB)");

            OracleParameter[] parameters =
            {
                new OracleParameter("BOID",     OracleDbType.Varchar2, 36),
                new OracleParameter("NAME",     OracleDbType.Varchar2, 50),
                new OracleParameter("GATHERID", OracleDbType.Varchar2, 36),
                new OracleParameter("GEOMETRY", OracleDbType.Clob),
                new OracleParameter("SOURCEDB", OracleDbType.Varchar2, 50)
            };
            parameters[0].Value = Geometry.BOID;
            parameters[1].Value = Geometry.NAME;
            parameters[2].Value = Geometry.GATHERID;
            parameters[3].Value = Geometry.SOURCEDB;
            return(OracleDBHelper.OracleHelper.ExecuteSql(strInsertSql.ToString(), parameters) > 0 ? true : false);
        }
Example #29
0
        /// <summary>
        /// 添加空间坐标
        /// </summary>
        /// <param name="Geometry"></param>
        /// <returns></returns>
        public bool InsertGeometry(GeometryModel Geometry)
        {
            StringBuilder strInsertSql = new StringBuilder();

            strInsertSql.Append(" INSERT INTO GEOMETRY(  ");
            strInsertSql.Append(" BOID,NAME,GATHERID,GEOMETRY,SOURCEDB)");
            strInsertSql.Append(" VALUES (@BOID,@NAME,GATHERID,GEOGRAPHY::STGeomFromText(@GEOMETRY, 4326),@SOURCEDB)");

            SqlParameter[] parameters =
            {
                new SqlParameter("BOID",     SqlDbType.VarChar, 36),
                new SqlParameter("NAME",     SqlDbType.VarChar, 50),
                new SqlParameter("GATHERID", SqlDbType.VarChar, 36),
                new SqlParameter("GEOMETRY", SqlDbType.Binary),
                new SqlParameter("SOURCEDB", SqlDbType.VarChar, 50)
            };
            parameters[0].Value = Geometry.BOID;
            parameters[1].Value = Geometry.NAME;
            parameters[2].Value = Geometry.GATHERID;
            parameters[3].Value = Geometry.SOURCEDB;
            return(SqlServerDBHelper.ExecuteCommand(strInsertSql.ToString(), parameters) > 0 ? true : false);
        }
Example #30
0
        /// <summary>
        /// 修改空间坐标
        /// </summary>
        /// <param name="Geometry"></param>
        /// <returns></returns>
        public bool UpdateGeometry(GeometryModel Geometry)
        {
            StringBuilder strUpdateSql = new StringBuilder();

            strUpdateSql.Append(" UPDATE GEOMETRY SET GATHERID=:GATHERID");
            strUpdateSql.Append(" SOURCEDB=:SOURCEDB,GEOMETRY=SDO_GEOMETRY(:GEOMETRY,4326)),NAME=:NAME");
            strUpdateSql.Append(" WHERE BOID=:BOID ");

            OracleParameter[] parameters =
            {
                new OracleParameter("GATHERID", OracleDbType.Varchar2, 50),
                new OracleParameter("SOURCEDB", OracleDbType.Clob),
                new OracleParameter("GEOMETRY", OracleDbType.Varchar2, 36),
                new OracleParameter("NAME",     OracleDbType.Varchar2, 50),
                new OracleParameter("BOID",     OracleDbType.Varchar2, 36)
            };
            parameters[0].Value = Geometry.GATHERID;
            parameters[1].Value = Geometry.SOURCEDB;
            parameters[2].Value = Geometry.GEOMETRY;
            parameters[3].Value = Geometry.NAME;
            parameters[3].Value = Geometry.BOID;
            return(OracleDBHelper.OracleHelper.ExecuteSql(strUpdateSql.ToString(), parameters) > 0 ? true : false);
        }
 public PlaceModel()
 {
     OpeningHours = new OpeningHoursModel();
     Geometry = new GeometryModel();
 }