Sha256: bcdd30ac537378e950ed07ec906d4c93f1b1a85fa1fca74517f9034977b8b190

Contents?: true

Size: 1 KB

Versions: 31

Compression:

Stored size: 1 KB

Contents

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


#include <vector>
#include <xot/pimpl.h>
#include <rays/defs.h>
#include <rays/point.h>
#include <rays/bounds.h>


namespace Rays
{


	class Polygon;


	class Polyline
	{

		public:

			typedef std::vector<Point> PointList;

			typedef PointList::const_iterator const_iterator;

			Polyline ();

			Polyline (const Point* points, size_t size, bool loop = false);

			~Polyline ();

			bool expand (
				Polygon* result,
				coord width,
				CapType cap       = CAP_DEFAULT,
				JoinType join     = JOIN_DEFAULT,
				coord miter_limit = JOIN_DEFAULT_MITER_LIMIT) const;

			Bounds bounds () const;

			bool loop () const;

			size_t size () const;

			bool empty () const;

			const_iterator begin () const;

			const_iterator end () const;

			const Point& operator [] (size_t index) const;

			operator bool () const;

			bool operator ! () const;

			struct Data;

			Xot::PSharedImpl<Data> self;

	};// Polyline


}// Rays


#endif//EOH

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
rays-0.1.46 include/rays/polyline.h
rays-0.1.45 include/rays/polyline.h
rays-0.1.44 include/rays/polyline.h
rays-0.1.43 include/rays/polyline.h
rays-0.1.42 include/rays/polyline.h
rays-0.1.40 include/rays/polyline.h
rays-0.1.39 include/rays/polyline.h
rays-0.1.38 include/rays/polyline.h
rays-0.1.37 include/rays/polyline.h
rays-0.1.36 include/rays/polyline.h
rays-0.1.35 include/rays/polyline.h
rays-0.1.34 include/rays/polyline.h
rays-0.1.33 include/rays/polyline.h
rays-0.1.32 include/rays/polyline.h
rays-0.1.31 include/rays/polyline.h
rays-0.1.30 include/rays/polyline.h
rays-0.1.29 include/rays/polyline.h
rays-0.1.28 include/rays/polyline.h
rays-0.1.27 include/rays/polyline.h
rays-0.1.26 include/rays/polyline.h