Advertisement
Guest User

Untitled

a guest
Sep 16th, 2012
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.65 KB | None | 0 0
  1. GeomPoly:
  2. forward_iterator renamed forwardIterator
  3. backwards_iterator renamed backwardsIterator
  4. skip_forward renamed skipForward
  5. skip_backwards renamed skipBackwards
  6. simple_decomposition renamed simpleDecomposition
  7. convex_decomposition renamed convexDecomposition
  8. triangular_decomposition renamed triangularDecomposition
  9. monotone_decomposition renamed monotoneDecomposition
  10.  
  11. constructor, copy methods changed so that the current head of GeomPoly
  12. will point to the first vertex given.
  13.  
  14. AngleJoint:
  15. slack property removed, replaced with isSlack method
  16. Fix for incorrect clamping of impulses in certain scenarios.
  17.  
  18. DistanceJoint
  19. slack property removed, replaced with isSlack method
  20. Fix for incorrect clamping of impulses in certain scenarios.
  21.  
  22. LineJoint
  23. Fix for incorrect clamping of impulses in certain scenarios.
  24.  
  25. CbType:
  26. Fixed bug so that constraints list correctly only tracks Constraints
  27. that have been added to a Space.
  28.  
  29. Vec2:
  30. fromPoint now included for nme target, not just flash
  31. Added Vec2::normalise and Vec2::unit methods
  32.  
  33. AABB:
  34. fromRect now included for nme target, not just flash
  35.  
  36. Mat23:
  37. set, setAs, reset methods now returns reference to 'this' instead of nothing.
  38.  
  39. NapeList's:
  40. removed debug errors when modifying a list whilst iterating. Not because doing
  41. so is safe (or ever has been), but because I realised that if iteration over a
  42. list is terminated early then the iterator will not be removed from the tracker
  43. and spurious errors were possible as well as potential GC issues.
  44.  
  45. foreach and filter method now returns reference to 'this' instead of nothing
  46.  
  47. UserConstraint:
  48. __destroy method to be overriden, renamed as __broken. (And fixed bug where it wouldn't
  49. have ever even been called :P)
  50.  
  51. methods invalidate, bindVec2 and registerBody prefixed with similar __ prefixes to denote
  52. their private nature to sub-type of user constraint.
  53.  
  54. Arbiter:
  55. remove arbiter id, remove active property.
  56. rename restitution to elasticity to better match Material names.
  57. Make physics properties mutable, once set they will persist until the arbiter is destroyed
  58. (The shapes seperate).
  59.  
  60. Remove mutability of contacts. This does not play well with continuous collisions (and
  61. to be fair, has very little use that I can think of). The most important parts are
  62. still persent, changing friction/elasticity values specifically and ignoring interactions.
  63.  
  64. Contact:
  65. remove active property.
  66. remove restitution, and rolling friction property (duplicated information available from
  67. arbiter).
  68.  
  69. InteractionGroup:
  70. remove id property.
  71.  
  72. Space:
  73. remove id property.
  74. Modified the clear() method so that things like gravity, and globalLinearDrag are left
  75. untouched instead of being set to default.
  76.  
  77. Shape:
  78. Modify transformation methods to return reference to 'this' Shape.
  79. Removed static method copy in favour of member method.
  80. This method also has a bug fix for the recent changes in userData,
  81. instead of copying the userData object, a new userData object is created
  82. and has all it's fields instantiated to the same fields as that of the present
  83. userData.
  84.  
  85. Circle:
  86. Removed static method copy in favour of member method on Shape.
  87.  
  88. Polygon:
  89. Removed static method copy in favour of member method on Shape.
  90.  
  91. ValidationResult:
  92. Moved this class into its own file.
  93.  
  94. FluidProperties:
  95. Fix bug in copy for changes in userData so that field is copied
  96. properly alla Shape.
  97. Fix bug in copy so that gravity property is also copied.
  98.  
  99. Debug:
  100. Removed drawConstraintSprings/drawConstraintErrors properties as
  101. they are no longer used.
  102. Renamed bgColor bgColour to be consistent with british spelling used
  103. everywhere else.
  104.  
  105. Body:
  106. Removed clear method, can use body.shapes.clear() to remove all shapes.
  107. Removed graphic and related properties.
  108. Methods like normalImpulse now return a Vec3 instead of a Vec2 so angular
  109. information is no longer discarded. Necessarigly can no longer create a weak
  110. Vec2 as Vec3 cannot presently be defined weak.
  111.  
  112. Changed behaviour of force/torque so that they are persistant values (not reset
  113. to 0 after step()). Removed apply#Force methods.
  114.  
  115. Change transform method names (and reduced number of such methods). Methods are now
  116. localPointToWorld, localVectorToWorld, worldPointToLocal, worldVectorToLocal.
  117. I feel these names are more representative of what the method does.
  118.  
  119. Get rid of applyLocalImpulse and applyRelativeImpulse, renaming applyWorldImpulse
  120. into just applyImpulse. Consistency is important, and these methods were anything but
  121.  
  122. applyImpulse takes both impulse, and position in world coordinates.
  123.  
  124. Permit Bodys containing NO shapes whatsoever to be simulated in a space. (Restriction that dynamic body must have non-zero mass/inertia). This can be used to add new bodies (like space.world) for use in constraints, but that are not only at (0,0) with no velocity etc. A body with no shapes will simply be integrated through time.
  125.  
  126. Add setVelocityFromTarget to aid in animation of kinematic bodies:
  127. body.setVelocityFromTarget(targetPosition, targetRotation, deltaTime);
  128.  
  129. Add integrate() to integrate body position/rotation by it's velocities, may be
  130. useful in conjunction with new convexCast method on Space.
  131.  
  132. Material:
  133. Material density is now permitted to be 0. Restriction is that a dynamic body must have non-zero mass/inertia at the end of it all.
  134.  
  135. Compound:
  136. Modified COM to get Vec2 from object pool, and permit weakly allocated return.
  137.  
  138. nape-hacks::ForcedSleep
  139. Added inline docs, and sleepCompound method.
  140.  
  141. nape-symbolic::SymbolicConstraint
  142. Added inline docs, and effected changes required for naming changes on UserConstraint API.
  143.  
  144. Moved private data to a typical Nape inner object, with non-public API's moved to
  145. the typical nape zpp_inner package.
  146.  
  147. Geom:
  148. Modified distance method to return useful result in case that Shapes are
  149. interseting, returning the penetration distance and witness points whose difference
  150. forms the minimal translational vector to seperate the objects.
  151.  
  152. Added distanceBody method which performs an optimised search between two Bodies
  153. returning closest points (/minimal translation vector points if intersecting).
  154.  
  155. Added intersectsBody to generalise over intersects method.
  156.  
  157. Elastic contacts:
  158. Method of elastic contacts reconfigured. You will likely need to play around with
  159. Mateiral elasticities as behaviour will change as a result.
  160.  
  161. Continuous collision detection:
  162. A form of continuous collision detection has been added. This is continuous detection
  163. and not continuous physics. Objects are frozen at their time of impact and will have
  164. no further time simulated for them until the following step.
  165.  
  166. In practice this is perfectly acceptible, where it breaks down and what you should not
  167. do is have groups of bullet enabled dynamic bodies interacting together as you will
  168. get visual stalling.
  169.  
  170. Continuous collisions always occur with static and kinematic objects.
  171.  
  172. Tunnelling should be rare, less so with kinematic objects as no continuos collisions
  173. occur during positional error resolvement which means that if an object is forced to
  174. move a large distance due to overlapping of objects it may tunnel (This is more often
  175. the case with a fast moving kinematic as the continuos collision is resolved in this
  176. case primarily with positional error resolvement, but kinematics normally cause
  177. tunneling though 'forcing' objects into one another anyways).
  178.  
  179. Continous 'colisions' also work for sensor interactions, so you can receive a pre event
  180. or begin event due to a body flying all the way through a sensor in a single update.
  181.  
  182. END events will be delayed until the following step however in such a case.
  183.  
  184. To the Space object, added methods convexCast and convexMultiCast as 'extensions'
  185. of rayCast/rayMultiCast using a Shape and body integration for the cast instead of
  186. a linear ray.
  187.  
  188.  
  189.  
  190.  
  191. TODO:
  192. Have Shape angDrag mutable?
  193.  
  194. Consider once more moving geometric utilities to a module? (unlikely)
  195.  
  196. Fix FluidArbiter impulse queries. I fixed them not being reversed based on input body, but with a body supplied it does not compute 'effective' impulse.
  197.  
  198. Add isSensor property to Shape's and modify order of interaction types so that Sensor comes first before Fluid then
  199. Collision. This is a big breaking change but definately should be made.
  200.  
  201. Add sweeps to Geom.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement