bool GesturePipeline::init() { _pxcSenseManager = PXCSenseManager::CreateInstance(); /* Set Mode & Source */ pxcCHAR * deviceName = retrieveDeviceName(); _pxcSenseManager->QueryCaptureManager()->FilterByDeviceInfo(deviceName, 0, 0); pxcStatus status = _pxcSenseManager->EnableHand(); _pxcHandModule = _pxcSenseManager->QueryHand(); if (_pxcHandModule == NULL || status != pxcStatus::PXC_STATUS_NO_ERROR) { cocos2d::log("Failed to pair the gesture module with I/O"); return 0; } /* Init */ if (_pxcSenseManager->Init() >= PXC_STATUS_NO_ERROR) { _pxcHandData = _pxcHandModule->CreateOutput(); initRules(_pxcHandData); // IF IVCAM Set the following properties PXCCapture::Device *device = _pxcSenseManager->QueryCaptureManager()->QueryDevice(); PXCCapture::DeviceInfo dinfo; device->QueryDeviceInfo(&dinfo); if (dinfo.model == PXCCapture::DEVICE_MODEL_IVCAM) { device->SetDepthConfidenceThreshold(1); device->SetMirrorMode(PXCCapture::Device::MIRROR_MODE_DISABLED); device->SetIVCAMFilterOption(6); } // Hand Module Configuration PXCHandConfiguration* config = _pxcHandModule->CreateActiveConfiguration(); config->SetTrackingMode(PXCHandData::TrackingModeType::TRACKING_MODE_FULL_HAND); config->EnableSegmentationImage(true); config->ApplyChanges(); config->Update(); config->Release(); return 1; } else { cocos2d::log("Init Failed"); return 0; } }