addTorque: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - " *\| *([Cc]omments|COMMENTS|Game|[Gg]ame [Nn]ame|Game [Vv]ersion|Game Version \(number surrounded by NO SPACES\)|Multiplayer Arguments( \("local" or "global"\))?|Effects|Multiplayer Effects( \("local" or "global"\))?|Multiplayer Exe...)
m (Text replacement - "[[Image:" to "[[File:")
 
(29 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Command
{{RV|type=command
|arma3 |= Game
|game1= arma3
|1.72
|version1= 1.72
|arg= global
|arg= global
|eff= global
|eff= global


|gr1= Object Manipulation
|gr1= Object Manipulation
|Applies torque (rotation momentum) to the [[getCenterOfMass | center of mass]] of the given object. Torque force is defined as vector [x, y, z] applied in world space. If you need to define torque in model space, convert the torque vector first by [[vectorModelToWorld]] or [[vectorModelToWorldVisual]] command. The torque applied as impulse. Diagram below explain which way the object would rotate.  For more information see [http://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/apireference/files/classPxRigidBody.html#acb04ffc816d45afff2d04e93d7446e79 NVIDIA docs] <br>
 
[[Image:addTorque_correct.jpg|400px]]
|descr= [[File:addTorque_correct.jpg|400px|right]]
{{Informative | A single application of torque would produce one impulse, which may not be enough. In this case consider applying a series of continuous impulses, for example to make a quad bike to roll forward:
Applies torque (rotation momentum) to the [[getCenterOfMass | center of mass]] of the given object. Torque force is defined as vector [x, y, z] applied in world space. If you need to define torque in model space, convert the torque vector first by [[vectorModelToWorld]] or [[vectorModelToWorldVisual]] command. The torque applied as impulse. Diagram below explain which way the object would rotate.  For more information see {{Link|http://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/apireference/files/classPxRigidBody.html#acb04ffc816d45afff2d04e93d7446e79|NVIDIA docs}} <br>
<code>[[onEachFrame]] { quad [[addTorque]] (quad [[vectorModelToWorld]] [100,0,0]) }</code>}}
 
{{Important |This command doesn't follow convention for torque direction, which obeys right-hand rule. To comply, negate all values in the vector. }}
{{Feature|informative|
| object '''addTorque''' torque
A single application of torque would produce one impulse, which may not be enough. In this case consider applying a series of continuous impulses, for example to make a quad bike to roll forward:
<sqf>onEachFrame { quad addTorque (quad vectorModelToWorld [100,0,0]) };</sqf>
}}
{{Feature|important|This command doesn't follow convention for torque direction, which obeys right-hand rule. To comply, negate all values in the vector.}}
 
|s1= object [[addTorque]] torque
 
|p1= object: [[Object]] - PhysX object
|p1= object: [[Object]] - PhysX object
|p2= torque: [[Array]] - world vector in format [x,y,z]
|p2= torque: [[Array]] - world vector in format [x,y,z]
|p3=
 
|p4=
|r1= [[Nothing]]
|p5=
 
|p6=
| [[Nothing]]
|x1= Apply torque [1000,0,0] to object not factoring object positioning:
|x1= Apply torque [1000,0,0] to object not factoring object positioning:
<code>_wheel [[addTorque]] [1000,0,0];</code>
<sqf>_wheel addTorque [1000,0,0];</sqf>
 
|x2= Apply torque [1000,0,0] relative to object:
|x2= Apply torque [1000,0,0] relative to object:
<code>_wheel [[addTorque]] (_wheel [[vectorModelToWorld]] [1000,0,0]);</code>
<sqf>_wheel addTorque (_wheel vectorModelToWorld [1000,0,0]);</sqf>
|[[addForce]], [[vectorModelToWorld]], [[vectorModelToWorldVisual]]
 
|seealso= [[addForce]] [[awake]] [[isAwake]] [[vectorModelToWorld]] [[vectorModelToWorldVisual]] [[disableBrakes]] [[brakesDisabled]]
}}
}}
<dl class='command_description'>
<!-- BEGIN Note Section -->
<!-- For example:
<dd class='notedate'>Posted on Month Day, Year - Time (UTC)</dd>
<dt class='note'>'''[[User:User Name|User Name]]'''</dt>
<dd class='note'>This is an example note. It is true and verifiable, and contains a little code snippet.
<code>[[if]] ([[_this]] == anExample) [[then]] { [[hint]] Leave it here for others to read; };</code></dd>
-->
<!-- END Note Section -->
</dl>
<h3 style='display:none'>Bottom Section</h3>
<!-- Appropriate categories go here -->
{{GameCategory|arma3|Scripting Commands}}
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]

Latest revision as of 00:10, 21 November 2023

Hover & click on the images for description

Description

Description:
addTorque correct.jpg

Applies torque (rotation momentum) to the center of mass of the given object. Torque force is defined as vector [x, y, z] applied in world space. If you need to define torque in model space, convert the torque vector first by vectorModelToWorld or vectorModelToWorldVisual command. The torque applied as impulse. Diagram below explain which way the object would rotate. For more information see NVIDIA docs

A single application of torque would produce one impulse, which may not be enough. In this case consider applying a series of continuous impulses, for example to make a quad bike to roll forward:
onEachFrame { quad addTorque (quad vectorModelToWorld [100,0,0]) };
This command doesn't follow convention for torque direction, which obeys right-hand rule. To comply, negate all values in the vector.
Groups:
Object Manipulation

Syntax

Syntax:
object addTorque torque
Parameters:
object: Object - PhysX object
torque: Array - world vector in format [x,y,z]
Return Value:
Nothing

Examples

Example 1:
Apply torque [1000,0,0] to object not factoring object positioning:
_wheel addTorque [1000,0,0];
Example 2:
Apply torque [1000,0,0] relative to object:
_wheel addTorque (_wheel vectorModelToWorld [1000,0,0]);

Additional Information

See also:
addForce awake isAwake vectorModelToWorld vectorModelToWorldVisual disableBrakes brakesDisabled

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note