public void ResetLeap() { //IDictionary<int, object> setBind = binding.ids[nodeBsIK]; //Core.TLType param = setBind[0] as Core.TLType; //Core.TLType.Exec setNode = (Core.TLType.Exec)((Core.TLType)setBind[0]).timeline; Core.Bind.Property setBindProperty = (Core.Bind.Property)binding.ids[nodeBsIK][propBsIK]; //TO-DO Finish //int setLeapNext = setBind.node[stream][setBindProperty.binding].leapNext; int setLeapNext = setBindProperty.leapNext ?? 0; //int setLeapList = setBind.node[stream][setBindProperty.binding].leap; Core.Bind.Leap[] setLeapList = setBindProperty.leap; // TO-DO Finish leapPos = setBindProperty.leapNext; setLeapList = setBindProperty.leap; if (setLeapList == null) { return; } int setLeapLength = setLeapList.Length; for (int l = 0; l < setLeapLength; l++) { if (setLeapList[l] != null) { setBindProperty.leapNext = l; break; } else { } } }
void CallOutLeap(int nextPos) { IDictionary <int, object> setBind = binding.ids[nodeBsIK]; //Core.TLType param = setBind[0] as Core.TLType; Core.TLType.Exec setNode = (Core.TLType.Exec)((Core.TLType)setBind[0]).timeline; Core.Bind.Property setBindProperty = (Core.Bind.Property)setBind[propBsIK]; //TO-DO Finish //int setLeapNext = setBind.node[stream][setBindProperty.binding].leapNext; int?setLeapNext = setBindProperty.leapNext; //int setLeapList = setBind.node[stream][setBindProperty.binding].leap; Core.Bind.Leap[] setLeapList = setBindProperty.leap; if (setLeapList[leapPos ?? 0] == null) { return; } Core.Bind.Leap setLeapBind = setLeapList[setLeapNext ?? 0]; int leapPosI = setLeapBind.dataPosI; // if (!setLeapBind) { return } data[leapPosI] = !setLeapBind.dispose ? arguments.leap : setLeapBind.zeroIn != leap ? setLeapBind.zeroIn : data[leapPosI + 1];// b.Zero out data setLeapBind.CallBack/*.apply*/ (setBindProperty); if (setLeapBind.dispose) { setBindProperty.leapNext = null; setLeapList[leapPos ?? 0] = null; //delete setLeapList[leapPos]; } int setLeapLength = setLeapList.Length; for (int l = (leapPos ?? 0) + 1; l < setLeapLength; l++) { if (setLeapList[l] == null) { setBindProperty.leapNext = l; if (l <= nextPos) { leapPos = l; CallOutLeap(l); } // break } else { } } // leapPos }
// ToDo - for threading void MeasureAll(int count) { measureData = new float[count * propsPerNode + propsPerNode + 1 * nodesPerStream]; for ( sI = 0, partition = 0, partFrac = 0, cursor = 0, reads = 0; sI < streamDataLength; sI++ ) { // Node Level// if ((sI - partition) % nodeDataLength == 0) { // let node_i = sI/nodeDataLength;//node index number // ->> Node Selection > buffer identifier nodeBsIK = (int)data[sI]; if (propsPerNodeList[nodeBsIK] != 0) { if ((sI - partition) != partition) { partition = sI; partFrac = sI % data0PropDataLength; reads = 0; } propsPerNode = propsPerNodeList[nodeBsIK]; nodeDataLength = data0PropDataLength * propsPerNode + propsPerNode + 1; } sI++; cursor = 1; reads++; } // Property Level// if ((sI - reads) % data0PropDataLength == partFrac) { chunkStartI = (sI - cursor); // var prop = ((sI-reads) - ( data0PropDataLength * propsPerNode * node_i)) / data0PropDataLength;//property index number of chunk // ->> Property Selection > buffer identifier propBsIK = (int)data[sI]; measureData[mI++] = propBsIK; sI++; cursor++; reads++; dataPos = ((sI - cursor) - chunkStartI); dataPosI = sI - dataPos; int endPos = (data0PropDataLength - dataPos) - 1; endPosI = dataPosI + endPos; if (reset) { data[dataPosI] = continuancePosValData0; } sI = this.CheckInContinuance(); // sI = this.CheckOutRevert(); } Core.Bind.Property setBindProperty = (Core.Bind.Property)binding.ids[nodeBsIK][propBsIK]; leapPos = setBindProperty.leapNext; if (nodeBsIK == -1) { sI = endPosI; this.UpdateDataPos(); } else if (dataPos + count > propDataLength - 1) { if (!revert) { } else { if (nodeBsIK != 101) { this.CheckOutRevert(count); } else { this.CheckOutRevertCallback(count); } } this.ResetLeap(); } else if (count > 0) { // Data Level// // process.UtilizeMeasureData(this.DataReturn(count), setBindProperty, nodeBsIK, propBsIK); } else { return; } } //return measureData; }
// //read // //Thrusting stores dataoffsets and zeros out data void ThrustAll(int count) { for ( sI = 0, partition = 0, partFrac = 0, cursor = 0, reads = 0; sI < streamDataLength; sI++ ) { // Node Level// if ((sI - partition) % nodeDataLength == 0) { // let node_i = sI/nodeDataLength;//node index number // ->> Node Selection > buffer identifier nodeBsIK = (int)data[sI]; if (propsPerNodeList[nodeBsIK] != 0) { if ((sI - partition) != partition) { partition = sI; partFrac = sI % data0PropDataLength; reads = 0; } propsPerNode = propsPerNodeList[nodeBsIK]; nodeDataLength = data0PropDataLength * propsPerNode + propsPerNode + 1; } sI++; cursor = 1; reads++; } // Property Level// if ((sI - reads) % data0PropDataLength == partFrac) { chunkStartI = (sI - cursor); // var prop = ((sI-reads) - ( data0PropDataLength * propsPerNode * node_i)) / data0PropDataLength;//property index number of chunk // ->> Property Selection > buffer identifier propBsIK = (int)data[sI]; sI++; cursor++; reads++; dataPos = ((sI - cursor) - chunkStartI); dataPosI = sI - dataPos; int endPos = (data0PropDataLength - dataPos) - 1; endPosI = dataPosI + endPos; if (reset) { data[dataPosI] = continuancePosValData0; } sI = CheckInContinuance(); // sI = CheckOutRevert() } Core.Bind.Property setBindProperty = (Core.Bind.Property)binding.ids[nodeBsIK][propBsIK]; leapPos = setBindProperty.leapNext; if (nodeBsIK == -1) { sI = endPosI; UpdateDataPos(); } else if (dataPos + count > propDataLength - 1) { if (dataPos + count >= leapPos) { CallOutLeap(dataPos + count); // data[nextPosI] = data[nextPosI + 1] // b.Zero out data // get data from previous } if (!revert) { } else { if (nodeBsIK != 101) { CheckOutRevert(count); } else { CheckOutRevertCallback(count); } } ResetLeap(); } else if (count > 0) { // Data Level// process.UtilizeThrustData(_dataSum(count), setBindProperty, nodeBsIK, propBsIK); } else { return; } } }
// // // //Reading stores void ReadAll(int count) { readCount = count + rCount; defaults.RuntimeCallbacks(readCount); for ( sI = 0, partition = 0, partFrac = 0, cursor = 0, reads = 0; sI < streamDataLength; sI++ ) { // Node Level// if ((sI - partition) % nodeDataLength == 0) { // let node_i = sI/nodeDataLength;//node index number // ->> Node Selection > buffer identifier nodeBsIK = (int)data[sI]; if (propsPerNodeList[nodeBsIK] != 0) { if ((sI - partition) != partition) { partition = sI; partFrac = sI % data0PropDataLength; reads = 0; } propsPerNode = propsPerNodeList[nodeBsIK]; nodeDataLength = data0PropDataLength * propsPerNode + propsPerNode + 1; } sI++; cursor = 1; reads++; } // Property Level// if ((sI - reads) % data0PropDataLength == partFrac) { chunkStartI = (sI - cursor); // var prop = ((sI-reads) - ( data0PropDataLength * propsPerNode * node_i)) / data0PropDataLength;//property index number of chunk // ->> Property Selection > buffer identifier propBsIK = (int)data[sI]; sI++; cursor++; reads++; dataPos = ((sI - cursor) - chunkStartI); dataPosI = sI - dataPos; int endPos = (data0PropDataLength - dataPos) - 1; endPosI = dataPosI + endPos; if (reset) { data[dataPosI] = continuancePosValData0; } sI = CheckInContinuance(); // sI = CheckOutRevert(count) } Core.Bind.Property setBindProperty = (Core.Bind.Property)binding.ids[nodeBsIK][propBsIK]; leapPos = setBindProperty.leapNext; if (nodeBsIK == -1) { sI = endPosI; UpdateDataPos(); } else if (dataPos + count > propDataLength - 1) { if (dataPos + count >= leapPos) { CallOutLeap(dataPos + count); // data[nextPosI] = data[nextPosI + 1] // b.Zero out data // get data from previous } if (!revert) { } else { if (nodeBsIK != 101) { CheckOutRevert(count); } else { CheckOutRevertCallback(count); } } ResetLeap(); } else if (count > 0) { // Data Level// //IDictionary<int, object> setBind = binding.ids[nodeBsIK]; //Core.TLType param = setBind[0] as Core.TLType; //Core.TLType.Exec setNode = (Core.TLType.Exec)((Core.TLType)setBind[0]).timeline; //Core.Bind.Property setBindProperty = (Core.Bind.Property)setBind[propBsIK]; //Core.Bind.Property setBindProperty = (Core.Bind.Property)binding.ids[nodeBsIK][propBsIK]; //if (setBindProperty.property != null && setBindProperty.property == "x") //param.x /*[setBindProperty.property][setBindProperty.binding]*/ = setBindProperty.value; //else param.value/*[setBindProperty.binding]*/ = setBindProperty.value; // ToDO - fix //leapPos = setNode.x.leapNext; //else leapPos = setBind.node[stream][setBindProperty.binding].leapNext : setBind.node[stream][setBindProperty.property].leapNext; //leapPos = setBind.node[stream][setBindProperty.binding] ? setBind.node[stream][setBindProperty.binding].leapNext : setBind.node[stream][setBindProperty.property].leapNext; /**/ //leapPos = setBindProperty.leapNext; process.UtilizeReadData(DataVal(count), setBindProperty, nodeBsIK, propBsIK); //process.UtilizeReadData(DataVal(count), nodeBsIK, propBsIK); } else { return; } } }
// //measure public void SyncOffsets(int syncI) { int syncIS = 0; for ( sI = 0, partition = 0, partFrac = 0, cursor = 0, reads = 0; sI < streamDataLength; sI++ ) { // Node Level// if ((sI - partition) % nodeDataLength == 0) { // var node_i = sI/nodeDataLength;//node index number // ->> Node Selection > buffer identifier nodeBsIK = (int)data[sI]; if (propsPerNodeList[nodeBsIK] != 0) { if ((sI - partition) != partition) { partition = sI; partFrac = sI % data0PropDataLength; reads = 0; } propsPerNode = propsPerNodeList[nodeBsIK]; nodeDataLength = data0PropDataLength * propsPerNode + propsPerNode + 1; } sI++; cursor = 1; reads++; } // Property Level// if ((sI - reads) % data0PropDataLength == partFrac) { chunkStartI = (sI - cursor); // var prop = ((sI-reads) - ( data0PropDataLength * propsPerNode * node_i)) / data0PropDataLength;//property index number of chunk // ->> Property Selection > buffer identifier propBsIK = (int)data[sI]; sI++; cursor++; reads++; dataPos = ((sI - cursor) - chunkStartI); dataPosI = sI - dataPos; int endPos = (data0PropDataLength - dataPos) - 1; endPosI = dataPosI + endPos; if (reset) { data[dataPosI] = continuancePosValData0; } sI = this.CheckInContinuance(); syncIS = 0; //IDictionary<int, object> setBind = binding.ids[nodeBsIK]; //Core.TLType setNode = (Core.TLType)setBind[0]; //Core.Bind.Property setBindProperty = (Core.Bind.Property)setBind[propBsIK]; Core.Bind.Property setBindProperty = (Core.Bind.Property)binding.ids[nodeBsIK][propBsIK]; // To-Do fix / shift int shift = setBindProperty._shift; shift = shift > 0 ? shift : this.CheckOutRevert(propDataLength + shift); syncIS = syncI + shift; if (syncIS > propDataLength) { syncIS = this.Reversion(syncIS); } } data[dataPosI] = syncIS; // a. sI = endPosI; this.UpdateDataPos(); } }