Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2006-05-17 02:57:24 +0400
committerCampbell Barton <ideasman42@gmail.com>2006-05-17 02:57:24 +0400
commit0d8f85eda875e40410f032ca7abd5fd2d7605e04 (patch)
treeb98b33cfd3fbe50efc80d1301433556285068557 /release
parent456396fc3e23b4d745da0880ab24b3cfd436dea9 (diff)
made some changes to vrml97_export, this script needs to be re-written, until then fixed some incorrect assumtions it made- was using the first world in the list for AMB color no matter what world was being used, was also using the image name rather then the file name for its image URL references.
Diffstat (limited to 'release')
-rw-r--r--release/scripts/vrml97_export.py122
1 files changed, 54 insertions, 68 deletions
diff --git a/release/scripts/vrml97_export.py b/release/scripts/vrml97_export.py
index f81e1286420..7887ad5b99b 100644
--- a/release/scripts/vrml97_export.py
+++ b/release/scripts/vrml97_export.py
@@ -62,12 +62,7 @@ for each texture);<br>
import Blender
from Blender import Object, Mesh, Lamp, Draw, BGL, Image, Text, sys, Mathutils
from Blender.Scene import Render
-try:
- from os.path import exists, join
- pytinst = 1
-except:
- print "No Python installed, for full features install Python (http://www.python.org/)."
- pytinst = 0
+
import math
####################################
@@ -75,7 +70,7 @@ import math
####################################
scene = Blender.Scene.getCurrent()
-world = Blender.World.Get()
+world = Blender.World.GetCurrent()
worldmat = Blender.Texture.Get()
filename = Blender.Get('filename')
_safeOverwrite = True
@@ -211,7 +206,7 @@ class VRML2Export:
Qf = self.multiplyQuaternions(Q1, Q[2])
angleAxis = self.quaternionToAngleAxis(Qf)
self.writeIndented("DEF %s Viewpoint {\n" % (self.cleanStr(thisObj.name)), 1)
- self.writeIndented("description \"%s\" \n" % (thisObj.name))
+ self.writeIndented('description "%s" \n' % thisObj.name)
self.writeIndented("position %3.2f %3.2f %3.2f\n" % (loc[0], loc[1], loc[2]))
self.writeIndented("orientation %3.2f %3.2f %3.2f %3.2f\n" % (angleAxis[0], angleAxis[1], -angleAxis[2], angleAxis[3]))
self.writeIndented("fieldOfView %.3f\n" % (lens))
@@ -219,17 +214,17 @@ class VRML2Export:
self.writeIndented("\n")
def writeFog(self):
- if len(world) > 0:
- mtype = world[0].getMistype()
- mparam = world[0].getMist()
- grd = world[0].getHor()
+ if world:
+ mtype = world.getMistype()
+ mparam = world.getMist()
+ grd = world.getHor()
grd0, grd1, grd2 = grd[0], grd[1], grd[2]
else:
return
if (mtype == 1 or mtype == 2):
self.writeIndented("Fog {\n",1)
- self.writeIndented("fogType \"%s\"\n" % self.namesFog[mtype])
- self.writeIndented("color %s %s %s" % (round(grd0,self.cp), round(grd1,self.cp), round(grd2,self.cp)) + "\n")
+ self.writeIndented('fogType "%s"\n' % self.namesFog[mtype])
+ self.writeIndented("color %s %s %s\n" % (round(grd0,self.cp), round(grd1,self.cp), round(grd2,self.cp)))
self.writeIndented("visibilityRange %s\n" % round(mparam[2],self.cp))
self.writeIndented("}\n",-1)
self.writeIndented("\n")
@@ -248,7 +243,7 @@ class VRML2Export:
elif objType == "Lamp":
headlight = "FALSE"
self.writeIndented("NavigationInfo {\n",1)
- self.writeIndented("headlight %s" % headlight + "\n")
+ self.writeIndented("headlight %s\n" % headlight)
self.writeIndented("visibilityLimit %s\n" % (round(vislimit,self.cp)))
self.writeIndented("type [\"EXAMINE\", \"ANY\"]\n")
self.writeIndented("avatarSize [0.25, 1.75, 0.75]\n")
@@ -256,8 +251,8 @@ class VRML2Export:
self.writeIndented(" \n")
def writeSpotLight(self, object, lamp):
- if len(world) > 0:
- ambi = world[0].getAmb()
+ if world:
+ ambi = world.getAmb()
ambientIntensity = ((float(ambi[0] + ambi[1] + ambi[2]))/3)/2.5
else:
ambi = 0
@@ -289,8 +284,8 @@ class VRML2Export:
self.writeIndented("\n")
def writeDirectionalLight(self, object, lamp):
- if len(world) > 0:
- ambi = world[0].getAmb()
+ if world:
+ ambi = world.getAmb()
ambientIntensity = ((float(ambi[0] + ambi[1] + ambi[2]))/3)/2.5
else:
ambi = 0
@@ -307,8 +302,8 @@ class VRML2Export:
self.writeIndented("\n")
def writePointLight(self, object, lamp):
- if len(world) > 0:
- ambi = world[0].getAmb()
+ if world:
+ ambi = world.getAmb()
ambientIntensity = ((float(ambi[0] + ambi[1] + ambi[2]))/3)/2.5
else:
ambi = 0
@@ -619,8 +614,8 @@ class VRML2Export:
ambient = mat.amb/3
diffuseR, diffuseG, diffuseB = mat.rgbCol[0], mat.rgbCol[1],mat.rgbCol[2]
- if len(world) > 0:
- ambi = world[0].getAmb()
+ if world:
+ ambi = world.getAmb()
ambi0, ambi1, ambi2 = (ambi[0]*mat.amb)*2, (ambi[1]*mat.amb)*2, (ambi[2]*mat.amb)*2
else:
ambi0, ambi1, ambi2 = 0, 0, 0
@@ -654,19 +649,19 @@ class VRML2Export:
return
else:
self.writeIndented("texture DEF %s ImageTexture {\n" % self.cleanStr(name), 1)
- self.writeIndented("url \"%s\"\n" % name.split("\\")[-1].split("/")[-1])
+ self.writeIndented('url "%s"\n' % name.split("\\")[-1].split("/")[-1])
self.writeIndented("}\n",-1)
self.texNames[name] = 1
def writeBackground(self):
- if len(world) > 0:
- worldname = world[0].getName()
+ if world:
+ worldname = world.getName()
else:
return
- blending = world[0].getSkytype()
- grd = world[0].getHor()
+ blending = world.getSkytype()
+ grd = world.getHor()
grd0, grd1, grd2 = grd[0], grd[1], grd[2]
- sky = world[0].getZen()
+ sky = world.getZen()
sky0, sky1, sky2 = sky[0], sky[1], sky[2]
mix0, mix1, mix2 = grd[0]+sky[0], grd[1]+sky[1], grd[2]+sky[2]
mix0, mix1, mix2 = mix0/2, mix1/2, mix2/2
@@ -713,19 +708,22 @@ class VRML2Export:
alltexture = len(worldmat)
for i in range(alltexture):
namemat = worldmat[i].getName()
- pic = worldmat[i].getImage()
- if (namemat == "back") and (pic != None):
- self.writeIndented("backUrl \"%s\"\n" % str(pic.getName()))
- elif (namemat == "bottom") and (pic != None):
- self.writeIndented("bottomUrl \"%s\"\n" % str(pic.getName()))
- elif (namemat == "front") and (pic != None):
- self.writeIndented("frontUrl \"%s\"\n" % str(pic.getName()))
- elif (namemat == "left") and (pic != None):
- self.writeIndented("leftUrl \"%s\"\n" % str(pic.getName()))
- elif (namemat == "right") and (pic != None):
- self.writeIndented("rightUrl \"%s\"\n" % str(pic.getName()))
- elif (namemat == "top") and (pic != None):
- self.writeIndented("topUrl \"%s\"\n" % str(pic.getName()))
+ pic = worldmat[i].getImage()
+ if pic:
+ # Stripped path.
+ pic_path= pic.filename.split('\\')[-1].split('/')[-1]
+ if namemat == "back":
+ self.writeIndented('backUrl "%s"\n' % pic_path)
+ elif namemat == "bottom":
+ self.writeIndented('bottomUrl "%s"\n' % pic_path)
+ elif namemat == "front":
+ self.writeIndented('frontUrl "%s"\n' % pic_path)
+ elif namemat == "left":
+ self.writeIndented('leftUrl "%s"\n' % pic_path)
+ elif namemat == "right":
+ self.writeIndented('rightUrl "%s"\n' % pic_path)
+ elif namemat == "top":
+ self.writeIndented('topUrl "%s"\n' % pic_path)
self.writeIndented("}",-1)
self.writeIndented("\n\n")
@@ -803,7 +801,7 @@ class VRML2Export:
if newName[0].isdigit():
newName='%s%s' % ('_',newName)
- for bad in [' ','"','#',"'",',','.','[','\\',']','{','}']:
+ for bad in (' ','"','#',"'",',','.','[','\\',']','{','}'):
newName=newName.replace(bad,'_')
return newName
@@ -837,26 +835,25 @@ class VRML2Export:
if c.r != 255 and c.g != 255 and c.b !=255:
vColors['multi']=1
- if sided.has_key(sidename):
+ try:
sided[sidename]+=1
- else:
+ except:
sided[sidename]=1
if face.image:
faceName="%s_%s" % (face.image.name, sidename);
- if imageMap.has_key(faceName):
+ try:
imageMap[faceName].append(face)
- else:
- imageMap[faceName]=[face.image.name,sidename,face]
+ except:
+ imageMap[faceName]= [face.image.name,sidename,face]
if self.verbose > 2:
- for faceName in imageMap.keys():
- ifs=imageMap[faceName]
+ for faceName, ifs in imageMap.iteritems():
print "Debug: faceName=%s image=%s, solid=%s facecnt=%d" % \
(faceName, ifs[0], ifs[1], len(ifs)-2)
- return len(imageMap.keys())
+ return len(imageMap)
def faceToString(self,face):
@@ -984,12 +981,11 @@ class VRML2Export:
##########################################################
def select_file(filename):
- if pytinst == 1:
- if exists(filename) and _safeOverwrite:
- result = \
- Draw.PupMenu("File Already Exists, Overwrite?%t|Yes%x1|No%x0")
- if(result != 1):
- return
+ if sys.exists(filename) and _safeOverwrite:
+ result = \
+ Draw.PupMenu("File Already Exists, Overwrite?%t|Yes%x1|No%x0")
+ if(result != 1):
+ return
if not filename.endswith(extension):
filename += extension
@@ -997,16 +993,6 @@ def select_file(filename):
wrlexport=VRML2Export(filename)
wrlexport.export(scene, world, worldmat)
-def createWRLPath():
- filename = Blender.Get('filename')
- print filename
-
- if filename.find('.') != -1:
- filename = filename.split('.')[0]
- filename += extension
- print filename
-
- return filename
#########################################################
# main routine
@@ -1027,5 +1013,5 @@ else:
from gzip import *
else:
extension=".wrl"
- Blender.Window.FileSelector(select_file,"Export VRML97",createWRLPath())
+ Blender.Window.FileSelector(select_file, "Export VRML97", sys.makename(ext=extension))