]> git.jsancho.org Git - guile-irrlicht.git/blobdiff - src/vertex3d.cpp
Some doc
[guile-irrlicht.git] / src / vertex3d.cpp
index b7b57e2c70ef52bdf2a360566861117150ab36c2..e0ca2d2cab1ee198e0fd6798ab2740d1f346023c 100644 (file)
@@ -41,7 +41,7 @@ S3DVertex_make (SCM position,
                           scm_to_vector3df (normal),
                           scm_to_color (color),
                           scm_to_vector2df (tcoords));
-  return scm_from_pointer ((void*) vertex, NULL);
+  return scm_from_irr_pointer ("<vertex3d>", (void*) vertex);
 }
 
 SCM
@@ -60,22 +60,27 @@ init_vertex3d (void)
 video::E_VERTEX_TYPE
 scm_to_vertex_type (SCM vertex_type)
 {
-  char* type = scm_to_utf8_string (scm_symbol_to_string (vertex_type));
-  if (!strcmp (type, "standard"))
+  char* type_name = scm_to_utf8_string (scm_symbol_to_string (vertex_type));
+  video::E_VERTEX_TYPE type;
+
+  if (!strcmp (type_name, "standard"))
     {
-      return video::EVT_STANDARD;
+      type = video::EVT_STANDARD;
     }
-  else if (!strcmp (type, "2tcoords"))
+  else if (!strcmp (type_name, "2tcoords"))
     {
-      return video::EVT_2TCOORDS;
+      type = video::EVT_2TCOORDS;
     }
-  else if (!strcmp (type, "tangents"))
+  else if (!strcmp (type_name, "tangents"))
     {
-      return video::EVT_TANGENTS;
+      type = video::EVT_TANGENTS;
     }
   else
     {
       scm_error (scm_arg_type_key, NULL, "Wrong vertex_type: ~S",
                  scm_list_1 (vertex_type), scm_list_1 (vertex_type));
     }
+
+  free (type_name);
+  return type;
 }