! . */
| 15653 | |
| 15654 | /*! . */ |
| 15655 | unsigned int gmtlib_pow_array (struct GMT_CTRL *GMT, double min, double max, double delta, unsigned int x_or_y_or_z, double **array) { |
| 15656 | int i, n = 0; |
| 15657 | double *val = NULL, v0, v1; |
| 15658 | |
| 15659 | if (delta <= 0.0) return (0); |
| 15660 | |
| 15661 | if (GMT->current.map.frame.axis[x_or_y_or_z].type != GMT_POW) return (gmtlib_linear_array (GMT, min, max, delta, 0.0, array)); |
| 15662 | |
| 15663 | if (x_or_y_or_z == 0) { /* x-axis */ |
| 15664 | GMT->current.proj.fwd_x (GMT, min, &v0); |
| 15665 | GMT->current.proj.fwd_x (GMT, max, &v1); |
| 15666 | n = gmtlib_linear_array (GMT, v0, v1, delta, 0.0, &val); |
| 15667 | for (i = 0; i < n; i++) GMT->current.proj.inv_x (GMT, &val[i], val[i]); |
| 15668 | } |
| 15669 | else if (x_or_y_or_z == 1) { /* y-axis */ |
| 15670 | GMT->current.proj.fwd_y (GMT, min, &v0); |
| 15671 | GMT->current.proj.fwd_y (GMT, max, &v1); |
| 15672 | n = gmtlib_linear_array (GMT, v0, v1, delta, 0.0, &val); |
| 15673 | for (i = 0; i < n; i++) GMT->current.proj.inv_y (GMT, &val[i], val[i]); |
| 15674 | } |
| 15675 | else if (x_or_y_or_z == 2) { /* z-axis */ |
| 15676 | GMT->current.proj.fwd_z (GMT, min, &v0); |
| 15677 | GMT->current.proj.fwd_z (GMT, max, &v1); |
| 15678 | n = gmtlib_linear_array (GMT, v0, v1, delta, 0.0, &val); |
| 15679 | for (i = 0; i < n; i++) GMT->current.proj.inv_z (GMT, &val[i], val[i]); |
| 15680 | } |
| 15681 | else |
| 15682 | GMT_Report (GMT->parent, GMT_MSG_WARNING, "gmtlib_pow_array internal error: Invalid side (%d) passed - nothing returned!\n", x_or_y_or_z); |
| 15683 | |
| 15684 | *array = val; |
| 15685 | |
| 15686 | return (n); |
| 15687 | } |
| 15688 | |
| 15689 | /*! . */ |
| 15690 | GMT_LOCAL uint64_t gmtsupport_time_array (struct GMT_CTRL *GMT, double min, double max, double inc, char unit, bool interval, double **array) { |
no test coverage detected