mirror of
https://github.com/godotengine/collada-exporter.git
synced 2026-01-06 02:09:47 +03:00
3D Physics Rework, Other Stuff
-=-=-=-=-=-=-=-=-=-=-=-=-=-
3D Physics:
-Fixed "Bounce" parameter in 3D
-Fixed bug affecting Area (sometims it would not detect properly)
-Vehicle Body has seen heavy work
-Added Query API for doing space queries in 3D. Needs some docs though.
-Added JOINTS! Adapted Bullet Joints: and created easy gizmos for setting them up:
-PinJoint
-HingeJoint (with motor)
-SliderJoint
-ConeTwistJoint
-Generic6DOFJoint
-Added OBJECT PICKING! based on the new query API. Any physics object now (Area or Body) has the following signals and virtual functions:
-input_event (mouse or multitouch input over the body)
-mouse_enter (mouse entered the body area)
-mouse_exit (mouse exited body area)
For Area it needs to be activated manually, as it isn't by default (ray goes thru).
Other:
-Begun working on Windows 8 (RT) port. Compiles but does not work yet.
-Added TheoraPlayer library for improved to-texture and portable video support.
-Fixed a few bugs in the renderer, collada importer, collada exporter, etc.
This commit is contained in:
@@ -317,14 +317,14 @@ class DaeExporter:
|
||||
|
||||
def export_mesh(self,node,armature=None):
|
||||
|
||||
if (node.data in self.mesh_cache):
|
||||
return self.mesh_cache[mesh]
|
||||
|
||||
if (len(node.modifiers) and self.config["use_mesh_modifiers"]):
|
||||
mesh=node.to_mesh(self.scene,True,"RENDER") #is this allright?
|
||||
else:
|
||||
mesh=node.data
|
||||
|
||||
if (mesh in self.mesh_cache):
|
||||
return self.mesh_cache[mesh]
|
||||
|
||||
mesh.update(calc_tessface=True)
|
||||
vertices=[]
|
||||
vertex_map={}
|
||||
@@ -519,7 +519,7 @@ class DaeExporter:
|
||||
meshdata={}
|
||||
meshdata["id"]=meshid
|
||||
meshdata["material_assign"]=mat_assign
|
||||
self.mesh_cache[mesh]=meshdata
|
||||
self.mesh_cache[node.data]=meshdata
|
||||
|
||||
|
||||
# Export armature data (if armature exists)
|
||||
@@ -1094,7 +1094,14 @@ class DaeExporter:
|
||||
mtx = posebone.matrix.copy()
|
||||
if (bone.parent):
|
||||
parent_posebone=node.pose.bones[bone.parent.name]
|
||||
mtx = parent_posebone.matrix.inverted() * mtx
|
||||
parent_invisible=False
|
||||
|
||||
for i in range(3):
|
||||
if (parent_posebone.scale[i]==0.0):
|
||||
parent_invisible=True
|
||||
|
||||
if (not parent_invisible):
|
||||
mtx = parent_posebone.matrix.inverted() * mtx
|
||||
|
||||
|
||||
xform_cache[bone_name].append( (key,mtx) )
|
||||
|
||||
Reference in New Issue
Block a user