Example #1
0
        public NodeGraph(ICalculationEngine calculationEngine, VertexConstructor vertexConstructor) : base()
        {
            foreach (var n in calculationEngine.Nodes)
            {
                var vertex = vertexConstructor.Invoke(n);
                AddVertex(vertex);

                if (n.Status == NodeStatus.Uninitialized)
                {
                    n.Changed += (sender, e) =>
                    {
                        if (calculationEngine.Nodes.All(node => node.Status != NodeStatus.Uninitialized))
                        {
                            OnInitialized(EventArgs.Empty);
                        }
                    };
                }
            }

            foreach (var n in calculationEngine.Nodes)
            {
                foreach (var d in n.GetDependentNodes())
                {
                    var edge = new NodeEdge(GetVertex(d.Id), GetVertex(n.Id));
                    AddEdge(edge);
                }
            }
        }
Example #2
0
        protected override unsafe TransformedColoredTextured[] GetMesh(LandTile tile, Texture tex)
        {
            TransformedColoredTextured[] transformedColoredTexturedArray = VertexConstructor.Create(4);
            fixed(TransformedColoredTextured *transformedColoredTexturedPtr = transformedColoredTexturedArray)
            {
                float num1 = -0.5f;
                float num2 = (float)((int)tile.Z * -4) - 0.5f;

                transformedColoredTexturedPtr->X   = transformedColoredTexturedPtr[1].X = num1 + (float)tex.Width;
                transformedColoredTexturedPtr->Y   = transformedColoredTexturedPtr[2].Y = num2 + (float)tex.Height;
                transformedColoredTexturedPtr[1].Y = transformedColoredTexturedPtr[3].Y = num2;
                transformedColoredTexturedPtr[2].X = transformedColoredTexturedPtr[3].X = num1;
                float maxTu = tex.MaxTU;
                float maxTv = tex.MaxTV;

                transformedColoredTexturedPtr->Tv   = maxTv;
                transformedColoredTexturedPtr->Tu   = maxTu;
                transformedColoredTexturedPtr[1].Tu = maxTu;
                transformedColoredTexturedPtr[2].Tv = maxTv;
            }

            return(transformedColoredTexturedArray);
        }