Sha256: 48f0317f80bcd924a0097196e6f305f68af5ad6703e954e1b8fcfbae80fea18b

Contents?: true

Size: 1.2 KB

Versions: 9

Compression:

Stored size: 1.2 KB

Contents

// -*- c++ -*-
#pragma once
#ifndef __RAYS_SRC_POLYLINE_H__
#define __RAYS_SRC_POLYLINE_H__


#include <float.h>
#include <clipper.hpp>
#include "rays/polyline.h"
#include "rays/exception.h"


namespace Rays
{


	static const double CLIPPER_SCALE = 1000;


	inline ClipperLib::cInt
	to_clipper (coord value)
	{
		return (ClipperLib::cInt) (value * CLIPPER_SCALE);
	}

	inline coord
	from_clipper (ClipperLib::cInt value)
	{
		double v = value / CLIPPER_SCALE;
		if (v <= -FLT_MAX || FLT_MAX <= v)
			argument_error(__FILE__, __LINE__);

		return (coord) v;
	}

	inline ClipperLib::IntPoint
	to_clipper (const Point& point)
	{
		return ClipperLib::IntPoint(
			to_clipper(point.x),
			to_clipper(point.y));
	}

	inline Point
	from_clipper (const ClipperLib::IntPoint& point)
	{
		return Point(
			from_clipper(point.X),
			from_clipper(point.Y));
	}


	void Polyline_create (
		Polyline* polyline, const ClipperLib::Path& path, bool loop,
		bool reverse = false);

	void Polyline_get_path (
		ClipperLib::Path* path, const Polyline& polyline,
		bool reverse = false);

	bool Polyline_expand (
		Polygon* result, const Polyline& polyline,
		coord width, CapType cap, JoinType join, coord miter_limit);


}// Rays


#endif//EOH

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
rays-0.1.46 src/polyline.h
rays-0.1.45 src/polyline.h
rays-0.1.44 src/polyline.h
rays-0.1.43 src/polyline.h
rays-0.1.42 src/polyline.h
rays-0.1.40 src/polyline.h
rays-0.1.39 src/polyline.h
rays-0.1.38 src/polyline.h
rays-0.1.37 src/polyline.h