Esempio n. 1
0
        protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
        {
            base.OnMouseLeftButtonDown(e);
            Color?color = ViewManager.ShowColorDialog(Caption, SelectedColor.GetColor(ColorSchema));

            if (color != null)
            {
                SelectedColor.SetColor(color.Value, ColorSchema);
                SelectedColor = new SkyColor(SelectedColor);
            }
        }
Esempio n. 2
0
        public FovSettingsVM(ISettings settings)
        {
            _Settings = settings;
            LoadEquipment();
            Binning  = 1;
            Rotation = 0;
            Color    = new SkyColor(System.Drawing.Color.Pink);

            AddEquipmentCommand    = new Command <Type>((type) => EditEquipment(type, isNew: true));
            EditEquipmentCommand   = new Command <Type>((type) => EditEquipment(type, isNew: false));
            DeleteEquipmentCommand = new Command <Type>((type) => DeleteEquipment(type));

            OkCommand     = new Command(Ok);
            CancelCommand = new Command(Close);
        }
 internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
 {
     if (id == "groundAngle")
     {
         GroundAngle.AddRange(parser.ParseSFFloatOrMFFloatValue());
     }
     else if (id == "groundColor")
     {
         GroundColor.AddRange(parser.ParseSFColorOrMFColorValue());
     }
     else if (id == "backUrl")
     {
         BackUrl.AddRange(parser.ParseSFStringOrMFStringValue());
     }
     else if (id == "bottomUrl")
     {
         BottomUrl.AddRange(parser.ParseSFStringOrMFStringValue());
     }
     else if (id == "frontUrl")
     {
         FrontUrl.AddRange(parser.ParseSFStringOrMFStringValue());
     }
     else if (id == "leftUrl")
     {
         LeftUrl.AddRange(parser.ParseSFStringOrMFStringValue());
     }
     else if (id == "rightUrl")
     {
         RightUrl.AddRange(parser.ParseSFStringOrMFStringValue());
     }
     else if (id == "topUrl")
     {
         TopUrl.AddRange(parser.ParseSFStringOrMFStringValue());
     }
     else if (id == "skyAngle")
     {
         SkyAngle.AddRange(parser.ParseSFFloatOrMFFloatValue());
     }
     else if (id == "skyColor")
     {
         if (wasSkyColor)
         {
             SkyColor.AddRange(parser.ParseSFColorOrMFColorValue());
         }
         else
         {
             SkyColor = parser.ParseSFColorOrMFColorValue();
         }
         wasSkyColor = true;
     }
     else if (id == "transparency")
     {
         // since X3D Node Spec and VRML Classic Coding Spec disagree on the fieldType
         List <double> values = parser.ParseSFFloatOrMFFloatValue();
         if (values.Count != 0)
         {
             Transparency = values[0];
         }
     }
     else
     {
         return(false);
     }
     return(true);
 }
Esempio n. 4
0
 public override object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
 {
     skyColor = (SkyColor)values[0];
     settings = (ISettings)values[1];
     return(skyColor.GetColor(settings.Get <ColorSchema>("Schema")));
 }
        internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
        {
            int line = parser.Line;

            if (id == "groundAngle")
            {
                GroundAngle.AddRange(parser.ParseSFFloatOrMFFloatValue());
            }
            else if (id == "groundColor")
            {
                GroundColor.AddRange(parser.ParseSFColorOrMFColorValue());
            }
            else if (id == "backTexture")
            {
                X3DNode node = parser.ParseSFNodeValue();
                if (node != null)
                {
                    BackTexture = node as X3DTextureNode;
                    if (BackTexture == null)
                    {
                        parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line);
                    }
                }
            }
            else if (id == "bottomTexture")
            {
                X3DNode node = parser.ParseSFNodeValue();
                if (node != null)
                {
                    BottomTexture = node as X3DTextureNode;
                    if (BottomTexture == null)
                    {
                        parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line);
                    }
                }
            }
            else if (id == "frontTexture")
            {
                X3DNode node = parser.ParseSFNodeValue();
                if (node != null)
                {
                    FrontTexture = node as X3DTextureNode;
                    if (FrontTexture == null)
                    {
                        parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line);
                    }
                }
            }
            else if (id == "leftTexture")
            {
                X3DNode node = parser.ParseSFNodeValue();
                if (node != null)
                {
                    LeftTexture = node as X3DTextureNode;
                    if (LeftTexture == null)
                    {
                        parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line);
                    }
                }
            }
            else if (id == "rightTexture")
            {
                X3DNode node = parser.ParseSFNodeValue();
                if (node != null)
                {
                    RightTexture = node as X3DTextureNode;
                    if (RightTexture == null)
                    {
                        parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line);
                    }
                }
            }
            else if (id == "topTexture")
            {
                X3DNode node = parser.ParseSFNodeValue();
                if (node != null)
                {
                    TopTexture = node as X3DTextureNode;
                    if (TopTexture == null)
                    {
                        parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line);
                    }
                }
            }
            else if (id == "skyAngle")
            {
                SkyAngle.AddRange(parser.ParseSFFloatOrMFFloatValue());
            }
            else if (id == "skyColor")
            {
                if (wasSkyColor)
                {
                    SkyColor.AddRange(parser.ParseSFColorOrMFColorValue());
                }
                else
                {
                    SkyColor = parser.ParseSFColorOrMFColorValue();
                }
                wasSkyColor = true;
            }
            else if (id == "transparency")
            {
                // since X3D Node Spec and VRML Classic Coding Spec disagree on the fieldType
                List <double> values = parser.ParseSFFloatOrMFFloatValue();
                if (values.Count != 0)
                {
                    Transparency = values[0];
                }
            }
            else
            {
                return(false);
            }
            return(true);
        }
Esempio n. 6
0
        protected override void LoadContent()
        {
            Error       = Content.Load <Model>("Error");
            spriteBatch = new SpriteBatch(GraphicsDevice);
            for (int i = 0; i < _3DRadSpaceGame.MAX_OBJECTS; i++)
            {
                string obj = project[i].ToString();
                switch (obj.Split(' ')[0])
                {
                case "Camera":
                {
                    Vector3 pos = new Vector3(Convert.ToSingle(obj.Split(' ')[3]), Convert.ToSingle(obj.Split(' ')[4]), Convert.ToSingle(obj.Split(' ')[5]));
                    Objects[i] = new Camera(
                        obj.Split(' ')[1],
                        Convert.ToBoolean(obj.Split(' ')[2]),
                        pos,
                        Vector3.Zero,             //Vector3.Transform(pos, Matrix.CreateFromYawPitchRoll(MathHelper.ToRadians(Convert.ToSingle(obj.Split(' ')[7])),MathHelper.ToRadians( Convert.ToSingle(obj.Split(' ')[6])), MathHelper.ToRadians(Convert.ToSingle(obj.Split(' ')[8])))),
                        MathHelper.ToRadians(Convert.ToSingle(obj.Split(' ')[9])),
                        Convert.ToSingle(obj.Split(' ')[11])
                        );
                    break;
                }

                case "SkyColor":
                {
                    Color color = new Color(Convert.ToUInt32(obj.Split(' ')[3]), Convert.ToUInt32(obj.Split(' ')[4]), Convert.ToUInt32(obj.Split(' ')[5]));
                    Objects[i] = new SkyColor(
                        obj.Split(' ')[1],
                        Convert.ToBoolean(obj.Split(' ')[2]),
                        color
                        );
                    break;
                }

                case "Skinmesh":
                {
                    Vector3 pos    = new Vector3(Convert.ToSingle(obj.Split(' ')[3]), Convert.ToSingle(obj.Split(' ')[4]), Convert.ToSingle(obj.Split(' ')[5]));
                    Vector3 rot    = new Vector3(Convert.ToSingle(obj.Split(' ')[6]), Convert.ToSingle(obj.Split(' ')[7]), Convert.ToSingle(obj.Split(' ')[8]));
                    string  res    = "";
                    int     length = obj.Split(' ').Length;
                    for (int j = 10; j < length; j++)
                    {
                        res += obj.Split(' ')[j];
                        if (j != length - 1)
                        {
                            res += " ";
                        }
                    }
                    Objects[i] = new SkinMesh(obj.Split(' ')[1],
                                              Convert.ToBoolean(obj.Split(' ')[2]),
                                              res, pos, rot);
                    break;
                }

                case "TextPrint":
                {
                    Color clr = new Color(Convert.ToInt32(obj.Split(' ')[5]),
                                          Convert.ToInt32(obj.Split(' ')[6])
                                          , Convert.ToInt32(obj.Split(' ')[7])
                                          );
                    string text = "";
                    for (int j = 8; j < obj.Split(' ').Length; j++)
                    {
                        text += obj.Split(' ')[j];
                    }
                    Vector3 loc = new Vector3(Convert.ToInt32(obj.Split(' ')[4]),
                                              Convert.ToInt32(obj.Split(' ')[5]), 0);

                    Objects[i] = new TextPrint(obj.Split(' ')[1], Convert.ToBoolean(obj.Split(' ')[2]), Content, loc, text, clr);
                    break;
                }

                case "Fog":
                {
                    Vector3 clr = new Vector3(Convert.ToInt32(obj.Split(' ')[3]),
                                              Convert.ToInt32(obj.Split(' ')[4])
                                              , Convert.ToInt32(obj.Split(' ')[5])
                                              );
                    Objects[i] = new Fog(obj.Split(' ')[1], Convert.ToBoolean(obj.Split(' ')[2])
                                         , clr, Convert.ToSingle(obj.Split(' ')[6]), Convert.ToSingle(obj.Split(' ')[7]));
                    break;
                }

                default: break;
                }
                AllObjectsInitialize();
            }
        }
Esempio n. 7
0
        protected override void LoadContent()
        {
            // Load shader, set up settings
            var black = Game.Content.Load <Texture2D>("Textures/black");

            basicShader = Game.Content.Load <Effect>("Shaders/BasicColorMapped");
            basicShader.CurrentTechnique = basicShader.Techniques["DefaultTechnique"];
            basicShader.Parameters["ColorMapTexture"].SetValue(black);
            basicShader.Parameters["ColorInfluence"].SetValue(1.0f);
            basicShader.Parameters["FogColor"].SetValue(SkyColor.ToVector4());
            basicShader.Parameters["FogEndDistance"].SetValue(FogDistance);

            // Load models, decoration and biome data
            var modelLoader       = new AtlasModelLoader(2048, 2048, basicShader, Game.Content);
            var decorationData    = orbis.Content.Load <XMLModel.DecorationCollection>("Config/Decorations");
            var decorationManager = new DecorationManager(decorationData, modelLoader, GraphicsDevice);

            // Load decorations
            foreach (var data in decorationData.Decorations)
            {
                decorations.Add(data.Name, new DecorationPool(decorationManager.GetDecorationMesh(data.Name), GraphicsDevice, 1));
            }
            var biomeData = orbis.Content.Load <XMLModel.BiomeCollection>("Config/Biomes");

            biomeMappedData = new Dictionary <string, BiomeMappedData>();
            // Load biomes
            foreach (var biome in biomeData.Biomes)
            {
                biomeMappedData.Add(biome.Name, new BiomeMappedData
                {
                    HexMesh           = modelLoader.LoadModel(biome.HexModel.Name, biome.HexModel.Texture, biome.HexModel.ColorTexture).Mesh,
                    DefaultDecoration = biome.DefaultDecoration,
                    DefaultDensity    = biome.DecorationDensity,
                });
            }

            // Load tile highlight mesh
            var model = modelLoader.LoadModel("flag", "flag");

            tileHighlightMesh = new RenderableMesh(GraphicsDevice, model.Mesh);

            modelLoader.FinializeLoading(GraphicsDevice);

            // Set up shader textures
            basicShader.Parameters["MainTexture"].SetValue(modelLoader.Material.Texture);
            basicShader.Parameters["ColorMapTexture"].SetValue(modelLoader.Material.ColorMap);

            if (atlasDebugEnabled)
            {
                // Atlas texture debugging
                Mesh mesh = null;
                using (var stream = TitleContainer.OpenStream("Content/Meshes/quad_up.obj"))
                {
                    mesh = ObjParser.FromStream(stream);
                }
                atlasDebugInstance = new RenderInstance
                {
                    mesh   = new RenderableMesh(GraphicsDevice, mesh),
                    matrix = Matrix.CreateScale(10) * Matrix.CreateTranslation(0, 0, 30),
                };
                basicShader.Parameters["ColorMapTexture"].SetValue(black);
            }

            base.LoadContent();
        }
Esempio n. 8
0
 public Color GetColor(Color colorNight, Color colorDay)
 {
     return(SkyColor.GetColor(Schema, colorNight, colorDay, DayLightFactor));
 }