<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <html><head><title>OpenRM - RMAUX Library (rmarcball.c)</title></head> <body bgcolor=white fgcolor=black> <table width="100%" border=2 cellspacing=0 cellpadding=0 bgcolor="khaki" valign="center"> <th><img src="./images/ormsg.gif"> </th> </table> <spacer type=vertical size=15> <h2>Index of OpenRM - RMAUX Library</h2> <spacer type=vertical size=15> <a name="rmauxArcBall"> <pre><b> void rmauxArcBall (float *x1, float *y1, float *x2, float *y2, RMmatrix *result) </b></pre> <pre> float *x1, *y1 - pointers to floating point values in the range (-1..1). These values define a pixel coordinate position within the viewport (NDC). This point is the starting point for when computing a rotation. (input) float *x2, *y2 - pointers to floating point values in the range (-1..1). These values define a pixel coordinate position within the viewport (NDC). This point is the ending point for computing a rotation. (input) RMmatrix *result - pointer to an RMmatrix (result). The rotation matrix computed by rmauxArcBall is copied into this return parameter. </pre> <menu><P> The virtual arcball interface implements a rotation model such that changes about the horizontal axis map to X-axis rotations (roughly) and changes about the vertical axis map (roughly) to Y-axis rotations. </P> <P> The points (x1,y1) and (x2,y2) are projected onto the surface of a sphere, then a quaternion (the result of this routine) is computed that reflects a rotation from point (x1,y1) to point (x2,y2) along a great-arc path on the surface of a sphere. </P> <P> The rotation matrix computed from (x1,y1) and (x2,y2) is copied into the RMmatrix parameter "return". </P></menu> <i>librmaux library source file: rmarcball.c </i><hr width="75%"> <a name="rmauxDolly"> <pre><b> void rmauxDolly (RMcamera3D *toModify, float *x1, float *y1, float *x2, float *y2) </b></pre> <pre> RMcamera3D *toModify - a handle to an RMcamera3D. the eye point of the RMcamera3D is modified by this routine (modified). float *x1, *y1 - pointers to floating point values in the range (-1..1). These values define a pixel coordinate position within the viewport (NDC). This point is the starting point for computing the dolly translation. (input) float *x2, *y2 - pointers to floating point values in the range (-1..1). These values define a pixel coordinate position within the viewport (NDC). This point is the ending point for computing the dolly translation. (input) </pre> <menu><P> The virtual dolly interface implements a camera dollying motion such that changes in the vertical directions exponentially control the camera dolly translation. Positive motions up dolly the camera towards the look-at and negative motions down dolly the camera away from the camera look-at. </P> <P> This routine modifies the eye point of the toModify RMcamera3D parameter. </P></menu> <i>librmaux library source file: rmarcball.c </i><hr width="75%"> <a name="rmauxTranslate"> <pre><b> void rmauxTranslate (RMcamera3D *toModify, float *x1, float *y1, float *x2, float *y2) </b></pre> <pre> RMcamera3D *toModify - a handle to an RMcamera3D object (modified). The eye and look-at points of this parameter are modified by this routine. float *x1, *y1 - pointers to floating point values in the range (-1..1). These values define a pixel coordinate position within the viewport (NDC). This point is the starting point for computing the image plane translation. (input) float *x2, *y2 - pointers to floating point values in the range (-1..1). These values define a pixel coordinate position within the viewport (NDC). This point is the ending point for computing the image plane translation. (input) </pre> <menu><P> The virtual image plane translation implements a translation motion in the image plane of the camera. Motions in the window correspond directly to the image plane translation applied to the camera eye and look-at points. </P> <P> This routine will modify the eye and look-at points of the input RMcamera3D object. </P></menu> <i>librmaux library source file: rmarcball.c </i><hr width="75%"> </body></html>