コード例 #1
0
        private void UpdateData()
        {
            Dictionary <string, SkeletonAnalyzer> listS  = _SkeletonAnalyzerContainer.getParameterList();
            Dictionary <string, SkeletonAnalyzer> listS2 = _SkeletonAnalyzerContainer.getConstraintList();

            if (threadTest && toogleSource && isActive)
            {
                Thread worker = new Thread(() =>
                {
                    threadTest = false;
                    if (sourceParameterBool)
                    {
                        if (mode3D)
                        {
                            foreach (KeyValuePair <string, SkeletonAnalyzer> skeleton in listS)
                            {
                                _DeviceControl.updateAngleByParameter(skeleton.Key, (int)skeleton.Value.GetBodySegmentAngle3D(skeletonData));
                            }
                        }
                        else
                        {
                            foreach (KeyValuePair <string, SkeletonAnalyzer> constrainBySkeleton in listS)
                            {
                                _DeviceControl.updateAngleByParameter(constrainBySkeleton.Key, (int)constrainBySkeleton.Value.GetBodySegmentAngle2D(skeletonData));
                            }
                        }
                    }
                    else
                    {
                        alreadyChanged = true;
                        if (mode3D)
                        {
                            foreach (KeyValuePair <string, SkeletonAnalyzer> skeleton in listS2)
                            {
                                _DeviceControl.updateAngleByConstraints(skeleton.Key, -(int)skeleton.Value.GetBodySegmentAngle3D(skeletonData));
                            }
                        }
                        else
                        {
                            foreach (KeyValuePair <string, SkeletonAnalyzer> constrainBySkeleton in listS2)
                            {
                                _DeviceControl.updateAngleByConstraints(constrainBySkeleton.Key, (int)constrainBySkeleton.Value.GetBodySegmentAngle2D(skeletonData));
                            }
                        }
                    }

                    threadTest = true;
                });

                worker.Start();
            }
            UpdateParams();
        }