positionCameraToWorld: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
(description updated)
Line 7: Line 7:
____________________________________________________________________________________________
____________________________________________________________________________________________


| Transform position from camera coordinate space to world coordinate space. |= Description
|[[File:PositionCameraToWorld.jpg|right|120x120px]]Transforms position from camera coordinate space to world coordinate space.
 
Camera axes are relative to camera orientation. x axis goes from left of the camera to right of the camera, z axis goes from underneath the camera to above the camera and y axis goes from back of the camera to where the camera is looking. |= Description
____________________________________________________________________________________________
____________________________________________________________________________________________


| [[Array]] <nowiki>=</nowiki> '''positionCameraToWorld''' position |= Syntax
| worldPos <nowiki>=</nowiki> '''positionCameraToWorld''' cameraPos |= Syntax


|p1= position: [[Array]] - format [[Position]] |= Parameter 1
|p1= cameraPos: [[Array]] - Relative camera position, format [x, z, y]  


| [[Array]] |= Return value
'''NOTE''': y and z are swapped around, different from your usual model space coordinates format |= Parameter 1
 
| worldPos: [[Array]] - Camera world position, format [[Position]] |= Return value
____________________________________________________________________________________________
____________________________________________________________________________________________
   
   
|x1= <pre>_worldPos = positionCameraToWorld _cameraPos</pre> |= Example 1
|x1= <code>_worldPos = [[positionCameraToWorld]] _cameraPos;</code> |= Example 1
 
|x2= Example demonstrating reversed y and z:<code>[[player]] [[setDir]] 0; //assuming player is looking forward
[[hint]] [[str]] <nowiki>[</nowiki>[[positionCameraToWorld]] [0,0,0], [[positionCameraToWorld]] [0,0,1]];
//[[2481.35,567'''1'''.21,1.51395],[2481.35,567'''2'''.21,1.46955]]
</code> |= Example 2
____________________________________________________________________________________________
____________________________________________________________________________________________


Line 35: Line 44:




The camera coordinate system is different from the model coordinate system: when [[modelToWorld]] uses [x, z, y] then positionCameraToWorld uses [x, y, z]. So for a steady camera the following is true:
The camera coordinate system is different from the model coordinate system: when [[modelToWorld]] uses [x, y, z] then positionCameraToWorld uses [x, z, y]. So for a steady camera the following is true:


  positionCameraToWorld [5,10,15] == _camera modelToWorld [5,15,10];
  positionCameraToWorld [5,10,15] == _camera modelToWorld [5,15,10];

Revision as of 19:21, 18 November 2013

-wrong parameter ("Arma") defined!-1.00
Hover & click on the images for description

Description

Description:
PositionCameraToWorld.jpg
Transforms position from camera coordinate space to world coordinate space. Camera axes are relative to camera orientation. x axis goes from left of the camera to right of the camera, z axis goes from underneath the camera to above the camera and y axis goes from back of the camera to where the camera is looking.
Groups:
Uncategorised

Syntax

Syntax:
worldPos = positionCameraToWorld cameraPos
Parameters:
cameraPos: Array - Relative camera position, format [x, z, y] NOTE: y and z are swapped around, different from your usual model space coordinates format
Return Value:
worldPos: Array - Camera world position, format Position

Examples

Example 1:
_worldPos = positionCameraToWorld _cameraPos;
Example 2:
Example demonstrating reversed y and z:player setDir 0; //assuming player is looking forward hint str [positionCameraToWorld [0,0,0], positionCameraToWorld [0,0,1]]; //[[2481.35,5671.21,1.51395],[2481.35,5672.21,1.46955]]

Additional Information

See also:
See also needed

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

Notes

Posted on October 17, 2008 - 11:25
Kronzky
By measuring the distance between the camera and the player one can determine whether 1st-person or 3rd-person view is being used:
if ((positionCameraToWorld [0,0,0] distance player)>2) then {hint "3rd person"} else {hint "1st person"}


The camera coordinate system is different from the model coordinate system: when modelToWorld uses [x, y, z] then positionCameraToWorld uses [x, z, y]. So for a steady camera the following is true:

positionCameraToWorld [5,10,15] == _camera modelToWorld [5,15,10];

--Worldeater 22:45, 17 October 2010 (CEST)

Bottom Section