本文整理汇总了C++中xn::Context::GetUnderlyingObject方法的典型用法代码示例。如果您正苦于以下问题:C++ Context::GetUnderlyingObject方法的具体用法?C++ Context::GetUnderlyingObject怎么用?C++ Context::GetUnderlyingObject使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xn::Context
的用法示例。
在下文中一共展示了Context::GetUnderlyingObject方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: EnumerateProductionTrees
XnStatus XnExportedSensorDevice::EnumerateProductionTrees(xn::Context& context, xn::NodeInfoList& TreesList, xn::EnumerationErrors* /*pErrors*/)
{
XnStatus nRetVal = XN_STATUS_OK;
// enumerate connected sensors
XnUInt32 nCount = 0;
// check if sensor is connected
nRetVal = XnSensor::Enumerate(NULL, &nCount);
if (nRetVal != XN_STATUS_OUTPUT_BUFFER_OVERFLOW)
{
// no sensor connected
return XN_STATUS_DEVICE_NOT_CONNECTED;
}
// allocate according to count
XnConnectionString* pConnStrings;
XN_VALIDATE_CALLOC(pConnStrings, XnConnectionString, nCount);
nRetVal = XnSensor::Enumerate(pConnStrings, &nCount);
if (nRetVal != XN_STATUS_OK)
{
xnOSFree(pConnStrings);
return (nRetVal);
}
XnProductionNodeDescription Description;
GetDescription(&Description);
for (XnUInt32 i = 0; i < nCount; ++i)
{
// Each connection string is a sensor. Return it if it wasn't created already.
if (FindCreatedDevice(context.GetUnderlyingObject(), pConnStrings[i]) == m_createdDevices.End())
{
nRetVal = TreesList.Add(Description, pConnStrings[i], NULL);
if (nRetVal != XN_STATUS_OK)
{
xnOSFree(pConnStrings);
return (nRetVal);
}
}
}
xnOSFree(pConnStrings);
return (XN_STATUS_OK);
}
开发者ID:DogfishLab88,项目名称:debian-openni-sensor-avin2-sensorkinect,代码行数:46,代码来源:XnExportedSensorDevice.cpp
示例2: Context_IsValid
XnBool Context_IsValid(xn::Context& self) {
return (self.GetUnderlyingObject() != NULL);
}
示例3: Create
XnStatus XnExportedSensorDevice::Create(xn::Context& context,
const XnChar* strInstanceName,
const XnChar* strCreationInfo,
xn::NodeInfoList* /*pNeededTrees*/,
const XnChar* strConfigurationDir,
xn::ModuleProductionNode** ppInstance)
{
XnStatus nRetVal = XN_STATUS_OK;
XnChar strGlobalConfigFile[XN_FILE_MAX_PATH];
nRetVal = XnSensor::ResolveGlobalConfigFileName(strGlobalConfigFile, XN_FILE_MAX_PATH, strConfigurationDir);
XN_IS_STATUS_OK(nRetVal);
// multi-process is not supported on Mac
#if (XN_PLATFORM == XN_PLATFORM_MACOSX)
XnBool bEnableMultiProcess = FALSE;
#else
XnBool bEnableMultiProcess = XN_SENSOR_DEFAULT_MULTI_PROCESS;
XnUInt32 nValue;
if (XN_STATUS_OK == xnOSReadIntFromINI(strGlobalConfigFile, XN_SENSOR_SERVER_CONFIG_FILE_SECTION, XN_MODULE_PROPERTY_ENABLE_MULTI_PROCESS, &nValue))
{
bEnableMultiProcess = (nValue == TRUE);
}
#endif
XnDeviceBase* pSensor = NULL;
if (bEnableMultiProcess)
{
XN_VALIDATE_NEW(pSensor, XnSensorClient);
}
else
{
XN_VALIDATE_NEW(pSensor, XnSensor);
}
XnDeviceConfig config;
config.DeviceMode = XN_DEVICE_MODE_READ;
config.cpConnectionString = strCreationInfo;
config.SharingMode = XN_DEVICE_EXCLUSIVE;
config.pInitialValues = NULL;
if (strConfigurationDir != NULL)
{
if (bEnableMultiProcess)
{
XnSensorClient* pClient = (XnSensorClient*)pSensor;
pClient->SetConfigDir(strConfigurationDir);
}
else
{
XnSensor* pActualSensor = (XnSensor*)pSensor;
pActualSensor->SetGlobalConfigFile(strGlobalConfigFile);
}
}
nRetVal = pSensor->Init(&config);
if (nRetVal != XN_STATUS_OK)
{
XN_DELETE(pSensor);
return (nRetVal);
}
XnSensorDevice* pDevice = XN_NEW(XnSensorDevice, context, pSensor, strInstanceName);
if (pDevice == NULL)
{
XN_DELETE(pSensor);
return (XN_STATUS_ALLOC_FAILED);
}
nRetVal = pDevice->Init();
if (nRetVal != XN_STATUS_OK)
{
XN_DELETE(pDevice);
XN_DELETE(pSensor);
return (nRetVal);
}
nRetVal = m_createdDevices.AddLast(DeviceKey(context.GetUnderlyingObject(), strCreationInfo));
if (nRetVal != XN_STATUS_OK)
{
XN_DELETE(pDevice);
XN_DELETE(pSensor);
return (nRetVal);
}
*ppInstance = pDevice;
return (XN_STATUS_OK);
}
开发者ID:DogfishLab88,项目名称:debian-openni-sensor-avin2-sensorkinect,代码行数:90,代码来源:XnExportedSensorDevice.cpp
示例4: Context_FindExistingNode_wrapped
BP::object Context_FindExistingNode_wrapped(xn::Context& self, XnProductionNodeType type) {
XnNodeHandle ret = NULL;
xnFindExistingRefNodeByType(self.GetUnderlyingObject(), type, &ret);
return wrapNode(ret);
}