static DepthNode getFirstAvailableDepthNode(Context context) { // obtain the list of devices attached to the host vector<Device> devices = context.getDevices(); for (vector<Device>::const_iterator iter = devices.begin(); iter != devices.end(); iter++) { Device device = *iter; // obtain the list of nodes of the current device vector<Node> nodes = device.getNodes(); for (vector<Node>::const_iterator nodeIter = nodes.begin(); nodeIter != nodes.end(); nodeIter++) { Node node = *nodeIter; // if the node is a DepthSense::ColorNode, return it DepthNode colorNode = node.as<DepthNode>(); if (colorNode.isSet()) return colorNode; } } // return an unset color node return DepthNode(); }
/*----------------------------------------------------------------------------*/ int main(int argc, char* argv[]) { ros::init (argc, argv, "pub_pcl"); ros::NodeHandle nh; pub = nh.advertise<PointCloud> ("points2", 1); point_cloud::PointCloud detector("pcl_class1"); //creates PointCloudLab class object int user_input = 1; g_context = Context::create("localhost"); g_context.deviceAddedEvent().connect(&onDeviceConnected); g_context.deviceRemovedEvent().connect(&onDeviceDisconnected); // Get the list of currently connected devices vector<Device> da = g_context.getDevices(); // We are only interested in the first device if (da.size() >= 1) { g_bDeviceFound = true; da[0].nodeAddedEvent().connect(&onNodeConnected); da[0].nodeRemovedEvent().connect(&onNodeDisconnected); vector<Node> na = da[0].getNodes(); printf("Found %u nodes\n",na.size()); for (int n = 0; n < (int)na.size(); n++) configureNode(na[n]); } while(user_input==1) { g_context.startNodes(); g_context.run(); g_context.stopNodes(); cout << "Please enter an 1 or 0: "; cin >> user_input; } if (g_cnode.isSet()) g_context.unregisterNode(g_cnode); if (g_dnode.isSet()) g_context.unregisterNode(g_dnode); if (g_anode.isSet()) g_context.unregisterNode(g_anode); if (g_pProjHelper) delete g_pProjHelper; return 0; }
/*----------------------------------------------------------------------------*/ void pcl::SoftKineticDevice::configureNode(Node node) { if ((node.is<DepthNode>())&&(!g_dnode.isSet())) { g_dnode = node.as<DepthNode>(); configureDepthNode(); context_.registerNode(node); } if ((node.is<ColorNode>())&&(!g_cnode.isSet())) { g_cnode = node.as<ColorNode>(); configureColorNode(); context_.registerNode(node); } // if ((node.is<AudioNode>())&&(!g_anode.isSet())) // { // g_anode = node.as<AudioNode>(); // configureAudioNode(); // context_.registerNode(node); // } }
void pcl::SoftKineticDevice::close () { //pp_.Close (); if (context_.isSet()) { context_.quit(); skrun_thread_.join(); context_.stopNodes(); if (g_cnode.isSet()) { context_.unregisterNode(g_cnode); g_cnode.unset(); } if (g_dnode.isSet()) { context_.unregisterNode(g_dnode); g_dnode.unset(); } //if (g_anode.isSet()) context_.unregisterNode(g_anode); if (g_pProjHelper) { delete g_pProjHelper; g_pProjHelper = NULL; } context_.unset(); } }
/*----------------------------------------------------------------------------*/ void SoftKineticCamera::configureNode(Node node) { if ((node.is<DepthNode>())&&(!m_dnode.isSet())) { m_dnode = node.as<DepthNode>(); configureDepthNode(); m_context.registerNode(node); } if ((node.is<ColorNode>())&&(!m_cnode.isSet())) { m_cnode = node.as<ColorNode>(); configureColorNode(); m_context.registerNode(node); } if ((node.is<AudioNode>())&&(!m_anode.isSet())) { m_anode = node.as<AudioNode>(); configureAudioNode(); m_context.registerNode(node); } }
/*----------------------------------------------------------------------------*/ void configureNode(Node node) { if ((node.is<DepthNode>())&&(!g_dnode.isSet())) { g_dnode = node.as<DepthNode>(); configureDepthNode(); g_context.registerNode(node); } if ((node.is<ColorNode>())&&(!g_cnode.isSet())) { g_cnode = node.as<ColorNode>(); configureColorNode(); g_context.registerNode(node); } if ((node.is<AudioNode>())&&(!g_anode.isSet())) { g_anode = node.as<AudioNode>(); configureAudioNode(); g_context.registerNode(node); } }