######################################################
Creating and Destroying Objects using the RED::Factory
######################################################

.. code:: cpp 

    // Create a viewpoint for instance:
    RED::Object* viewpoint = RED::Factory::CreateInstance( CID_REDViewpoint );
    if( !viewpoint )
    {
        // Handle allocation errors here.
    }

    // Create a shape (a light source here):
    RED::Object* light = RED::Factory::CreateInstance( CID_REDLightShape );
    if( !light )
    {
        // Handle allocation errors here.
    }


    // Destroy objects when done. Here, as an example, we destroy the viewpoint:
    // Get a pointer to the RED resource manager.
    RED::Object* resmgr = RED::Factory::CreateInstance( CID_REDResourceManager );
    RED::IResourceManager* iresmgr = resmgr->As< RED::IResourceManager >();

    RED_RC rc = RED::Factory::DeleteInstance( viewpoint, iresmgr->GetState() );
    if( rc != RED_OK )
    {
        // Handle errors here.
    }
