BIS fnc transformVectorDirAndUp: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "<code>([^<]*)\[\[[^|]+\| *([a-zA-Z= _]+) *\]\]([^<]*)<\/code>" to "<code>$1$2$3</code>")
m (Some wiki formatting)
Line 6: Line 6:
|gr1= Vectors
|gr1= Vectors


|descr= Rotates both [[vectorDir]] and [[vectorUp]] on 3 axes: z (yaw), x (pitch) and y (roll). Positive angle direction is according to the {{Wikipedia|Right-hand_rule|right hand rule}}.
|descr= [[Image:transformVectorUpAndDir.jpg|300px|right]]
Rotates both [[vectorDir]] and [[vectorUp]] on 3 axes: z (yaw), x (pitch) and y (roll). Positive angle direction is according to the {{Wikipedia|Right-hand_rule|right hand rule}}.
{{Feature|Informative| The vectors are rotated first on '''z''' axis then on '''x''' axis then on '''y''' axis. For example standard [[0,1,0],[0,0,1]] pair rotated 90 degrees on every axis will result in [[0,0,1],[0,-1,0]]}}
{{Feature|Informative| The vectors are rotated first on '''z''' axis then on '''x''' axis then on '''y''' axis. For example standard [[0,1,0],[0,0,1]] pair rotated 90 degrees on every axis will result in [[0,0,1],[0,-1,0]]}}
[[Image:transformVectorUpAndDir.jpg|300px]]


|s1= [vectorDirAndUp, yaw, pitch, roll] call [[BIS_fnc_transformVectorDirAndUp]]
|s1= [vectorDirAndUp, yaw, pitch, roll] call [[BIS_fnc_transformVectorDirAndUp]]


|p1=[vectorDirAndUp, yaw, pitch, roll]: [[Array]]
|p1= vectorDirAndUp: [[Array]] in format [vectorDir, vectorUp] -(Optional, default [[0,1,0],[0,0,1]])


|p2= vectorDirAndUp (Optional): [[Array]] in format [vectorDir, vectorUp]. Default: [[0,1,0],[0,0,1]]
|p2= yaw: [[Number]] - (Optional, default 0) yaw angle


|p3= yaw (Optional): [[Number]] - yaw angle. Default: 0
|p3= pitch: [[Number]] - (Optional, default 0) pitch angle


|p4= pitch (Optional): [[Number]] - pitch angle. Default: 0
|p4= roll: [[Number]] - (Optional, default 0) roll angle
 
|p5= roll (Optional): [[Number]] - roll angle. Default: 0


|r1= [[Array]] in format [vectorDir, vectorUp]
|r1= [[Array]] in format [vectorDir, vectorUp]


|x1= <code>[[private]] _vDirUp = <nowiki>[[</nowiki>[[vectorDirVisual]] uav, [[vectorUpVisual]] uav], 0, 0, 90] [[call]] [[BIS_fnc_transformVectorDirAndUp]];</code>
|x1= <sqf>private _vDirUp = [[vectorDirVisual uav, vectorUpVisual uav], 0, 0, 90] call BIS_fnc_transformVectorDirAndUp;</sqf>


|x2= Create UAV object and make it pitch with mouse up/down and roll with mouse left/right:
|x2= Create UAV object and make it pitch with mouse up/down and roll with mouse left/right:
<code>uav = "B_UAV_05_F" _this _this [[select]] 1
<sqf>
]  
uav = "B_UAV_05_F" createVehicle [0,0,0];
[[call]] [[BIS_fnc_transformVectorDirAndUp]]
uav attachTo [player, [0,30,10]];
findDisplay 46 displayAddEventHandler ["MouseMoving",
{
uav setVectorDirAndUp
(
[
[vectorDirVisual uav, vectorUpVisual uav],
getDirVisual uav,
_this select 2,
_this select 1
]
call BIS_fnc_transformVectorDirAndUp
);
);
}];</code>
}];
</sqf>


|seealso= [[vectorDir]] [[vectorUp]] [[setVectorDirAndUp]]
|seealso= [[vectorDir]] [[vectorUp]] [[setVectorDirAndUp]]
}}
}}

Revision as of 16:46, 13 July 2022

Hover & click on the images for description

Description

Description:
transformVectorUpAndDir.jpg

Rotates both vectorDir and vectorUp on 3 axes: z (yaw), x (pitch) and y (roll). Positive angle direction is according to the right hand rule.

The vectors are rotated first on z axis then on x axis then on y axis. For example standard [[0,1,0],[0,0,1]] pair rotated 90 degrees on every axis will result in [[0,0,1],[0,-1,0]]
Execution:
call
Groups:
Vectors

Syntax

Syntax:
[vectorDirAndUp, yaw, pitch, roll] call BIS_fnc_transformVectorDirAndUp
Parameters:
vectorDirAndUp: Array in format [vectorDir, vectorUp] -(Optional, default [[0,1,0],[0,0,1]])
yaw: Number - (Optional, default 0) yaw angle
pitch: Number - (Optional, default 0) pitch angle
roll: Number - (Optional, default 0) roll angle
Return Value:
Array in format [vectorDir, vectorUp]

Examples

Example 1:
private _vDirUp = [[vectorDirVisual uav, vectorUpVisual uav], 0, 0, 90] call BIS_fnc_transformVectorDirAndUp;
Example 2:
Create UAV object and make it pitch with mouse up/down and roll with mouse left/right:
uav = "B_UAV_05_F" createVehicle [0,0,0]; uav attachTo [player, [0,30,10]]; findDisplay 46 displayAddEventHandler ["MouseMoving", { uav setVectorDirAndUp ( [ [vectorDirVisual uav, vectorUpVisual uav], getDirVisual uav, _this select 2, _this select 1 ] call BIS_fnc_transformVectorDirAndUp ); }];

Additional Information

See also:
vectorDir vectorUp setVectorDirAndUp

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