コード例 #1
0
ファイル: StateTableTests.cs プロジェクト: paul1956/roslyn
        public void Driver_Table_Calls_Into_Node_With_PreviousTable()
        {
            var nodeBuilder = NodeStateTable <int> .Empty.ToBuilder();

            nodeBuilder.AddEntries(ImmutableArray.Create(1, 2, 3), EntryState.Cached);
            var newTable = nodeBuilder.ToImmutableAndFree();

            NodeStateTable <int>?passedIn     = null;
            CallbackNode <int>   callbackNode = new CallbackNode <int>((b, s) =>
            {
                passedIn = s;
                return(newTable);
            });

            // empty first time
            DriverStateTable.Builder builder = GetBuilder(DriverStateTable.Empty);
            builder.GetLatestStateTableForNode(callbackNode);

            Assert.Same(NodeStateTable <int> .Empty, passedIn);

            // gives the returned table the second time around
            DriverStateTable.Builder builder2 = GetBuilder(builder.ToImmutable());
            builder2.GetLatestStateTableForNode(callbackNode);

            Assert.NotNull(passedIn);
            AssertTableEntries(passedIn !, new[] { (1, EntryState.Cached), (2, EntryState.Cached), (3, EntryState.Cached) });
コード例 #2
0
ファイル: StateTableTests.cs プロジェクト: paul1956/roslyn
        public void Driver_Table_Calls_Into_Node_With_Self()
        {
            DriverStateTable.Builder?passedIn     = null;
            CallbackNode <int>       callbackNode = new CallbackNode <int>((b, s) =>
            {
                passedIn = b;
                return(s);
            });

            DriverStateTable.Builder builder = GetBuilder(DriverStateTable.Empty);
            builder.GetLatestStateTableForNode(callbackNode);

            Assert.Same(builder, passedIn);
        }
コード例 #3
0
ファイル: StateTableTests.cs プロジェクト: paul1956/roslyn
        public void Driver_Table_Calls_Into_Node_With_EmptyState_FirstTime()
        {
            NodeStateTable <int>?passedIn     = null;
            CallbackNode <int>   callbackNode = new CallbackNode <int>((b, s) =>
            {
                passedIn = s;
                return(s);
            });

            DriverStateTable.Builder builder = GetBuilder(DriverStateTable.Empty);
            builder.GetLatestStateTableForNode(callbackNode);

            Assert.Same(NodeStateTable <int> .Empty, passedIn);
        }
コード例 #4
0
        public void setMRI(CT m, bool isLeft)
        {
            mri = m;
            //now need to gather information representing the CT data, then pass it to the volNode
            //the volNode can then load it into openGL at will
            int x = mri.width; int y = mri.height; int z = mri.depth;
            int w = (int)(x * mri.voxelSizeX);
            int h = (int)(y * mri.voxelSizeY);
            int l = (int)(z * mri.voxelSizeZ);

            Console.WriteLine("cropped size of mri data" + w + ", " + h + ", " + l);
            int dataSize = x * y * z * 4;

            int[] allDatint = new int[dataSize];
            Console.WriteLine("data size from C# " + dataSize + ", ");

            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < y; j++)
                {
                    for (int k = 0; k < z; k++)
                    {
                        int v = (i + x * (j + k * y));
                        //int v = (k + z * (j + i * y)) * 4;
                        //for (int hl = 0; hl < 4; hl++)
                        //{
                        //    allDatint[v + hl] = mri.getVoxel_as(i, j, k, 0);
                        //    //if (mri.getVoxel_as(i, j, k, 0) >254) Console.WriteLine(v + ": " + mri.getVoxel_as(i, j, k, 0) + " stored: " + allDatint[v + hl]);
                        //}

                        allDatint[v + 0] = mri.getVoxel_as(i, j, k, 0);
                        allDatint[v + 1] = mri.getVoxel_as(i, j, k, 0);
                        allDatint[v + 2] = mri.getVoxel_as(i, j, k, 0);
                        allDatint[v + 3] = 255;
                    }
                }
            }

            //for (int ik = 0; ik < x * y * z * 4;ik++ )
            //{
            //    if(allDatint[ik]>100)Console.WriteLine("d: " + allDatint[ik]);
            //}
            Console.WriteLine("done printing data");
            volNode = new CallbackNode(w, h, l, x, y, z, allDatint, isLeft);
            volNode.setUpCallBack();
            _root.addChild(volNode);
        }
コード例 #5
0
        public IEnumerator StartExecutionFlow(CallbackNode callbackNode)
        {
            NodeExecutionContext nodeExecutionContext = new NodeExecutionContext {
                node = callbackNode
            };

            while (nodeExecutionContext.node != null)
            {
                Debug.Log("<color=green> Execute node:  " + nodeExecutionContext.node + " ... GRAPH: " + name + "</color>");
                nodeExecutionContext.node.Enter();

                yield return(new YieldNode(nodeExecutionContext));

                Debug.Log("<color=red> Finished node:  " + nodeExecutionContext.node + "</color>");

                yield return(new WaitForSeconds(0.25f));

                nodeExecutionContext.node.Exit();

                nodeExecutionContext = nodeExecutionContext.node.NextNode(nodeExecutionContext);
            }

            yield return(null);
        }