add a way for external scripts to call X3D/VRML importer and deal with unknown node...
authorCampbell Barton <ideasman42@gmail.com>
Tue, 21 Oct 2008 23:14:40 +0000 (23:14 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Tue, 21 Oct 2008 23:14:40 +0000 (23:14 +0000)
release/scripts/import_web3d.py

index e934d06e9efc55ae55fb92698deaa8804f8838da..9447f15fb79b2b55c34603782d87c42dcd4158f7 100755 (executable)
@@ -53,7 +53,7 @@ def dirName(path):
 # order dosnt matter for loc/size/rot
 # right handed rotation
 # angles are in radians
-# rotation first defines axis then ammount in deg
+# rotation first defines axis then ammount in radians
 
 
 
@@ -1782,7 +1782,7 @@ def importTransform(node, ancestry):
        bpyob.setMatrix( getFinalMatrix(node, None, ancestry) )
 
 
-def load_web3d(path, PREF_FLAT=False, PREF_CIRCLE_DIV=16):
+def load_web3d(path, PREF_FLAT=False, PREF_CIRCLE_DIV=16, HELPER_FUNC = None):
        
        # Used when adding blender primitives
        GLOBALS['CIRCLE_DETAIL'] = PREF_CIRCLE_DIV
@@ -1818,8 +1818,14 @@ def load_web3d(path, PREF_FLAT=False, PREF_CIRCLE_DIV=16):
                elif spec=='Transform':
                        # Only use transform nodes when we are not importing a flat object hierarchy
                        if PREF_FLAT==False:
-                               importTransform(node, ancestry)
-       
+                               importTransform(node, ancestry)                 
+               else:
+                       
+                       # Note, include this function so the VRML/X3D importer can be extended
+                       # by an external script.
+                       if HELPER_FUNC:
+                               HELPER_FUNC(node, ancestry)
+                       
        # Add in hierarchy
        if PREF_FLAT==False:
                child_dict = {}