~~Title: Efl.Gfx.Mapping.perspective_3d~~ ====== Efl.Gfx.Mapping.perspective_3d ====== ===== Description ===== %%Apply a perspective transform to the map%% %%This applies a given perspective (3D) to the map coordinates. X, Y and Z values are used. The px and py points specify the "infinite distance" point in the 3D conversion (where all lines converge to like when artists draw 3D by hand). The %%''z0''%% value specifies the z value at which there is a 1:1 mapping between spatial coordinates and screen coordinates. Any points on this z value will not have their X and Y values modified in the transform. Those further away (Z value higher) will shrink into the distance, and those under this value will expand and become bigger. The %%''foc''%% value determines the "focal length" of the camera. This is in reality the distance between the camera lens plane itself (at or closer than this rendering results are undefined) and the "z0" z value. This allows for some "depth" control and %%''foc''%% must be greater than 0.%% %%The coordinates are set relative to the given %%''pivot''%% object. If its geometry changes, then the absolute position of the rotation center will change accordingly. The Z position is absolute. If the %%''pivot''%% is %%''null''%% then this object will be its own pivot.%% //Since 1.22// {{page>:develop:api-include:efl:gfx:mapping:method:perspective_3d:description&nouser&nolink&nodate}} ===== Signature ===== perspective_3d { params { @in pivot: const(Efl.Gfx.Entity); @in px: double; @in py: double; @in z0: double; @in foc: double; } } ===== C signature ===== void efl_gfx_mapping_perspective_3d(Eo *obj, const Efl_Gfx_Entity *pivot, double px, double py, double z0, double foc); ===== Parameters ===== * **pivot** //(in)// - %%A pivot object for the infinite point, can be %%''null''%%.%% * **px** //(in)// - %%The perspective distance X relative coordinate.%% * **py** //(in)// - %%The perspective distance Y relative coordinate.%% * **z0** //(in)// - %%The "0" Z plane value.%% * **foc** //(in)// - %%The focal distance, must be greater than 0.%% ===== Implemented by ===== * [[:develop:api:efl:gfx:mapping:method:perspective_3d|Efl.Gfx.Mapping.perspective_3d]]