GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
al_transform_coordinates_3d_projective(3) al_transform_coordinates_3d_projective(3)

al_transform_coordinates_3d_projective - Allegro 5 API


#include <allegro5/allegro.h>
void al_transform_coordinates_3d_projective(const ALLEGRO_TRANSFORM *trans,
   float *x, float *y, float *z)

    

Transform x, y, z as homogeneous coordinates. This is the same as using al_transform_coordinates_4d(3) with the w coordinate set to 1, then dividing x, y, z by the resulting w. This will provide the same normalized coordinates Allegro will draw to when a projective transform is in effect as set with al_use_projection_transform(3). To get the actual pixel coordinates from those translate and scale like so (w and h would be the pixel dimensions of the target bitmap):

x = w / 2 + x * w / 2
y = h / 2 - y * h / 2

    

Parameters:

trans - Transformation to use
x, y, z - Pointers to the coordinates

Example:


ALLEGRO_TRANSFORM t2;
al_copy_transform(&t2, al_get_current_transform());
al_compose_transform(&t2, al_get_current_projection_transform());
ALLEGRO_TRANSFORM t3;
al_identity_transform(&t3);
al_scale_transform(&t3, 0.5, -0.5);
al_translate_transform(&t3, 0.5, 0.5);
al_scale_transform(&t3, al_get_bitmap_width(al_get_target_bitmap()),
                   al_get_bitmap_height(al_get_target_bitmap()));
al_transform_coordinates_3d_projective(&t2, &x, &y, &z);
// x, y now contain normalized coordinates
al_transform_coordinates(&t3, &x, &y);
// x, y now contain pixel coordinates

    

Since 5.2.4

al_use_transform(3), al_transform_coordinates(3), al_transform_coordinates_3d(3), al_use_projection_transform(3)
Allegro reference manual

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.