const bool HandsGenerator::create( kvs::ni::Context& context ) { if ( m_is_created ) { kvsMessageError( "HandsGenerator is already created." ); return( false ); } { XnStatus status = m_generator.Create( context.context() ); if ( status != XN_STATUS_OK ) { kvsMessageError( "%s error: <%s>.", xnGetStatusName( status ), xnGetStatusString( status ) ); return( false ); } } { XnStatus status = m_generator.RegisterHandCallbacks( HandCreateEvent, HandUpdateEvent, HandDestroyEvent, NULL, m_handler ); if ( status != XN_STATUS_OK ) { kvsMessageError( "%s error: <%s>.", xnGetStatusName( status ), xnGetStatusString( status ) ); return( false ); } } m_is_created = true; return( true ); }
const kvs::Vector3f DepthGenerator::realPosition( const kvs::Vector3f& pos ) { if ( !m_is_created ) { kvsMessageError( "DepthGenerator is not created yet." ); return( pos ); } XnPoint3D proj; XnPoint3D real; proj.X = pos.x(); proj.Y = pos.y(); proj.Z = pos.z(); XnStatus status = m_generator.ConvertProjectiveToRealWorld( 1, &proj, &real ); if ( status != XN_STATUS_OK ) { kvsMessageError( "%s error: <%s>.", xnGetStatusName( status ), xnGetStatusString( status ) ); return( pos ); } return( kvs::Vector3f( real.X, real.Y, real.Z ) ); }
void xn_call_and_check(XnStatus status, const char *message) { if(status != XN_STATUS_OK){ fprintf(stderr, "fail to %s: %s\n", message, xnGetStatusName(status)); exit(status); } }
const bool DepthGenerator::create( kvs::ni::Context& context ) { if ( m_is_created ) { kvsMessageError( "DepthGenerator is already created." ); return( false ); } { XnStatus status = m_generator.Create( context.context() ); if ( status != XN_STATUS_OK ) { kvsMessageError( "%s error: <%s>.", xnGetStatusName( status ), xnGetStatusString( status ) ); return( false ); } } { XnUInt64 zpd; XnStatus status = m_generator.GetIntProperty( "ZPD", zpd ); if ( status != XN_STATUS_OK ) { kvsMessageError( "%s error: <%s>.", xnGetStatusName( status ), xnGetStatusString( status ) ); return( false ); } m_zpd = static_cast<unsigned long>( zpd ); } { XnDouble zpps; XnStatus status = m_generator.GetRealProperty( "ZPPS", zpps ); if ( status != XN_STATUS_OK ) { kvsMessageError( "%s error: <%s>.", xnGetStatusName( status ), xnGetStatusString( status ) ); return( false ); } m_zpps = static_cast<double>( zpps ); } m_is_created = true; return( true ); }
const bool DepthGenerator::adjustDepthScale( kvs::ni::ImageGenerator& image ) { if ( !m_is_created ) { kvsMessageError( "DepthGenerator is not created yet." ); return( false ); } XnStatus status = m_generator.GetAlternativeViewPointCap().SetViewPoint( image.generator() ); if ( status != XN_STATUS_OK ) { kvsMessageError( "%s error: <%s>.", xnGetStatusName( status ), xnGetStatusString( status ) ); return( false ); } return( true ); }
const bool HandsGenerator::stopTrackingAll( void ) { if ( !m_is_created ) { kvsMessageError( "HandsGenerator is not created yet." ); return( false ); } XnStatus status = m_generator.StopTrackingAll(); if ( status != XN_STATUS_OK ) { kvsMessageError( "%s error: <%s>.", xnGetStatusName( status ), xnGetStatusString( status ) ); return( false ); } return( true ); }
void Context_Init_wrapped(xn::Context& self) { #ifdef _DEBUG PyCout << "Initializing OpenNI.." << std::endl; #endif XnStatus returnCode; returnCode = self.Init(); #ifdef _DEBUG if (returnCode == XN_STATUS_OK) PyCout << "OpenNI was initialized successfully" << std::endl; else { PyCout << "OpenNI failed to initialize: " << xnGetStatusName(returnCode) << std::endl; } #endif check(returnCode); }
void Context_InitFromXmlFile_wrapped(xn::Context& self, const std::string& initializationFilename) { #ifdef _DEBUG PyCout << "Initializing OpenNI.." << std::endl; #endif XnStatus returnCode; returnCode = self.InitFromXmlFile(initializationFilename.c_str()); #ifdef _DEBUG if (returnCode == XN_STATUS_OK) PyCout << "OpenNI was initialized successfully" << std::endl; else { PyCout << "OpenNI failed to initialize: " << xnGetStatusName(returnCode) << std::endl; } #endif return check(returnCode); }
const bool HandsGenerator::stopTracking( const unsigned int user ) { if ( !m_is_created ) { kvsMessageError( "HandsGenerator is not created yet." ); return( false ); } XnUserID user_id = static_cast<XnUserID>( user ); XnStatus status = m_generator.StopTracking( user_id ); if ( status != XN_STATUS_OK ) { kvsMessageError( "%s error: <%s>.", xnGetStatusName( status ), xnGetStatusString( status ) ); return( false ); } return( true ); }
BP::object Context_OpenFileRecording_wrapped(xn::Context& self, const std::string& recordedFile) { #ifdef _DEBUG PyCout << "Loading recorded file.." << std::endl; #endif XnStatus returnCode; // xn::Player * node = new xn::Player; returnCode = self.OpenFileRecording(recordedFile.c_str()); #ifdef _DEBUG if (returnCode == XN_STATUS_OK) PyCout << "Recording loaded successfully" << std::endl; else { PyCout << "Recording failed to load: " << xnGetStatusName(returnCode) << std::endl; } #endif check( returnCode ); return Context_FindExistingNode_wrapped(self, XN_NODE_TYPE_PLAYER); }
const bool HandsGenerator::startTracking( const kvs::Vector3f& position ) { if ( !m_is_created ) { kvsMessageError( "HandsGenerator is not created yet." ); return( false ); } XnPoint3D pos; pos.X = position.x(); pos.Y = position.y(); pos.Z = position.z(); XnStatus status = m_generator.StartTracking( pos ); if ( status != XN_STATUS_OK ) { kvsMessageError( "%s error: <%s>.", xnGetStatusName( status ), xnGetStatusString( status ) ); return( false ); } return( true ); }
XnStatus OpenNIContextWrapper::InitFromXmlFile( const std::string& initializationFilename ) { #ifdef _DEBUG PyCout << "Initializing OpenNI.." << std::endl; #endif XnStatus returnCode; returnCode = xn::Context::InitFromXmlFile( initializationFilename.c_str() ); #ifdef _DEBUG if( returnCode == XN_STATUS_OK ) PyCout << "OpenNI was initialized successfully" << std::endl; else { PyCout << "OpenNI failed to initialize: " << xnGetStatusName( returnCode ) << std::endl; } #endif return returnCode; } // OpenNIContextWrapper::InitFromXmlFile