2.2.4.17.33 GraphLayer::RescaleRescale
Description
It rescales the graphic layer axes to show all dataplot points that may be outside the current axis ranges.
Syntax
BOOL Rescale( DWORD dwCntrl = 0, int * lpnOutcome = NULL )
Parameters
- dwCntrl
- [input] bits to control the rescale options, ANL_* in oc_const.h. You can use OKAXISTYPE_X, OKAXISTYPE_Y to prevent that axis direction to be changed, and there are many other bits that control other details.
enum
{
ANL_FIT = 0x00000010, // fit data to layer
ANL_NO_ROUNDING = 0x00000020, // do not round From/To to major ticks
ANL_OVERIDE_FIX = 0x00000040,
ANL_AFTER_ZOOM = 0x00000080,
ANL_NO_EXPAND= 0x00000100,// no X expand
ANL_NO_YMIN_EXPAND = 0x00000200, // no Y min expand
ANL_NO_YMAX_EXPAND = 0x00000400, // no Y max expand
ANL_NO_Y_EXPAND = ANL_NO_YMIN_EXPAND | ANL_NO_YMAX_EXPAND,
ANL_NO_INIT_LIMITS = 0x00000800,
ANL_FROM_NEW_PLOT = 0x00001000,
ANL_CHK_EXPAND_SCALE = 0x00002000, // expand according to parent layer's scale
ANL_CHECK_TYPE = 0x00004000,
ANL_XY_FIT_NO_EXPAND = 0x00008000, // fit X and Y scale to data
ANL_FIT_TO_MAJOR_TICK = 0x00010000,
ANL_NO_UPDATE = 0x00020000,
ANL_REAL_TIME = 0x00040000,
ANL_NO_XINC_CHANGE = 0x00080000, // keep X increment value
ANL_USE_DATA_IN_XRANGE= 0x00100000, // only rescale for data in X range
ANL_NEW_1ST_PLOT = 0x00200000,
ANL_NO_YINC_CHANGE = 0x00400000, // keep Y increment value
ANL_INDIVIDUAL_SCALE = 0x00800000,
ANL_UNDO = 0x01000000,
ANL_NO_INC_CHANGE = 0x02000000, // keep Y increment value
ANL_KEEP_MISSING = 0x04000000,
ANL_ASK_OVERRIDE_FIXED_SCALE = 0x08000000,
ANL_RUN_LT_SIZEMOVE = 0x10000000, // execute GRCT_MOVE script after rescale
ANL_CHK_DATA_OUTSIDE = 0x20000000, //rescale if data outside
ANL_ALL_LINKED_LAYERS_IN_FAMILY = 0x40000000, // rescale all linked layers
ANL_AXIS_REVERSED = 0x80000000
};
- lpnOutcome
- [output] indicate if rescale has actually taken place, -1 if not due to ANL_CHK_DATA_OUTSIDE is specified but no data significantly outside
Return
TRUE if OK, otherwise FALSE.
Examples
EX1
// rescale the active graph layer by controlling to rescale X or Y only, or rescale both
void GraphLayer_Rescale_ex1(int nDirection) //0 = both XY, 1 = X only, 2 = Y only
{
GraphLayer gl = Project.ActiveLayer();
DWORD dwCntrl = ANL_NO_ROUNDING; //do not round From/To to major ticks
if(1 == nDirection)
dwCntrl |= OKAXISTYPE_Y;//prevent Y to be modified
else if(2 == nDirection)
dwCntrl |= OKAXISTYPE_X;//prevent X to be modified
gl.Rescale(dwCntrl);
}
Remark
See Also
Header to Include
origin.h
|