Sha256: 06968b93bc1ec8131600144902a85f9220cee337f7859709add1572dc97df191

Contents?: true

Size: 1.2 KB

Versions: 22

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

22 entries across 22 versions & 1 rubygems

Version Path
rays-0.1.36 src/polyline.h
rays-0.1.35 src/polyline.h
rays-0.1.34 src/polyline.h
rays-0.1.33 src/polyline.h
rays-0.1.32 src/polyline.h
rays-0.1.31 src/polyline.h
rays-0.1.30 src/polyline.h
rays-0.1.29 src/polyline.h
rays-0.1.28 src/polyline.h
rays-0.1.27 src/polyline.h
rays-0.1.26 src/polyline.h
rays-0.1.25 src/polyline.h
rays-0.1.24 src/polyline.h
rays-0.1.23 src/polyline.h
rays-0.1.22 src/polyline.h
rays-0.1.21 src/polyline.h
rays-0.1.20 src/polyline.h
rays-0.1.19 src/polyline.h
rays-0.1.18 src/polyline.h
rays-0.1.17 src/polyline.h