Lines Matching refs:axis
27 PetscErrorCode PetscDrawAxisCreate(PetscDraw draw, PetscDrawAxis *axis) in PetscDrawAxisCreate() argument
33 PetscAssertPointer(axis, 2); in PetscDrawAxisCreate()
48 *axis = ad; in PetscDrawAxisCreate()
64 PetscErrorCode PetscDrawAxisDestroy(PetscDrawAxis *axis) in PetscDrawAxisDestroy() argument
67 if (!*axis) PetscFunctionReturn(PETSC_SUCCESS); in PetscDrawAxisDestroy()
68 PetscValidHeaderSpecific(*axis, PETSC_DRAWAXIS_CLASSID, 1); in PetscDrawAxisDestroy()
69 if (--((PetscObject)*axis)->refct > 0) { in PetscDrawAxisDestroy()
70 *axis = NULL; in PetscDrawAxisDestroy()
74 PetscCall(PetscFree((*axis)->toplabel)); in PetscDrawAxisDestroy()
75 PetscCall(PetscFree((*axis)->xlabel)); in PetscDrawAxisDestroy()
76 PetscCall(PetscFree((*axis)->ylabel)); in PetscDrawAxisDestroy()
77 PetscCall(PetscDrawDestroy(&(*axis)->win)); in PetscDrawAxisDestroy()
78 PetscCall(PetscHeaderDestroy(axis)); in PetscDrawAxisDestroy()
98 PetscErrorCode PetscDrawAxisSetColors(PetscDrawAxis axis, int ac, int tc, int cc) in PetscDrawAxisSetColors() argument
101 PetscValidHeaderSpecific(axis, PETSC_DRAWAXIS_CLASSID, 1); in PetscDrawAxisSetColors()
102 PetscValidLogicalCollectiveInt(axis, ac, 2); in PetscDrawAxisSetColors()
103 PetscValidLogicalCollectiveInt(axis, tc, 3); in PetscDrawAxisSetColors()
104 PetscValidLogicalCollectiveInt(axis, cc, 4); in PetscDrawAxisSetColors()
105 axis->ac = ac; in PetscDrawAxisSetColors()
106 axis->tc = tc; in PetscDrawAxisSetColors()
107 axis->cc = cc; in PetscDrawAxisSetColors()
131 PetscErrorCode PetscDrawAxisSetLabels(PetscDrawAxis axis, const char top[], const char xlabel[], co… in PetscDrawAxisSetLabels() argument
134 PetscValidHeaderSpecific(axis, PETSC_DRAWAXIS_CLASSID, 1); in PetscDrawAxisSetLabels()
135 PetscCall(PetscFree(axis->xlabel)); in PetscDrawAxisSetLabels()
136 PetscCall(PetscFree(axis->ylabel)); in PetscDrawAxisSetLabels()
137 PetscCall(PetscFree(axis->toplabel)); in PetscDrawAxisSetLabels()
138 PetscCall(PetscStrallocpy(xlabel, &axis->xlabel)); in PetscDrawAxisSetLabels()
139 PetscCall(PetscStrallocpy(ylabel, &axis->ylabel)); in PetscDrawAxisSetLabels()
140 PetscCall(PetscStrallocpy(top, &axis->toplabel)); in PetscDrawAxisSetLabels()
163 PetscErrorCode PetscDrawAxisSetLimits(PetscDrawAxis axis, PetscReal xmin, PetscReal xmax, PetscReal… in PetscDrawAxisSetLimits() argument
166 PetscValidHeaderSpecific(axis, PETSC_DRAWAXIS_CLASSID, 1); in PetscDrawAxisSetLimits()
167 if (axis->hold) PetscFunctionReturn(PETSC_SUCCESS); in PetscDrawAxisSetLimits()
168 axis->xlow = xmin; in PetscDrawAxisSetLimits()
169 axis->xhigh = xmax; in PetscDrawAxisSetLimits()
170 axis->ylow = ymin; in PetscDrawAxisSetLimits()
171 axis->yhigh = ymax; in PetscDrawAxisSetLimits()
172 …tscCall(PetscOptionsHasName(((PetscObject)axis)->options, ((PetscObject)axis)->prefix, "-drawaxis_… in PetscDrawAxisSetLimits()
192 PetscErrorCode PetscDrawAxisGetLimits(PetscDrawAxis axis, PetscReal *xmin, PetscReal *xmax, PetscRe… in PetscDrawAxisGetLimits() argument
195 PetscValidHeaderSpecific(axis, PETSC_DRAWAXIS_CLASSID, 1); in PetscDrawAxisGetLimits()
196 if (xmin) *xmin = axis->xlow; in PetscDrawAxisGetLimits()
197 if (xmax) *xmax = axis->xhigh; in PetscDrawAxisGetLimits()
198 if (ymin) *ymin = axis->ylow; in PetscDrawAxisGetLimits()
199 if (ymax) *ymax = axis->yhigh; in PetscDrawAxisGetLimits()
221 PetscErrorCode PetscDrawAxisSetHoldLimits(PetscDrawAxis axis, PetscBool hold) in PetscDrawAxisSetHoldLimits() argument
224 PetscValidHeaderSpecific(axis, PETSC_DRAWAXIS_CLASSID, 1); in PetscDrawAxisSetHoldLimits()
225 PetscValidLogicalCollectiveBool(axis, hold, 2); in PetscDrawAxisSetHoldLimits()
226 axis->hold = hold; in PetscDrawAxisSetHoldLimits()
248 PetscErrorCode PetscDrawAxisDraw(PetscDrawAxis axis) in PetscDrawAxisDraw() argument
260 PetscValidHeaderSpecific(axis, PETSC_DRAWAXIS_CLASSID, 1); in PetscDrawAxisDraw()
261 PetscCall(PetscDrawIsNull(axis->win, &isnull)); in PetscDrawAxisDraw()
263 PetscCallMPI(MPI_Comm_rank(PetscObjectComm((PetscObject)axis), &rank)); in PetscDrawAxisDraw()
265 draw = axis->win; in PetscDrawAxisDraw()
267 ac = axis->ac; in PetscDrawAxisDraw()
268 tc = axis->tc; in PetscDrawAxisDraw()
269 cc = axis->cc; in PetscDrawAxisDraw()
270 if (axis->xlow == axis->xhigh) { in PetscDrawAxisDraw()
271 axis->xlow -= .5; in PetscDrawAxisDraw()
272 axis->xhigh += .5; in PetscDrawAxisDraw()
274 if (axis->ylow == axis->yhigh) { in PetscDrawAxisDraw()
275 axis->ylow -= .5; in PetscDrawAxisDraw()
276 axis->yhigh += .5; in PetscDrawAxisDraw()
286 if (axis->xlabelstr) dyl += 1.5 * th; in PetscDrawAxisDraw()
287 if (axis->xlabel) dyl += 1.5 * th; in PetscDrawAxisDraw()
289 if (axis->ylabelstr) dxl += 7.5 * tw; in PetscDrawAxisDraw()
290 if (axis->ylabel) dxl += 2.0 * tw; in PetscDrawAxisDraw()
292 if (axis->xlabelstr) dxr = 2.5 * tw; in PetscDrawAxisDraw()
293 if (axis->ylabelstr) dyr = 0.5 * th; in PetscDrawAxisDraw()
294 if (axis->toplabel) dyr = 1.5 * th; in PetscDrawAxisDraw()
301 xl = (dxl * axis->xhigh + dxr * axis->xlow - axis->xlow) / (dxl + dxr - 1); in PetscDrawAxisDraw()
302 xr = (dxl * axis->xhigh + dxr * axis->xlow - axis->xhigh) / (dxl + dxr - 1); in PetscDrawAxisDraw()
303 yl = (dyl * axis->yhigh + dyr * axis->ylow - axis->ylow) / (dyl + dyr - 1); in PetscDrawAxisDraw()
304 yr = (dyl * axis->yhigh + dyr * axis->ylow - axis->yhigh) / (dyl + dyr - 1); in PetscDrawAxisDraw()
309 PetscCall(PetscDrawLine(draw, axis->xlow, axis->ylow, axis->xhigh, axis->ylow, ac)); in PetscDrawAxisDraw()
310 PetscCall(PetscDrawLine(draw, axis->xlow, axis->ylow, axis->xlow, axis->yhigh, ac)); in PetscDrawAxisDraw()
311 PetscCall(PetscDrawLine(draw, axis->xlow, axis->yhigh, axis->xhigh, axis->yhigh, ac)); in PetscDrawAxisDraw()
312 PetscCall(PetscDrawLine(draw, axis->xhigh, axis->ylow, axis->xhigh, axis->yhigh, ac)); in PetscDrawAxisDraw()
315 if (axis->toplabel) { in PetscDrawAxisDraw()
316 PetscReal x = (axis->xlow + axis->xhigh) / 2, y = axis->yhigh + 0.5 * th; in PetscDrawAxisDraw()
318 PetscCall(PetscDrawStringCentered(draw, x, y, cc, axis->toplabel)); in PetscDrawAxisDraw()
322 if (axis->xticks) { in PetscDrawAxisDraw()
323 numx = (int)(.15 * (axis->xhigh - axis->xlow) / tw); in PetscDrawAxisDraw()
325 …PetscCall((*axis->xticks)(axis->xlow, axis->xhigh, numx, &ntick, tickloc, PETSC_DRAW_AXIS_MAX_SEGM… in PetscDrawAxisDraw()
328 PetscCall(PetscDrawLine(draw, tickloc[i], axis->ylow, tickloc[i], axis->ylow + .5 * th, tc)); in PetscDrawAxisDraw()
329 … PetscCall(PetscDrawLine(draw, tickloc[i], axis->yhigh, tickloc[i], axis->yhigh - .5 * th, tc)); in PetscDrawAxisDraw()
332 if (axis->xlabelstr) { in PetscDrawAxisDraw()
337 PetscCall((*axis->xlabelstr)(tickloc[i], sep, &p)); in PetscDrawAxisDraw()
338 PetscCall(PetscDrawStringCentered(draw, tickloc[i], axis->ylow - 1.5 * th, cc, p)); in PetscDrawAxisDraw()
342 if (axis->xlabel) { in PetscDrawAxisDraw()
343 PetscReal x = (axis->xlow + axis->xhigh) / 2, y = axis->ylow - 1.5 * th; in PetscDrawAxisDraw()
345 if (axis->xlabelstr) y -= 1.5 * th; in PetscDrawAxisDraw()
346 PetscCall(PetscDrawStringCentered(draw, x, y, cc, axis->xlabel)); in PetscDrawAxisDraw()
350 if (axis->yticks) { in PetscDrawAxisDraw()
351 numy = (int)(.50 * (axis->yhigh - axis->ylow) / th); in PetscDrawAxisDraw()
353 …PetscCall((*axis->yticks)(axis->ylow, axis->yhigh, numy, &ntick, tickloc, PETSC_DRAW_AXIS_MAX_SEGM… in PetscDrawAxisDraw()
356 PetscCall(PetscDrawLine(draw, axis->xlow, tickloc[i], axis->xlow + .5 * tw, tickloc[i], tc)); in PetscDrawAxisDraw()
357 … PetscCall(PetscDrawLine(draw, axis->xhigh, tickloc[i], axis->xhigh - .5 * tw, tickloc[i], tc)); in PetscDrawAxisDraw()
360 if (axis->ylabelstr) { in PetscDrawAxisDraw()
365 PetscCall((*axis->ylabelstr)(tickloc[i], sep, &p)); in PetscDrawAxisDraw()
368 …PetscCall(PetscDrawString(draw, axis->xlow - ((PetscReal)len + .5) * tw, tickloc[i] - .5 * th, cc,… in PetscDrawAxisDraw()
372 if (axis->ylabel) { in PetscDrawAxisDraw()
373 PetscReal x = axis->xlow - 2.0 * tw, y = (axis->ylow + axis->yhigh) / 2; in PetscDrawAxisDraw()
375 if (axis->ylabelstr) x -= ((PetscReal)ytlen + .5) * tw; in PetscDrawAxisDraw()
376 PetscCall(PetscStrlen(axis->ylabel, &len)); in PetscDrawAxisDraw()
377 PetscCall(PetscDrawStringVertical(draw, x, y + ((PetscReal)len) * th / 2, cc, axis->ylabel)); in PetscDrawAxisDraw()