|
GLG Toolkit, C / C++ API Library
Version 4.5
|
This group contains functions for converting coordinate values between the screen and GLG world coordinate systems. More...
This group contains functions for converting coordinate values between the screen and GLG world coordinate systems.
It also contains functions for handling Matrix objects used by the Toolkit to perform geometrical transformations.
Functions | |
| GlgObject | GlgCreateInversedMatrix (GlgObject matrix) |
| Inverts a matrix object. More... | |
| GlgObject | GlgGetDrawingMatrix (GlgObject object) |
| ADVANCED: Returns transformation matrix used to draw the object. More... | |
| void | GlgGetMatrixData (GlgObject matrix, GlgMatrixData *matrix_data) |
| ADVANCED: Queries matrix coefficients. More... | |
| GlgBoolean | GlgRootToScreenCoord (GlgObject viewport, GlgPoint2 *point) |
| Converts screen coordinates relative to the root window to the screen coordinates in the specified viewport. More... | |
| GlgBoolean | GlgScreenToWorld (GlgObject object, GlgBoolean inside_vp, GlgPoint *in_point, GlgPoint *out_point) |
| Converts a point's screen coordinates to the GLG world coordinate system. More... | |
| void | GlgSetMatrixData (GlgObject matrix, GlgMatrixData *matrix_data) |
| ADVANCED: Sets matrix coefficients. More... | |
| void | GlgTransformPoint (GlgObject matrix, GlgPoint *in_point, GlgPoint *out_point) |
| Transforms a single point. More... | |
| GlgBoolean | GlgTranslatePointOrigin (GlgObject from_viewport, GlgObject to_viewport, GlgPoint *point) |
| Converts screen coordinates of a point in one viewport to the screen coordinates of another viewport. More... | |
| GlgBoolean | GlgWorldToScreen (GlgObject object, GlgBoolean inside_vp, GlgPoint *in_point, GlgPoint *out_point) |
| Converts a point's coordinates from the GLG world coordinate system to the screen coordinate system. More... | |
Inverts a matrix object.
| matrix | The matrix to be inverted. |
This function may be used to invert the drawing transformation obtained using GlgGetDrawingMatrix. While the drawing transformation converts world to screen coordinates, the inverse of it may be used to convert the screen coordinates of objects and object bounding boxes back to world coordinates.
ADVANCED: Returns transformation matrix used to draw the object.
| object | The object to query. |
Transformation matrices are only used for geometric transformations, so this function may be called only for graphical objects, like polygons, arcs and text objects. This function must be called after the object has been drawn. (That is, after its hierarchy has been set up.)
The function returns the internal matrix object which is valid only immediately after the function call. The matrix should not be modified or destroyed. To prevent the matrix from being destroyed, you may reference it with GlgReferenceObject (and dereference later with GlgDropObject), or, even better, create a copy of it to prevent the matrix from being modified.
Querying the drawing matrix of a viewport returns the drawing matrix used to position the viewport's control points, and not the matrix used to render the objects inside it. To get the drawing matrix the viewport uses to draw objects inside it, query the drawing list of the viewport (the Array resource of the viewport) and use it as a parameter of the GlgGetDrawingMatrix function.
| void GlgGetMatrixData | ( | GlgObject | matrix, |
| GlgMatrixData * | matrix_data | ||
| ) |
ADVANCED: Queries matrix coefficients.
| matrix | The matrix object to query. |
| matrix_data | The structure that will receive the returned matrix coefficients. |
See GlgMatrixData for details.
| GlgBoolean GlgRootToScreenCoord | ( | GlgObject | viewport, |
| GlgPoint2 * | point | ||
| ) |
Converts screen coordinates relative to the root window to the screen coordinates in the specified viewport.
| viewport | The viewport whose screen coordinate system to convert to. |
| point | The point to be converted. The result is placed back into the structure pointed by this pointer. |
The viewport's hierarchy must be set up to use this function.
| GlgBoolean GlgScreenToWorld | ( | GlgObject | object, |
| GlgBoolean | inside_vp, | ||
| GlgPoint * | in_point, | ||
| GlgPoint * | out_point | ||
| ) |
Converts a point's screen coordinates to the GLG world coordinate system.
| object | The object whose world coordinate system to convert to. The world coordinate system of an object includes the effect of all drawing transformations attached to the object and all its parents. |
| inside_vp | If object is a viewport or a light viewport, inside_vp specifies which world coordinate system to use:
|
| in_point | The point to be converted. |
| out_point | The point structure that will receive converted world coordinates. |
The object's hierarchy must be set up to use this function.
When converting the cursor position to world coordinates, add GLG_COORD_MAPPING_ADJ to the cursor's X and Y screen coordinates for precise mapping.
| void GlgSetMatrixData | ( | GlgObject | matrix, |
| GlgMatrixData * | matrix_data | ||
| ) |
ADVANCED: Sets matrix coefficients.
| matrix | The matrix object. |
| matrix_data | The new matrix's coefficients. |
See GlgMatrixData for details.
Transforms a single point.
| matrix | The matrix to be applied to the input point. |
| in_point | The input point to be transformed. |
| out_point | The transformed point. |
This function applies the given transformation matrix to the in_point parameter, and returns the result in out_point.
| GlgBoolean GlgTranslatePointOrigin | ( | GlgObject | from_viewport, |
| GlgObject | to_viewport, | ||
| GlgPoint * | point | ||
| ) |
Converts screen coordinates of a point in one viewport to the screen coordinates of another viewport.
| from_viewport | The viewport in which the point's screen coordinates are defined. |
| to_viewport | The viewport whose screen coordinate system to convert to. |
| point | The point to be converted. The result is placed back into the structure pointed by this pointer. |
The objects's hierarchy must be set up to use this function.
| GlgBoolean GlgWorldToScreen | ( | GlgObject | object, |
| GlgBoolean | inside_vp, | ||
| GlgPoint * | in_point, | ||
| GlgPoint * | out_point | ||
| ) |
Converts a point's coordinates from the GLG world coordinate system to the screen coordinate system.
| object | The object whose world coordinate system to convert from. The world coordinate system of an object includes the effect of all drawing transformations attached to the object and all its parents. |
| inside_vp | If object is a viewport or a light viewport, inside_vp specifies which world coordinate system to use:
The value of this parameter is ignored for objects other than a viewport or light viewport. |
| in_point | The point to be converted. |
| out_point | The point structure that will receive converted screen coordinates. |
The object's hierarchy must be set up to use this function.