State Query
Availability LightWave 6.0 | Component Modeler | Header lwmodeler.h
This global provides a set of functions that return information about the current modeling environment.
Global Call
LWStateQueryFuncs *query; query = global( LWSTATEQUERYFUNCS_GLOBAL, GFUSE_TRANSIENT );
The global function returns a pointer to an LWStateQueryFuncs.
typedef struct st_LWStateQueryFuncs { int (*numLayers) (void); unsigned int (*layerMask) (EltOpLayer); const char * (*surface) (void); unsigned int (*bbox) (EltOpLayer, double *minmax); const char * (*layerList) (EltOpLayer, const char *); const char * (*object) (void); int (*mode) (int); const char * (*vmap) (int, LWID *); } LWStateQueryFuncs;
nlayers = numLayers()
- Returns the number of data layers for the current object.
mask = layerMask( oplayer )
- Returns bits for the data layers included in the EltOpLayer
selection. If bit i of the mask is set, then layer i + 1 of the current
object belongs to the set defined by the
oplayer
argument. This function is provided primarily for backward compatibility. New code should use thelayerList
function, which is designed for multiple objects and an unlimited number of layers. surfname = surface()
- Returns the name of the current default surface.
npoints = bbox( oplayer, box )
- Returns the number of points in the layer selection. If
box
isn't NULL, it is an array of six doubles that will receive the bounding box of the points in the layer selection, in the order (x0, x1, y0, y1, z0, z1). layers = layerList( oplayer, objname )
- Returns a string containing layer numbers for the given EltOpLayer and object. The layer numbers in the string are separated by spaces, with the highest numbered layer listed first. The object name is its filename, or NULL for the current object.
objname = object()
- Returns the filename of the current object. If the geometry in the current layers hasn't
been saved to a file yet, this returns the reference name (the name that would be returned
by the Object Functions
refName
function). If no object has been loaded into Modeler, this returns NULL. m = mode( setting )
- Returns the state of a user interface setting. The setting codes are
LWM_MODE_SELECTION
- Returns the selection mode (points, polygons, volume) as an integer.
LWM_MODE_SYMMETRY
- Returns the state of the symmetry toggle.
vmapname = vmap( index, lwid )
- Returns the name of the currently selected vertex map, and stores the
LWID
of the vmap in the second argument. The index can be one of the following.LWM_VMAP_WEIGHT LWM_VMAP_TEXTURE LWM_VMAP_MORPH
Example
This code fragment exercises the query functions.
#include <lwserver.h> #include <lwmodeler.h> LWStateQueryFuncs *query; double box[ 6 ]; char *surfname, *layers, *objname; int nlayers, npoints; query = global( LWSTATEQUERYFUNCS_GLOBAL, GFUSE_TRANSIENT ); if ( !query ) return AFUNC_BADGLOBAL; nlayers = query->numLayers(); npoints = query->bbox( OPLYR_PRIMARY, box ); surfname = query->surface(); objname = query->object(); layers = query->layerList( OPLYR_FG, objname );