Пример #1
0
 public void Initialise_capture(Device device)
 {
     this.device = device;
     var capturers = this.GetComponents<Capturer>();
     if(capturers.Any())
     {
         foreach(var capturer in capturers)
         {
             Destroy (capturer);
         }
     }
     switch(this.device)
     {
         case Device.MULTI_KINECT_WIMUS:
             this.capturer = this.gameObject.AddComponent<Kinect2Managing>();
             this.calibrator = this.capturer is ICalibrator ? this.capturer as ICalibrator : null;
             this.syncer = this.capturer is ISyncer ? this.capturer as ISyncer : null;
             this.reconstructor = this.capturer is IReconstructor ? this.capturer as IReconstructor : null;
             this.recorder = CompositeRecorder.FromRecorders(this.capturer);//TODO: fusion capturer to be added here
             this.skeletonCapturer = new NoneSkeletonCapturer();//TODO: add fusion here
             break;
         case Device.SINGLE_KINECT_2:
             var k2controller = this.gameObject.AddComponent<Kinect2Controlling>();
             k2controller.Streams = KinectStreams.Skeleton;
             k2controller.enabled = false;// re-enable
             k2controller.enabled = true;
             this.capturer = k2controller;
             this.exporter = GetComponent<SkeletonExporting>();
             this.recorder = CompositeRecorder.FromRecorders(this.capturer);
             this.skeletonCapturer = FindObjectsOfType<Capturer>().First((cap) => cap is ISkeletonGenerator<SkeletonFrame>) as ISkeletonGenerator<SkeletonFrame>;
             break;
     }
 }
 private void OpenAndAttachStreams()
 {
     var recorders = new List<IRecorder>();
     if((this.Streams & KinectStreams.Color) == KinectStreams.Color)
     {
         recorders.Add(this.gameObject.AddComponent<ColorCapturing>());
     }
     if((this.Streams & KinectStreams.Depth) == KinectStreams.Depth)
     {
         recorders.Add(this.gameObject.AddComponent<DepthCapturing>());
     }
     if((this.Streams & KinectStreams.Skeleton) == KinectStreams.Skeleton)
     {
         recorders.Add(this.gameObject.AddComponent<SkeletonCapturing>());
     }
     this.recorders = new CompositeRecorder(recorders);
 }