v3_sub( src_verts[tri[1]].co, src_verts[tri[0]].co, ac );
v3_cross( ac, ab, tn );
+#if 0
if( v3_length2( tn ) <= 0.00001f )
continue;
+#endif
dst_indices[real_indices+0] = tri[0] + ctx->vertex_count;
dst_indices[real_indices+1] = tri[1] + ctx->vertex_count;
mdl_close( &mgate );
}
+VG_STATIC void ent_gate_get_mdl_mtx( ent_gate *gate, m4x3f mmdl ){
+ m4x3_copy( gate->to_world, mmdl );
+
+ if( !(gate->flags & k_ent_gate_custom_mesh) ){
+ m3x3_scale( mmdl, (v3f){ gate->dimensions[0],
+ gate->dimensions[1], 1.0f } );
+ }
+}
+
/*
* Render the view through a gate
*/
glDisable( GL_CULL_FACE );
m4x3f mmdl;
- m4x3_copy( gate->to_world, mmdl );
+ ent_gate_get_mdl_mtx( gate, mmdl );
+ shader_model_gate_uMdl( mmdl );
if( gate->flags & k_ent_gate_custom_mesh ){
- shader_model_gate_uMdl( mmdl );
mesh_bind( &world->mesh_no_collide );
for( u32 i=0; i<gate->submesh_count; i++ ){
mdl_submesh *sm = mdl_arritm( &world->meta.submeshs,
}
}
else {
- m3x3_scale( mmdl, (v3f){ gate->dimensions[0],
- gate->dimensions[1], 1.0f } );
- shader_model_gate_uMdl( mmdl );
mesh_bind( &world_gates.mesh );
mdl_draw_submesh( &world_gates.sm_surface );
}
v3f pos, v3f last );
VG_STATIC void ent_gate_call( world_instance *world, ent_call *call );
+VG_STATIC void ent_gate_get_mdl_mtx( ent_gate *gate, m4x3f mmdl );
#endif /* WORLD_GATE_H */
positions[0][1] = h1;
}
- m3x3_copy( gate->to_world, text->transform );
+ m4x3f mmdl;
+ ent_gate_get_mdl_mtx( gate, mmdl );
+
+ m3x3_copy( mmdl, text->transform );
float ratio = v3_length(text->transform[0]) /
v3_length(text->transform[1]);
m3x3_scale( text->transform, (v3f){ size, size*ratio, 0.1f } );
- m4x3_mulv( gate->to_world, positions[j], text->transform[3] );
+ m4x3_mulv( mmdl, positions[j], text->transform[3] );
}
}
}
ent_checkpoint *cp = mdl_arritm( &world->ent_checkpoint, next );
ent_gate *gate = mdl_arritm( &world->ent_gate, cp->gate_index );
- shader_model_gate_uMdl( gate->to_world );
+
+ m4x3f mmdl;
+ ent_gate_get_mdl_mtx( gate, mmdl );
+ shader_model_gate_uMdl( mmdl );
for( u32 j=0; j<4; j++ ){
if( gate->routes[j] == i ){