Index: trunk/src/gfx/mesh_creator.cc
===================================================================
--- trunk/src/gfx/mesh_creator.cc	(revision 501)
+++ trunk/src/gfx/mesh_creator.cc	(revision 503)
@@ -88,14 +88,14 @@
 
 
-void nv::mesh_data_creator::transform( float scale, const mat3& r33 )
-{
-	vec3 vertex_offset     = vec3(); 
-	mat3 vertex_transform  = scale * r33;
-	mat3 normal_transform  = r33;
+void nv::mesh_data_creator::transform( const vec3& pos, const mat3& r33, float scale /*= 1.0f */ )
+{
+	vec3 vertex_offset = pos;
+	mat3 vertex_transform = scale * r33;
+	mat3 normal_transform = r33;
 
 	for ( uint32 c = 0; c < m_data->size(); ++c )
 	{
 		raw_data_channel_access channel( m_data, c );
-		const data_descriptor&  desc    = channel.descriptor();
+		const data_descriptor&  desc = channel.descriptor();
 		uint8* raw_data = channel.raw_data();
 		uint32 vtx_size = desc.element_size();
@@ -103,15 +103,15 @@
 		int n_offset = -1;
 		int t_offset = -1;
-		for ( const auto& cslot : desc  )
+		for ( const auto& cslot : desc )
 			switch ( cslot.vslot )
 			{
-				case slot::POSITION : if ( cslot.etype == FLOAT_VECTOR_3 ) p_offset = int( cslot.offset ); break;
-				case slot::NORMAL   : if ( cslot.etype == FLOAT_VECTOR_3 ) n_offset = int( cslot.offset ); break;
-				case slot::TANGENT  : if ( cslot.etype == FLOAT_VECTOR_4 ) t_offset = int( cslot.offset ); break;
-				default             : break;
+			case slot::POSITION: if ( cslot.etype == FLOAT_VECTOR_3 ) p_offset = int( cslot.offset ); break;
+			case slot::NORMAL: if ( cslot.etype == FLOAT_VECTOR_3 ) n_offset = int( cslot.offset ); break;
+			case slot::TANGENT: if ( cslot.etype == FLOAT_VECTOR_4 ) t_offset = int( cslot.offset ); break;
+			default: break;
 			}
 
 		if ( p_offset != -1 )
-			for ( uint32 i = 0; i < channel.size(); i++)
+			for ( uint32 i = 0; i < channel.size(); i++ )
 			{
 				vec3& p = *reinterpret_cast<vec3*>( raw_data + vtx_size*i + p_offset );
@@ -120,5 +120,5 @@
 
 		if ( n_offset != -1 )
-			for ( uint32 i = 0; i < channel.size(); i++)
+			for ( uint32 i = 0; i < channel.size(); i++ )
 			{
 				vec3& n = *reinterpret_cast<vec3*>( raw_data + vtx_size*i + n_offset );
@@ -126,11 +126,12 @@
 			}
 		if ( t_offset != -1 )
-			for ( uint32 i = 0; i < channel.size(); i++)
-			{
-				vec4& t = *reinterpret_cast<vec4*>(raw_data + vtx_size*i + t_offset );
-				t = vec4( math::normalize( normal_transform * vec3(t) ), t[3] );
-			}
-	}
-}
+			for ( uint32 i = 0; i < channel.size(); i++ )
+			{
+				vec4& t = *reinterpret_cast<vec4*>( raw_data + vtx_size*i + t_offset );
+				t = vec4( math::normalize( normal_transform * vec3( t ) ), t[3] );
+			}
+	}
+}
+
 
 struct vertex_g
