dxx-rebirth/common/3d/clipper.h

47 lines
1.1 KiB
C
Raw Normal View History

2006-03-20 17:12:09 +00:00
/*
* This file is part of the DXX-Rebirth project <http://www.dxx-rebirth.com/>.
* It is copyright by its individual contributors, as recorded in the
* project's Git history. See COPYING.txt at the top level for license
* terms and a link to the Git history.
*/
2006-03-20 17:12:09 +00:00
/*
*
* Header for clipper.c
*
*/
2014-12-14 05:23:00 +00:00
#pragma once
2013-10-26 03:40:50 +00:00
#ifdef __cplusplus
#include "dxxsconf.h"
2014-12-14 05:23:00 +00:00
#include <cstdint>
2013-10-26 03:40:50 +00:00
struct g3s_codes;
struct g3s_point;
#if !DXX_USE_OGL
#include "dsx-ns.h"
2015-10-09 02:46:09 +00:00
#include "3d.h"
2014-12-14 05:23:00 +00:00
#include "globvars.h"
2014-11-16 19:14:50 +00:00
#include "compiler-array.h"
2014-12-14 05:23:00 +00:00
2015-12-13 18:00:49 +00:00
namespace dcx {
2015-12-05 22:57:24 +00:00
2014-11-16 19:14:50 +00:00
struct polygon_clip_points : array<g3s_point *, MAX_POINTS_IN_POLY> {};
2014-11-16 19:14:51 +00:00
struct temporary_points_t
{
uint_fast32_t free_point_num;
array<g3s_point, MAX_POINTS_IN_POLY> temp_points;
array<g3s_point *, MAX_POINTS_IN_POLY> free_points;
temporary_points_t();
void free_temp_point(g3s_point *cp);
};
const polygon_clip_points &clip_polygon(polygon_clip_points &src,polygon_clip_points &dest,int *nv,g3s_codes *cc,temporary_points_t &);
2014-12-14 05:23:00 +00:00
void clip_line(g3s_point *&p0,g3s_point *&p1,uint_fast8_t codes_or,temporary_points_t &);
2015-12-05 22:57:24 +00:00
}
#endif
2006-03-20 17:12:09 +00:00
#endif