2016-10-26 20:11:09 +11:00
|
|
|
/*
|
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* as published by the Free Software Foundation; either version 2
|
|
|
|
* of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2019-02-18 08:08:12 +11:00
|
|
|
/** \file
|
|
|
|
* \ingroup bli
|
2016-10-26 20:11:09 +11:00
|
|
|
*/
|
|
|
|
|
2020-03-02 15:04:53 +01:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2021-12-09 20:01:44 +11:00
|
|
|
/**
|
|
|
|
* Plot a line from \a p1 to \a p2 (inclusive).
|
|
|
|
*
|
|
|
|
* \note For clipped line drawing, see: http://stackoverflow.com/a/40902741/432509
|
|
|
|
*/
|
2016-10-26 20:14:48 +11:00
|
|
|
void BLI_bitmap_draw_2d_line_v2v2i(const int p1[2],
|
2016-10-26 20:11:09 +11:00
|
|
|
const int p2[2],
|
2018-04-21 20:22:12 +02:00
|
|
|
bool (*callback)(int, int, void *),
|
|
|
|
void *user_data);
|
2016-10-26 20:11:09 +11:00
|
|
|
|
2021-12-09 20:01:44 +11:00
|
|
|
/**
|
|
|
|
* \note Unclipped (clipped version can be added if needed).
|
|
|
|
*/
|
2018-04-21 18:34:34 +02:00
|
|
|
void BLI_bitmap_draw_2d_tri_v2i(const int p1[2],
|
|
|
|
const int p2[2],
|
|
|
|
const int p3[2],
|
|
|
|
void (*callback)(int x, int x_end, int y, void *),
|
|
|
|
void *user_data);
|
|
|
|
|
2021-12-09 20:01:44 +11:00
|
|
|
/**
|
|
|
|
* Draws a filled polygon with support for self intersections.
|
|
|
|
*
|
|
|
|
* \param callback: Takes the x, y coords and x-span (\a x_end is not inclusive),
|
|
|
|
* note that \a x_end will always be greater than \a x, so we can use:
|
|
|
|
*
|
|
|
|
* \code{.c}
|
|
|
|
* do {
|
|
|
|
* func(x, y);
|
|
|
|
* } while (++x != x_end);
|
|
|
|
* \endcode
|
|
|
|
*/
|
2022-01-07 11:38:08 +11:00
|
|
|
void BLI_bitmap_draw_2d_poly_v2i_n(int xmin,
|
|
|
|
int ymin,
|
|
|
|
int xmax,
|
|
|
|
int ymax,
|
2018-04-21 20:22:12 +02:00
|
|
|
const int verts[][2],
|
2022-01-07 11:38:08 +11:00
|
|
|
int verts_len,
|
2018-04-21 20:22:12 +02:00
|
|
|
void (*callback)(int x, int x_end, int y, void *),
|
|
|
|
void *user_data);
|
2016-10-26 20:11:09 +11:00
|
|
|
|
2020-03-02 15:04:53 +01:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|