Ejemplo n.º 1
0
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 );
}
Ejemplo n.º 2
0
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 ) );
}
Ejemplo n.º 3
0
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);
  }
}
Ejemplo n.º 4
0
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 );
}
Ejemplo n.º 5
0
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 );
}
Ejemplo n.º 6
0
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 );
}
Ejemplo n.º 7
0
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);    
}
Ejemplo n.º 8
0
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);
}
Ejemplo n.º 9
0
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 );
}
Ejemplo n.º 10
0
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);
}
Ejemplo n.º 11
0
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 );
}
Ejemplo n.º 12
0
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