'From SqueakNihongo6.1 of 17 April 2004 [latest update: #0] on 15 September 2004 at 8:17:05 pm'! ODE subclass: #ODEBody instanceVariableNames: 'joints position rotation linearVel angularVel massSphere finiteRotationAxis properties ' classVariableNames: '' poolDictionaries: '' category: 'ODE-Base'! !ODEBody methodsFor: 'accessing' stamp: 'sumim 9/15/2004 19:45'! addForce2D: aPoint ^ Mutex critical: [ id ifNil: [^ self]. Driver primitiveDBodyAddForce: id with: aPoint x asFloat with: aPoint y asFloat with: 0.0]! ! !ODEBody methodsFor: 'accessing' stamp: 'sumim 9/13/2004 22:21'! addForce: force ^ Mutex critical: [ id ifNil: [^ self]. Driver primitiveDBodyAddForce: id with: (force first asFloat) with: (force second asFloat) with: (force size > 2 ifTrue: [force third asFloat] ifFalse: [0.0])]! ! !ODEBody methodsFor: 'accessing' stamp: 'sumim 9/13/2004 22:22'! addForce: force at: pos ^ Mutex critical: [ id ifNil: [^ self]. Driver primitiveDBodyAddForceAtRelPos: id with: (force first asFloat) with: (force second asFloat) with: (force size = 3 ifTrue: [force third asFloat] ifFalse: [0.0]) with: (pos first asFloat) with: (pos second asFloat) with: (pos size = 3 ifTrue: [pos third asFloat] ifFalse: [0.0])]! ! !ODEForceFieldMorph methodsFor: 'accessing' stamp: 'sumim 9/13/2004 23:01'! setHeading: aMorph to: degree "| m | m _ aMorph renderedMorph. (m class = EllipseMorph and: [m width = m height]) ifTrue: [^ self]." aMorph heading: degree! !