Index: trunk/nv/gfx/keyframed_mesh.hh
===================================================================
--- trunk/nv/gfx/keyframed_mesh.hh	(revision 274)
+++ trunk/nv/gfx/keyframed_mesh.hh	(revision 275)
@@ -37,5 +37,5 @@
 	{
 	public:
-		keyframed_mesh( context* a_context, mesh_data* a_data, tag_map* a_tag_map );
+		keyframed_mesh( device* a_device, mesh_data* a_data, tag_map* a_tag_map );
 		virtual size_t get_index_count() const { return m_index_count; }
 		virtual void run_animation( animation_entry* a_anim );
@@ -76,5 +76,5 @@
 	{
 	public:
-		keyframed_mesh_gpu( context* a_context, mesh_data* a_data, tag_map* a_tag_map, program* a_program );
+		keyframed_mesh_gpu( device* a_device, mesh_data* a_data, tag_map* a_tag_map, program* a_program );
 		void update( uint32 ms );
 	private:
@@ -89,5 +89,5 @@
 	{
 	public:
-		keyframed_mesh_cpu( context* a_context, mesh_data* a_data, tag_map* a_tag_map );
+		keyframed_mesh_cpu( device* a_device, mesh_data* a_data, tag_map* a_tag_map );
 		void update( uint32 ms );
 	private:
Index: trunk/nv/gfx/skeletal_mesh.hh
===================================================================
--- trunk/nv/gfx/skeletal_mesh.hh	(revision 274)
+++ trunk/nv/gfx/skeletal_mesh.hh	(revision 275)
@@ -35,5 +35,5 @@
 	{
 	public:
-		skeletal_mesh( context* a_context, md5_mesh_data* a_mesh_data );
+		skeletal_mesh( device* a_device, md5_mesh_data* a_mesh_data );
 		virtual size_t get_index_count() const { return m_mesh_data->get_index_count(); }
 		virtual void run_animation( animation_entry* a_anim );
Index: trunk/nv/interface/scene_node.hh
===================================================================
--- trunk/nv/interface/scene_node.hh	(revision 274)
+++ trunk/nv/interface/scene_node.hh	(revision 275)
@@ -57,4 +57,14 @@
 		}
 
+		void set_position( const vec3& p )
+		{ 
+			m_transform.set_position( p ); 
+		}
+
+		void set_orientation( const quat& q ) 
+		{ 
+			m_transform.set_orientation( q ); 
+		}
+
 		const vec3& get_position() const 
 		{ 
Index: trunk/src/gfx/keyframed_mesh.cc
===================================================================
--- trunk/src/gfx/keyframed_mesh.cc	(revision 274)
+++ trunk/src/gfx/keyframed_mesh.cc	(revision 275)
@@ -15,5 +15,5 @@
 using namespace nv;
 
-nv::keyframed_mesh::keyframed_mesh( context* a_context, mesh_data* a_data, tag_map* a_tag_map )
+nv::keyframed_mesh::keyframed_mesh( device* a_device, mesh_data* a_data, tag_map* a_tag_map )
 	: animated_mesh()
 	, m_mesh_data( a_data )
@@ -29,5 +29,5 @@
 	, m_active( false )
 {
-	m_va = a_context->get_device()->create_vertex_array();
+	m_va = a_device->create_vertex_array();
 
 	m_index_count  = m_mesh_data->get_index_channel()->count;
@@ -130,6 +130,6 @@
 }
 
-nv::keyframed_mesh_gpu::keyframed_mesh_gpu( context* a_context, mesh_data* a_data, tag_map* a_tag_map, program* a_program )
-	: keyframed_mesh( a_context, a_data, a_tag_map )
+nv::keyframed_mesh_gpu::keyframed_mesh_gpu( device* a_device, mesh_data* a_data, tag_map* a_tag_map, program* a_program )
+	: keyframed_mesh( a_device, a_data, a_tag_map )
 	, m_loc_next_position( 0 )
 	, m_loc_next_normal( 0 )
@@ -139,5 +139,5 @@
 	m_loc_next_position = a_program->get_attribute( "nv_next_position" )->get_location();
 	m_loc_next_normal   = a_program->get_attribute( "nv_next_normal" )->get_location();
-	m_va = a_context->get_device()->create_vertex_array( a_data, nv::STATIC_DRAW );
+	m_va = a_device->create_vertex_array( a_data, nv::STATIC_DRAW );
 	vertex_buffer* vb = m_va->find_buffer( nv::POSITION );
 	m_va->add_vertex_buffer( m_loc_next_position, vb, nv::FLOAT, 3, 0,              sizeof( vertex_pn ), false );
@@ -164,14 +164,14 @@
 }
 
-nv::keyframed_mesh_cpu::keyframed_mesh_cpu( context* a_context, mesh_data* a_data, tag_map* a_tag_map )
-	: keyframed_mesh( a_context, a_data, a_tag_map )
+nv::keyframed_mesh_cpu::keyframed_mesh_cpu( device* a_device, mesh_data* a_data, tag_map* a_tag_map )
+	: keyframed_mesh( a_device, a_data, a_tag_map )
 {
-	m_vb = a_context->get_device()->create_vertex_buffer( nv::STATIC_DRAW, m_vertex_count * sizeof( vertex_pn ), (void*)m_mesh_data->get_channel_data()[0]->data );
+	m_vb = a_device->create_vertex_buffer( nv::STATIC_DRAW, m_vertex_count * sizeof( vertex_pn ), (void*)m_mesh_data->get_channel_data()[0]->data );
 	m_va->add_vertex_buffers( m_vb, m_mesh_data->get_channel_data()[0] );
 
-	nv::vertex_buffer* vb = a_context->get_device()->create_vertex_buffer( nv::STATIC_DRAW, m_vertex_count * sizeof( nv::vec2 ), (void*)m_mesh_data->get_channel_data()[1]->data );
+	nv::vertex_buffer* vb = a_device->create_vertex_buffer( nv::STATIC_DRAW, m_vertex_count * sizeof( nv::vec2 ), (void*)m_mesh_data->get_channel_data()[1]->data );
 	m_va->add_vertex_buffers( vb, m_mesh_data->get_channel_data()[1] );
 
-	nv::index_buffer* ib = a_context->get_device()->create_index_buffer( nv::STATIC_DRAW, m_mesh_data->get_index_channel()->size, (void*)m_mesh_data->get_index_channel()->data );
+	nv::index_buffer* ib = a_device->create_index_buffer( nv::STATIC_DRAW, m_mesh_data->get_index_channel()->size, (void*)m_mesh_data->get_index_channel()->data );
 	m_va->set_index_buffer( ib, m_mesh_data->get_index_channel()->etype, true );
 
Index: trunk/src/gfx/skeletal_mesh.cc
===================================================================
--- trunk/src/gfx/skeletal_mesh.cc	(revision 274)
+++ trunk/src/gfx/skeletal_mesh.cc	(revision 275)
@@ -11,5 +11,5 @@
 
 
-nv::skeletal_mesh::skeletal_mesh( context* a_context, md5_mesh_data* a_mesh_data )
+nv::skeletal_mesh::skeletal_mesh( device* a_device, md5_mesh_data* a_mesh_data )
 	: animated_mesh()
 	, m_mesh_data( nullptr )
@@ -18,5 +18,5 @@
 {
 	m_mesh_data = a_mesh_data->spawn();
-	m_va        = a_context->get_device()->create_vertex_array( a_mesh_data, nv::STREAM_DRAW );
+	m_va        = a_device->create_vertex_array( a_mesh_data, nv::STREAM_DRAW );
 }
 
