Example #1
0
        protected BaseDecalLayerSection(
            string title, string basePath,
            [CanBeNull] string layerModeProperty, LayerMode visibleMode,
            [CanBeNull] string layerMaskProperty, [CanBeNull] string layerMaskScaleProperty, [CanBeNull] string layerMaskOffsetProperty,
            [NotNull] string channel1Property, [NotNull] string channel2Property, [NotNull] string channel3Property, [NotNull] string channel4Property,
            [CanBeNull] string channelModeProperty,
            [NotNull] string channelInputThresholdProperty, [NotNull] string channelInputSoftnessProperty,
            [NotNull] string channelOutputRangeProperty, [CanBeNull] string sectionExpandedProperty
            )
        {
            _basePath          = basePath;
            _layerModeProperty = layerModeProperty;
            _visibleMode       = visibleMode;
            _title             = new GUIContent(title);

            _layerMaskProperty       = layerMaskProperty;
            _layerMaskScaleProperty  = layerMaskScaleProperty;
            _layerMaskOffsetProperty = layerMaskOffsetProperty;

            _channel1Property = channel1Property;
            _channel2Property = channel2Property;
            _channel3Property = channel3Property;
            _channel4Property = channel4Property;

            _sectionExpandedProperty = sectionExpandedProperty;

            _channel1 = new ChannelDrawer(Red, new Vector4(1, 0, 0, 0), channelModeProperty, channelInputThresholdProperty, channelInputSoftnessProperty, channelOutputRangeProperty);
            _channel2 = new ChannelDrawer(Green, new Vector4(0, 1, 0, 0), channelModeProperty, channelInputThresholdProperty, channelInputSoftnessProperty, channelOutputRangeProperty);
            _channel3 = new ChannelDrawer(Blue, new Vector4(0, 0, 1, 0), channelModeProperty, channelInputThresholdProperty, channelInputSoftnessProperty, channelOutputRangeProperty);
            _channel4 = new ChannelDrawer(White, new Vector4(0, 0, 0, 1), channelModeProperty, channelInputThresholdProperty, channelInputSoftnessProperty, channelOutputRangeProperty);
        }
Example #2
0
 public MaterialPermutation(WetDecalMode mode, LayerMode layerMode, ProjectionMode layerProjectionMode, DecalShape shape, bool enableJitter)
 {
     Mode                = mode;
     LayerMode           = layerMode;
     LayerProjectionMode = layerProjectionMode;
     Shape               = shape;
     EnableJitter        = enableJitter;
 }
Example #3
0
        /// <inheritdoc/>
        public override int GetHashCode()
        {
            int hashCode = 360113769;

            hashCode = hashCode * -1521134295 + LayerMode.GetHashCode();
            hashCode = hashCode * -1521134295 + HistoryMode.GetHashCode();
            return(hashCode);
        }
 protected BaseDirectionalSettings(string title, string basePath, LayerMode visible)
     : base(
         title, basePath, "_settings._layerMode", visible,
         "_layerMask", "_layerMaskScale", "_layerMaskOffset",
         "_channel1", "_channel2", "_channel3", "_channel4",
         "_mode", "_inputRangeThreshold", "_inputRangeSoftness", "_outputRange", "_editorSectionFoldout", "_settings._shape"
         )
 {
 }
Example #5
0
 protected BaseDirectionalSettings(string title, string basePath, LayerMode visible)
     : base(
         title, basePath, null, visible, //todo fix
         null, null, null,
         "Channel1", "Channel2", "Channel3", "Channel4",
         null, "InputRangeThreshold", "InputRangeSoftness", "OutputRange", "_editorSectionFoldout"
         )
 {
 }
Example #6
0
 public GenerationLayer(
     LayerMode Mode       = LayerMode.Multiply,
     ChannelFlag Channels = ChannelFlag.A | ChannelFlag.B | ChannelFlag.G | ChannelFlag.R,
     bool Visible         = true)
 {
     this.Generator = new FractalGenerator(0);
     this.Mode      = Mode;
     this.Channels  = Channels;
     this.Visible   = Visible;
 }
Example #7
0
 public void Draw(Graphics graphics, Tileset tileset, LayerMode layerMode, TileRectangle sourceRect, int tileSize)
 {
     for (int y = 0; y <= sourceRect.Height; y++)
     {
         for (int x = 0; x <= sourceRect.Width; x++)
         {
             tileset.DrawTile(graphics, new TileLocation(x, y), upperLayer[x + sourceRect.X, y + sourceRect.Y], lowerLayer[x + sourceRect.X, y + sourceRect.Y], layerMode, tileSize);
         }
     }
 }
Example #8
0
 public void Draw(Graphics graphics, Tileset tileset, LayerMode layerMode, int tileSize)
 {
     foreach (var location in TileRectangle.AllTiles.ToArray())
     {
         tileset.DrawTile(graphics, location, upperLayer[location], lowerLayer[location], layerMode, tileSize);
     }
     if (tileset != Tileset.Preview && tileSize >= 32)
     {
         DrawConnections(graphics, trapConnections, Brushes.Brown, tileSize);
         DrawConnections(graphics, cloneConnections, Brushes.Red, tileSize);
     }
 }
Example #9
0
 public Layer( string name, Point location, Bitmap src )
 {
     this.file = null;
     this.name = name;
     this.location = location;
     image = src == null ? null : ((Bitmap)src.Clone());
     clipping = LayerClipping.Base;
     opacity = 255;
     visible = true;
     protecttrans = false;
     mode = LayerMode.Normal;
     mask = null;
     adjustments = new LayerAdjustment[0];
 }
        public void LoadInto([NotNull] MaterialPropertyBlock properties, LayerMode mode)
        {
            properties.SetFloat(SaturationId, Saturation);
            properties.SetFloat(FadeoutId, Fadeout);
            properties.SetFloat(EdgeSharpnessId, EdgeSharpness);

            if (mode != LayerMode.None)
            {
                YLayer.LoadInto(properties, YLayerInputStartId, YLayerInputExtentId, YLayerOutputStartId, YLayerOutputEndId);
            }

            if (mode == LayerMode.Triplanar)
            {
                XLayer.LoadInto(properties, XLayerInputStartId, XLayerInputExtentId, XLayerOutputStartId, XLayerOutputEndId);
                ZLayer.LoadInto(properties, ZLayerInputStartId, ZLayerInputExtentId, ZLayerOutputStartId, ZLayerOutputEndId);
            }
        }
Example #11
0
 public void DrawTile(Graphics graphics, TileLocation location, Tile upperTile, Tile lowerTile, LayerMode layerMode, int tileSize)
 {
     if ((layerMode & LayerMode.LowerLayer) == LayerMode.LowerLayer)
     {
         DrawBitmap(graphics, location, lowerTile, tileSize, false);
     }
     if ((layerMode & LayerMode.UpperLayer) == LayerMode.UpperLayer)
     {
         DrawBitmap(graphics, location, upperTile, tileSize, lowerTile != Tile.Floor && (layerMode & LayerMode.LowerLayer) == LayerMode.LowerLayer);
     }
 }
Example #12
0
        void CreateLayer(Texture2D heightmap, LayerMode mode, BlendMode blendMode, PlacementParameters parameters)
        {
            RenderTarget2D rtPeaks = new RenderTarget2D(GFX.Device, heightmap.Width, heightmap.Height, 1, heightmap.Format);

            GFX.Device.SetRenderTarget(0, rtPeaks);
            DrawImage(heightmap);

            GFX.Device.RenderState.AlphaBlendEnable = true;

            switch (blendMode)
            {
                case BlendMode.Additive:
                    GFX.Device.RenderState.SourceBlend = Blend.One;
                    GFX.Device.RenderState.DestinationBlend = Blend.One;
                    break;
                case BlendMode.SoftAdditive:
                    GFX.Device.RenderState.SourceBlend = Blend.InverseDestinationColor;
                    GFX.Device.RenderState.DestinationBlend = Blend.One;
                    break;
                case BlendMode.Multiply:
                    GFX.Device.RenderState.SourceBlend = Blend.DestinationColor;
                    GFX.Device.RenderState.DestinationBlend = Blend.Zero;
                    break;
                case BlendMode.Interpolate:
                    GFX.Device.RenderState.SourceBlend = Blend.SourceAlpha;
                    GFX.Device.RenderState.DestinationBlend = Blend.InverseSourceAlpha;
                    break;
            }

            peakShader.SetupShader();
            int count = RandomHelper.RandomGen.Next(parameters.MinCount, parameters.MaxCount);
            for (int i = 0; i < count; i++)
            {
                Vector2 res = Vector2.One;
                switch (mode)
                {
                    case LayerMode.Peaks:
                        GFX.Device.Textures[0] = whiteTexture;
                        break;
                    case LayerMode.Mountains:
                        Texture2D mountainMap = GFX.Inst.PerlinNoiseGen.Generate2DNoise(mountainParams, mountainRes, mountainRes, 1);
                        GFX.Device.Textures[0] = mountainMap;
                        res = new Vector2(mountainRes, mountainRes);
                        break;
                }
                float amplitude = MathHelper.Lerp(parameters.MinAmplitude, parameters.MaxAmplitude, (float)RandomHelper.RandomGen.NextDouble());
                float falloff = MathHelper.Lerp(parameters.MinFalloff, parameters.MaxFalloff, (float)RandomHelper.RandomGen.NextDouble());
                Vector4 peakParameters = new Vector4(amplitude, falloff, 0, 0);
                Vector2 randPos = new Vector2((float)RandomHelper.RandomGen.NextDouble(), (float)RandomHelper.RandomGen.NextDouble()) * 2.0f - Vector2.One;

                Vector2 randRadius = Vector2.Lerp(parameters.MinSize, parameters.MaxSize, (float)RandomHelper.RandomGen.NextDouble());
                randPos = Vector2.Clamp(randPos, Vector2.One * -1 + randRadius, Vector2.One - randRadius);
                GFX.Device.SetPixelShaderConstant(0, peakParameters);
                GFX.Device.SetVertexShaderConstant(0, new Vector4(randRadius.X, randRadius.Y, randPos.X, randPos.Y));
                GFX.Device.SetVertexShaderConstant(1, Vector4.Zero);
                GFX.Device.SetVertexShaderConstant(2, Vector2.One / res);
            }

            GFX.Device.RenderState.AlphaBlendEnable = false;

            GFX.Device.SetRenderTarget(0, null);
            GFX.Device.Textures[0] = null;

            CopyToTexture(rtPeaks.GetTexture(), heightmap);
        }
Example #13
0
 public LayerModeSwitcherClickEventArgs(LayerMode layerMode)
 {
     this.LayerMode = layerMode;
 }
        void ToCreatedInPlaceEditing()
        {
            layerMode = LayerMode.CreatedInPlaceEditing;
            lblAnnotations.Text = "Annotations(editing)";

            btnCreateInPlace.Visibility = Visibility.Collapsed;
            btnEditLayer.Visibility = Visibility.Collapsed;
            btnReadOnly.Visibility = Visibility.Visible;
            btnFinishFreeForm.Visibility = Visibility.Collapsed;
            btnCreateWithScreenshot.Visibility = Visibility.Collapsed;
            btnLoadAnnot.Visibility = Visibility.Collapsed;
            btnCloseAnnot.Visibility = Visibility.Visible;
            btnSaveAnnot.Visibility = Visibility.Visible;

            toolPanel.Visibility = Visibility.Visible;
            overlay.Visibility = Visibility.Visible;
            overlay.IsHitTestVisible = true;
        }
Example #15
0
 public void SetLayerModeSwitcherEnabled(LayerMode layerMode, bool isEnabled)
 {
     this.LayerModeSwitchers.Where(s => (LayerMode)s.Tag == layerMode).First().Enabled = isEnabled;
 }
Example #16
0
 public void SetLayerModeSwitcherChecked(LayerMode layerMode, bool isChecked)
 {
     this.LayerModeSwitchers.Where(s => (LayerMode)s.Tag == layerMode).First().Checked = isChecked;
 }
        void ToCreatedInPlaceReadonly()
        {            
            layerMode = LayerMode.CreatedInPlaceReadonly;
            lblAnnotations.Text = "Annotations(read-only)";

            btnCreateInPlace.Visibility = Visibility.Collapsed;
            btnEditLayer.Visibility = Visibility.Visible;
            btnReadOnly.Visibility = Visibility.Collapsed;
            btnFinishFreeForm.Visibility = Visibility.Collapsed;
            btnCreateWithScreenshot.Visibility = Visibility.Collapsed;
            btnLoadAnnot.Visibility = Visibility.Collapsed;
            btnCloseAnnot.Visibility = Visibility.Visible;
            btnSaveAnnot.Visibility = Visibility.Collapsed;

            toolPanel.Visibility = Visibility.Collapsed;
            overlay.Visibility = Visibility.Visible;
            overlay.IsHitTestVisible = false;

            if (graphicsCtx != null)
                graphicsCtx.ToReadOnlyMode();
        }
 void ModeSwitch(LayerMode newMode)
 {
     switch (layerMode)
     {
         case LayerMode.NoLayer:
             switch(newMode)
             {
                 case LayerMode.NoLayer:
                     ToLayerModeNoLayer();
                     break;
                 case LayerMode.ReadOnlyLoadedLayer:
                     ToReadOnlyLoadedLayer();
                     break;
                 case LayerMode.LoadedLayerEditing:
                     ToLoadedLayerEditing();
                     break;
                 case LayerMode.CreatedInPlaceEditing:
                     ToCreatedInPlaceEditing();
                     break;
                 case LayerMode.CreatedInPlaceReadonly:
                     ToCreatedInPlaceReadonly();
                     break;
                 default:
                     throw new NotSupportedException();
             }
             break;
         case LayerMode.ReadOnlyLoadedLayer:
             switch (newMode)
             {
                 case LayerMode.NoLayer:
                     ToLayerModeNoLayer();
                     break;
                 case LayerMode.ReadOnlyLoadedLayer:
                     ToReadOnlyLoadedLayer();
                     break;
                 case LayerMode.LoadedLayerEditing:
                     ToLoadedLayerEditing();
                     break;
                 case LayerMode.CreatedInPlaceEditing:
                     ToCreatedInPlaceEditing();
                     break;
                 case LayerMode.CreatedInPlaceReadonly:
                     ToCreatedInPlaceReadonly();
                     break;
                 default:
                     throw new NotSupportedException();
             }
             break;
         case LayerMode.LoadedLayerEditing:
             switch (newMode)
             {
                 case LayerMode.NoLayer:
                     ToLayerModeNoLayer();
                     break;
                 case LayerMode.ReadOnlyLoadedLayer:
                     ToReadOnlyLoadedLayer();
                     break;
                 case LayerMode.LoadedLayerEditing:
                     ToLoadedLayerEditing();
                     break;
                 case LayerMode.CreatedInPlaceEditing:
                     ToCreatedInPlaceEditing();
                     break;
                 case LayerMode.CreatedInPlaceReadonly:
                     ToCreatedInPlaceReadonly();
                     break;
                 default:
                     throw new NotSupportedException();
             }
             break;
         case LayerMode.CreatedInPlaceEditing:
             switch (newMode)
             {
                 case LayerMode.NoLayer:
                     ToLayerModeNoLayer();
                     break;
                 case LayerMode.ReadOnlyLoadedLayer:
                     ToReadOnlyLoadedLayer();
                     break;
                 case LayerMode.LoadedLayerEditing:
                     ToLoadedLayerEditing();
                     break;
                 case LayerMode.CreatedInPlaceEditing:
                     ToCreatedInPlaceEditing();
                     break;
                 case LayerMode.CreatedInPlaceReadonly:
                     ToCreatedInPlaceReadonly();
                     break;
                 default:
                     throw new NotSupportedException();
             }
             break;
         case LayerMode.CreatedInPlaceReadonly:
             switch (newMode)
             {
                 case LayerMode.NoLayer:
                     ToLayerModeNoLayer();
                     break;
                 case LayerMode.ReadOnlyLoadedLayer:
                     ToReadOnlyLoadedLayer();
                     break;
                 case LayerMode.LoadedLayerEditing:
                     ToLoadedLayerEditing();
                     break;
                 case LayerMode.CreatedInPlaceEditing:
                     ToCreatedInPlaceEditing();
                     break;
                 case LayerMode.CreatedInPlaceReadonly:
                     ToCreatedInPlaceReadonly();
                     break;
                 default:
                     throw new NotSupportedException();
             }
             break;
         default:
             throw new NotSupportedException();
     }
 }