stk-code_catmod/tools/python/import_driveline.py
grumbel 7a6d165641 - moved trunk/ to trunk/supertuxkart
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/trunk/supertuxkart@1118 178a84e3-b1eb-0310-8ba1-8eac791a3b58
2007-05-27 16:01:53 +00:00

76 lines
2.1 KiB
Python

#!BPY
""" Registration info for Blender menus:
Name: 'Super Tux Kart Driveline'
Blender: 233
Group: 'Import'
Tip: 'Load Super Tux Kart drivelines.'
"""
# --------------------------------------------------------------------------
# ***** BEGIN GPL LICENSE BLOCK *****
#
# Copyright (C) 2006: Eduardo Hernández, coz.eduardo.hernandez _at_ gmail.com
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# ***** END GPL LICENCE BLOCK *****
# --------------------------------------------------------------------------
import Blender
def import_driveline(path):
Blender.Window.WaitCursor(1)
name = path.split('\\')[-1].split('/')[-1]
mesh = Blender.NMesh.New( name ) # create a new mesh
file = open(path, 'r')
i = 0
v1 = Blender.NMesh.Vert(0.0,0.0,0.0)
for line in file:
words = line.split(',')
if len(words) == 0:
continue
x = float(words[0])
y = float(words[1])
z = float(words[2])
v = Blender.NMesh.Vert( x, y, z )
mesh.verts.append(v)
v.sel = 1
if len(mesh.verts) >= 2:
mesh.addEdge(mesh.verts[-2], mesh.verts[-1])
mesh.addEdge(mesh.verts[0], mesh.verts[-1])
# link the mesh to a new object
ob = Blender.Object.New('Mesh', name)
ob.link(mesh) # tell the object to use the mesh we just made
scn = Blender.Scene.GetCurrent()
for o in scn.getChildren():
o.sel = 0
scn.link(ob) # link the object to the current scene
ob.sel= 1
ob.Layers = scn.Layers
Blender.Window.WaitCursor(0)
Blender.Window.RedrawAll()
Blender.Window.FileSelector(import_driveline, 'Import')