Basic
Interface to Alias snapping functions
Synopsis
#include <AlSnap.h>
class AlSnap
static statusCode toGrid( Screencoord x, Screencoord y, double worldPos[3], AlWindow* window = NULL );
static statusCode toCV( Screencoord x, Screencoord y, AlObject* &obj, AlWindow *window = NULL );
static statusCode toCurve( Screencoord x, Screencoord y, AlObject* &obj, double &curveParam, AlWindow *window = NULL );
static int snappingTo( void );
Description
This class contains various
utility functions for doing snapping. You can snap to grids, CVs
and curves. When using the toGrid function, the world position returned
would be used to translate the object to the correct location.
For the CV and curve functions, the world position of the AlObject
returned would be used to translate the object to the correct location.
The function snappingTo returns either kSnapGrid, kSnapCurve or
kSnapCV based on what buttons have been set in the application.
statusCode AlSnap::toGrid(
Screencoord x, Screencoord y, double worldPos[3], AlWindow* window
)
Description
Snaps
a point on the screen to the closest grid intersection. Returns
world space coordinates for the closest grid intersection to the
specified cursor position.
The grid size is set
using the meshSize method in AlWindow.
Arguments
< x, y - the screen
position to test
> worldPos - the returned
snapped world position
< window - the window
to snap it to. Specify NULL to snap to the current window.
Return Codes
sSuccess - everything
okay
sObjectNotFound - there
was no point in range to snap to
sFailure - snapping failed
sInvalidArgument - the
window was invalid (if given)
statusCode AlSnap::toCV(
Screencoord x, Screencoord y, AlObject* &obj, AlWindow *window
)
Description
Snaps a point on the screen to the closest curve,
surface, or CurveOnSurface CV.
Arguments
< x, y - the screen
position to test
> *obj - the returned
snapped object
< window - the window
to snap it to. Specify NULL to snap to the current window.
Return Codes
sSuccess - everything
okay
sObjectNotFound - there
was no point in range to snap to
sInsufficientMemory -
not enough memory available
sFailure - could not
complete request.
statusCode AlSnap::toCurve(
Screencoord x, Screencoord y, AlObject* &obj, double &curveParam,
AlWindow *window )
Description
Snaps a point on the screen to the
closest curve intersection.
Arguments
< x, y - the screen
position to test
> *obj - the returned
snapped object
> curveParam - the
parameter position on the curve
< window - the window
to snap it to. Specify NULL to snap to the current window.
Return Codes
sSuccess - everything
okay
sObjectNotFound - there
was no point in range to snap to
sInsufficientMemory -
not enough memory available
sFailure - could not
complete request
int AlSnap::snappingTo(
void )
Description
Returns
the snap setting currently selected within the application.
Return Codes
kSnapGrid - Alias has
grid snapping on
kSnapCV - Alias has
CV snapping on
kSnapCurve- Alias has
curve snapping on
NOTE: return values will
be OR’ed together if more than one of the snapping functions is
on.