Exemplo n.º 1
0
      void populateCanvasFromLoad(MaskDAGXML xmldat)
      {
         cleanCanvas();
         newCanvas();

         for (int i = 0; i < xmldat.mNodes.Count; i++)
         {
            Type t = xmldat.mNodes[i].GetType();
            MaskDAGGraphNode val = null;
            try
            {
               System.Reflection.ConstructorInfo ci = t.GetConstructor(new Type[] { typeof(GraphCanvas) });
               val = ((MaskDAGGraphNode)ci.Invoke(new object[] { this }));
            }
            catch (Exception e)
            {
               e.ToString();
               return;
            }
            val.load(xmldat.mNodes[i]);
            addCanvasNode(val);
         }

         //load our connections now
         for (int i = 0; i < xmldat.mConnections.Count; i++)
         {
            CanvasNode start = findConnectionNode(xmldat.mConnections[i].mOwnerDeviceID, xmldat.mConnections[i].mConnectionName);
            CanvasNode end = findConnectionNode(xmldat.mConnections[i].mNeighborDeviceID, xmldat.mConnections[i].mNeighborConnectionName);
            if (start == null || end == null) continue;

            addConnection(start, end);

         }
      }
Exemplo n.º 2
0
 public ConnectionPoint(ParamType paramType, string Descriptor, MaskDAGGraphNode ownerMaskDAGGraphNode, GraphCanvas owningCanvas)
 {
     mDepthLayer            = 1;
     mOwnerMaskDAGGraphNode = ownerMaskDAGGraphNode;
     mParamType             = paramType;
     ID = Descriptor;
 }
Exemplo n.º 3
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_DistanceTransform dc = fromNode as Device_DistanceTransform;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            return(true);
        }
Exemplo n.º 4
0
        public OutputConnectionPoint(ParamType valueType, string Descriptor, MaskDAGGraphNode ownerMaskDAGGraphNode, GraphCanvas owningCanvas)
            : base(valueType, Descriptor, ownerMaskDAGGraphNode, owningCanvas)
        {
            Location = new Point(2, 2);
            mSize    = new Size(10, 10);

            mBorderSize = 1;

            mColorBottom = Color.LightGray;
            mColorTop    = Color.Gray;
        }
Exemplo n.º 5
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_Chooser dc = fromNode as Device_Chooser;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            InputChoice = dc.InputChoice;

            return(true);
        }
Exemplo n.º 6
0
        public ConstraintConnectionPoint(ParamType valueType, string Descriptor, MaskDAGGraphNode ownerMaskDAGGraphNode, GraphCanvas owningCanvas)
            : base(valueType, Descriptor, ownerMaskDAGGraphNode, owningCanvas)
        {
            Location = new Point(2, 2);
            mSize    = new Size(10, 10);

            mBorderSize = 1;

            mColorBottom = Color.Purple;
            mColorTop    = Color.White;
        }
Exemplo n.º 7
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_Gradient dc = fromNode as Device_Gradient;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            Direction = dc.Direction;

            return(true);
        }
Exemplo n.º 8
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_MaskFromList dc = fromNode as Device_MaskFromList;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            SelectedMaskName = dc.SelectedMaskName;

            return(true);
        }
Exemplo n.º 9
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_RandomInt dc = fromNode as Device_RandomInt;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            OutputScalar = dc.OutputScalar;

            return(true);
        }
Exemplo n.º 10
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_Contract dc = fromNode as Device_Contract;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            NumPixels = dc.NumPixels;

            return(true);
        }
Exemplo n.º 11
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_GaussianBlur dc = fromNode as Device_GaussianBlur;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            Radius = dc.Radius;

            return(true);
        }
Exemplo n.º 12
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_Smooth dc = fromNode as Device_Smooth;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            SmoothPower = dc.SmoothPower;

            return(true);
        }
Exemplo n.º 13
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_Combiner dc = fromNode as Device_Combiner;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            Method = dc.Method;

            return(true);
        }
Exemplo n.º 14
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_BiasGain dc = fromNode as Device_BiasGain;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            Bias = dc.Bias;
            Gain = dc.Gain;

            return(true);
        }
Exemplo n.º 15
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_Constant dc = fromNode as Device_Constant;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);


            Value = dc.Value;

            return(true);
        }
Exemplo n.º 16
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_Flipper dc = fromNode as Device_Flipper;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            FlipVertical   = dc.FlipVertical;
            FlipHorizontal = dc.FlipHorizontal;

            return(true);
        }
Exemplo n.º 17
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_Clamp dc = fromNode as Device_Clamp;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            ClampType = dc.ClampType;
            MinHeight = dc.MinHeight;
            MaxHeight = dc.MaxHeight;

            return(true);
        }
Exemplo n.º 18
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_SelectGradient dc = fromNode as Device_SelectGradient;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            FalloffAmt = dc.FalloffAmt;
            MaxSlope   = dc.MaxSlope;
            MinSlope   = dc.MinSlope;

            return(true);
        }
Exemplo n.º 19
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_Terrace dc = fromNode as Device_Terrace;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            TerraceShape = dc.TerraceShape;
            NumTerraces  = dc.NumTerraces;
            Method       = dc.Method;

            return(true);
        }
Exemplo n.º 20
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_RadialGradient dc = fromNode as Device_RadialGradient;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            Radius    = dc.Radius;
            Intensity = dc.Intensity;
            HotSpot   = dc.HotSpot;

            return(true);
        }
Exemplo n.º 21
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_Distort dc = fromNode as Device_Distort;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            Frequency  = dc.Frequency;
            Power      = dc.Power;
            Roughness  = dc.Roughness;
            RandomSeed = dc.RandomSeed;

            return(true);
        }
Exemplo n.º 22
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_HydraulicErosion dc = fromNode as Device_HydraulicErosion;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            MultiscaleEnable = dc.MultiscaleEnable;
            SedimentCarryAmt = dc.SedimentCarryAmt;
            SoilHardness     = dc.SoilHardness;
            Amount           = dc.Amount;

            return(true);
        }
Exemplo n.º 23
0
 public override void onDoubleClick(Point mousePoint, MouseEventArgs mouseEvent)
 {
     CanvasNode selectedNode = intersectNodeMouseLoc(mouseEvent.Location);
     if (selectedNode != null)
     {
         MaskDAGGraphNode gn = selectedNode as MaskDAGGraphNode;
         if (gn == null)
             return;
         if (mouseEvent.Button == MouseButtons.Left)
         {
           gn.displayPropertiesDlg();
         }
     }
  }
Exemplo n.º 24
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_VoronoiNoise dc = fromNode as Device_VoronoiNoise;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            Frequency      = dc.Frequency;
            SeedParam      = dc.SeedParam;
            Displacement   = dc.Displacement;
            EnableDistance = dc.EnableDistance;


            return(true);
        }
Exemplo n.º 25
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_RidgedNoise dc = fromNode as Device_RidgedNoise;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            Frequency   = dc.Frequency;
            Lacunarity  = dc.Lacunarity;
            OctaveParam = dc.OctaveParam;
            SeedParam   = dc.SeedParam;


            return(true);
        }
Exemplo n.º 26
0
        public override bool load(MaskDAGGraphNode fromNode)
        {
            Device_Curves dc = fromNode as Device_Curves;

            mGUID = dc.mGUID;
            draggedByMouse(Location, dc.Location);

            ControlPointsValues.Clear();
            ControlPointsKeys.Clear();

            ControlPointsValues.AddRange(dc.ControlPointsValues);
            ControlPointsKeys.AddRange(dc.ControlPointsKeys);


            return(true);
        }
Exemplo n.º 27
0
      public void generatePreview(CanvasNode cn)
      {
          OutputGenerationParams ogp = new OutputGenerationParams();
          ogp.Width = 128;
          ogp.Height = 128;

          MaskDAGGraphNode gn = (MaskDAGGraphNode)cn;
          MaskParam mp = new MaskParam();
          InputConnectionPoint icp = new InputConnectionPoint(mp,true,"Preview",gn,this);
          gn.computeOutput(icp,ogp);

          if (onUpdateCallback != null)
          {
              DAGMask m = mp.Value;
              onUpdateCallback(ref m);
          }
       }
Exemplo n.º 28
0
      //general functions
      MaskDAGXML prepCanvasForSave()
      {

         MaskDAGXML xmldat = new MaskDAGXML();

         for (int i = 0; i < mNodes.Count; i++)
            if (mNodes[i].mDepthLayer == 0)
               xmldat.mNodes.Add(mNodes[i] as MaskDAGGraphNode);

         //generate connection records
         for (int i = 0; i < mNodes.Count; i++)
         {
            MaskDAGGraphNode dnode = (mNodes[i] as MaskDAGGraphNode);
            if (dnode != null)
               xmldat.mConnections.AddRange(dnode.generateConnectionLists());
         }
         return xmldat;
      }
Exemplo n.º 29
0
 public virtual bool load(MaskDAGGraphNode fromNode)
 {
     mGUID = fromNode.mGUID;
     draggedByMouse(Location, fromNode.Location);
     return(false);
 }
Exemplo n.º 30
0
        public bool gatherInputAndParameters(OutputGenerationParams parms)
        {
            //walk all of our local params
            //find the associated connection point
            //copy the data from the connection point to our local point

            Type type = GetType();// Get object type

            System.Reflection.PropertyInfo[] pi = type.GetProperties();
            for (int i = 0; i < pi.Length; i++)
            {
                System.Reflection.PropertyInfo prop = pi[i];

                object[] custAttrib = prop.GetCustomAttributes(false);
                if (custAttrib == null)
                {
                    continue;
                }

                Type ptt = prop.PropertyType;

                for (int k = 0; k < custAttrib.Length; k++)
                {
                    if (custAttrib[k] is ConnectionType)
                    {
                        ConnectionType ct = custAttrib[k] as ConnectionType;
                        if (ct.ConnType == "Param")
                        {
                            for (int j = 0; j < mParamConnections.Count; j++)
                            {
                                if (mParamConnections[j].Neighbors.Count == 0)
                                {
                                    continue;
                                }

                                if (mParamConnections[j].ID == ct.Description)
                                {
                                    ConnectionPoint  CP = mParamConnections[j].Neighbors[0] as ConnectionPoint;
                                    MaskDAGGraphNode GN = CP.OwnerNode as MaskDAGGraphNode;
                                    if (!GN.computeOutput(mParamConnections[j], parms))
                                    {
                                        return(false);
                                    }

                                    if (ptt == typeof(float))
                                    {
                                        prop.SetValue(this, ((FloatParam)mParamConnections[j].ParamType).Value, null);
                                    }
                                    else if (ptt == typeof(int))
                                    {
                                        prop.SetValue(this, ((IntParam)mParamConnections[j].ParamType).Value, null);
                                    }
                                    else if (ptt == typeof(bool))
                                    {
                                        prop.SetValue(this, ((BoolParam)mParamConnections[j].ParamType).Value, null);
                                    }
                                    else if (ptt == typeof(DAGMask))
                                    {
                                        prop.SetValue(this, ((MaskParam)mParamConnections[j].ParamType).Value, null);
                                    }
                                }
                            }
                        }
                        else if (ct.ConnType == "Input")
                        {
                            for (int j = 0; j < mInputConnections.Count; j++)
                            {
                                if (mInputConnections[j].ID == ct.Description)
                                {
                                    ConnectionPoint  CP = mInputConnections[j].Neighbors[0] as ConnectionPoint;
                                    MaskDAGGraphNode GN = CP.OwnerNode as MaskDAGGraphNode;
                                    if (!GN.computeOutput(mInputConnections[j], parms))
                                    {
                                        return(false);
                                    }


                                    if (ptt == typeof(float))
                                    {
                                        prop.SetValue(this, ((FloatParam)mInputConnections[j].ParamType).Value, null);
                                    }
                                    else if (ptt == typeof(int))
                                    {
                                        prop.SetValue(this, ((IntParam)mInputConnections[j].ParamType).Value, null);
                                    }
                                    else if (ptt == typeof(bool))
                                    {
                                        prop.SetValue(this, ((BoolParam)mInputConnections[j].ParamType).Value, null);
                                    }
                                    else if (ptt == typeof(DAGMask))
                                    {
                                        prop.SetValue(this, ((MaskParam)mInputConnections[j].ParamType).Value, null);
                                    }
                                }
                            }
                        }
                        else if (ct.ConnType == "Constraint")
                        {
                            for (int j = 0; j < mConstraintConnections.Count; j++)
                            {
                                if (mConstraintConnections[j].Neighbors.Count == 0)
                                {
                                    if (ptt == typeof(float))
                                    {
                                        prop.SetValue(this, 0, null);
                                    }
                                    else if (ptt == typeof(int))
                                    {
                                        prop.SetValue(this, 0, null);
                                    }
                                    else if (ptt == typeof(bool))
                                    {
                                        prop.SetValue(this, false, null);
                                    }
                                    else if (ptt == typeof(DAGMask))
                                    {
                                        prop.SetValue(this, null, null);
                                    }
                                }
                                else if (mConstraintConnections[j].ID == ct.Description)
                                {
                                    ConnectionPoint  CP = mConstraintConnections[j].Neighbors[0] as ConnectionPoint;
                                    MaskDAGGraphNode GN = CP.OwnerNode as MaskDAGGraphNode;
                                    if (!GN.computeOutput(mConstraintConnections[j], parms))
                                    {
                                        return(false);
                                    }


                                    if (ptt == typeof(float))
                                    {
                                        prop.SetValue(this, ((FloatParam)mConstraintConnections[j].ParamType).Value, null);
                                    }
                                    else if (ptt == typeof(int))
                                    {
                                        prop.SetValue(this, ((IntParam)mConstraintConnections[j].ParamType).Value, null);
                                    }
                                    else if (ptt == typeof(bool))
                                    {
                                        prop.SetValue(this, ((BoolParam)mConstraintConnections[j].ParamType).Value, null);
                                    }
                                    else if (ptt == typeof(DAGMask))
                                    {
                                        prop.SetValue(this, ((MaskParam)mConstraintConnections[j].ParamType).Value, null);
                                    }
                                }
                            }
                        }


                        break;
                    }
                }
            }
            return(true);
        }