mirror of
git://projects.qi-hardware.com/cae-tools.git
synced 2024-12-23 03:22:25 +02:00
poly2d (p2d_is_cw, p2d_is_closed, p2d_no_intersect, p2d_vertices): use better types
There's more to the world than just "int" ...
This commit is contained in:
parent
b2d6ef5f3c
commit
cba417fc37
@ -1,8 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* cgal_helper.h - Conversions between poly2d and CGAL
|
* cgal_helper.h - Conversions between poly2d and CGAL
|
||||||
*
|
*
|
||||||
* Written 2012 by Werner Almesberger
|
* Written 2012, 2015 by Werner Almesberger
|
||||||
* Copyright 2012 by Werner Almesberger
|
* Copyright 2012, 2015 by Werner Almesberger
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -21,6 +21,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "poly2d.h"
|
#include "poly2d.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,7 +37,7 @@ typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
|
|||||||
typedef CGAL::Polygon_2<K> Polygon_2;
|
typedef CGAL::Polygon_2<K> Polygon_2;
|
||||||
|
|
||||||
|
|
||||||
static inline Polygon_2 p2d_to_P2(const struct p2d *p, int ccw)
|
static inline Polygon_2 p2d_to_P2(const struct p2d *p, bool ccw)
|
||||||
{
|
{
|
||||||
const struct v2d *v;
|
const struct v2d *v;
|
||||||
Polygon_2 np;
|
Polygon_2 np;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* p2d_attrib.c - Determine various polygon attributes
|
* p2d_attrib.c - Determine various polygon attributes
|
||||||
*
|
*
|
||||||
* Written 2012 by Werner Almesberger
|
* Written 2012, 2015 by Werner Almesberger
|
||||||
* Copyright 2012 Werner Almesberger
|
* Copyright 2012, 2015 Werner Almesberger
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -11,6 +11,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
@ -46,7 +47,7 @@ static double angle_3(const struct v2d *a, const struct v2d *b,
|
|||||||
* If we predominantly turn to the right, then the path must be clockwise.
|
* If we predominantly turn to the right, then the path must be clockwise.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int p2d_is_cw(const struct p2d *p)
|
bool p2d_is_cw(const struct p2d *p)
|
||||||
{
|
{
|
||||||
const struct v2d *v;
|
const struct v2d *v;
|
||||||
double a = 0;
|
double a = 0;
|
||||||
@ -65,7 +66,7 @@ int p2d_is_cw(const struct p2d *p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int p2d_is_closed(const struct p2d *p)
|
bool p2d_is_closed(const struct p2d *p)
|
||||||
{
|
{
|
||||||
return p->v == p->last || p->last->next;
|
return p->v == p->last || p->last->next;
|
||||||
}
|
}
|
||||||
@ -76,7 +77,7 @@ int p2d_is_closed(const struct p2d *p)
|
|||||||
* go unnoticed.
|
* go unnoticed.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int p2d_no_intersect(const struct p2d *p)
|
bool p2d_no_intersect(const struct p2d *p)
|
||||||
{
|
{
|
||||||
const struct v2d *v, *u;
|
const struct v2d *v, *u;
|
||||||
|
|
||||||
@ -106,10 +107,10 @@ int p2d_no_intersect(const struct p2d *p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int p2d_vertices(const struct p2d *p)
|
unsigned p2d_vertices(const struct p2d *p)
|
||||||
{
|
{
|
||||||
const struct v2d *v;
|
const struct v2d *v;
|
||||||
int n = 0;
|
unsigned n = 0;
|
||||||
|
|
||||||
v = p->v;
|
v = p->v;
|
||||||
while (v) {
|
while (v) {
|
||||||
|
@ -121,10 +121,10 @@ struct p2d *p2d_reverse(const struct p2d *p);
|
|||||||
* p2d_vertices counts the number of vertices in a polygon.
|
* p2d_vertices counts the number of vertices in a polygon.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int p2d_is_cw(const struct p2d *p);
|
bool p2d_is_cw(const struct p2d *p);
|
||||||
int p2d_is_closed(const struct p2d *p);
|
bool p2d_is_closed(const struct p2d *p);
|
||||||
int p2d_no_intersect(const struct p2d *p);
|
bool p2d_no_intersect(const struct p2d *p);
|
||||||
int p2d_vertices(const struct p2d *p);
|
unsigned p2d_vertices(const struct p2d *p);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Convert a possibly self-intersecting polygon into one or more simple
|
* Convert a possibly self-intersecting polygon into one or more simple
|
||||||
|
Loading…
Reference in New Issue
Block a user