OpenSiv3D  v0.6.5
C++20 framework for creative coding
s3d::Polygon Class Reference

多角形 More...

#include <Polygon.hpp>

Public Member Functions

SIV3D_NODISCARD_CXX20 Polygon ()
 
SIV3D_NODISCARD_CXX20 Polygon (const Polygon &polygon)
 
SIV3D_NODISCARD_CXX20 Polygon (Polygon &&polygon) noexcept
 
SIV3D_NODISCARD_CXX20 Polygon (const Vec2 *outer, size_t size, Array< Array< Vec2 >> holes={}, SkipValidation skipValidation=SkipValidation::No)
 
SIV3D_NODISCARD_CXX20 Polygon (const Array< Vec2 > &outer, Array< Array< Vec2 >> holes={}, SkipValidation skipValidation=SkipValidation::No)
 
SIV3D_NODISCARD_CXX20 Polygon (const Array< Vec2 > &outer, const Array< TriangleIndex > &indices, const RectF &boundingRect, SkipValidation skipValidation=SkipValidation::No)
 
SIV3D_NODISCARD_CXX20 Polygon (const Array< Vec2 > &outer, Array< Array< Vec2 >> holes, const Array< Float2 > &vertices, const Array< TriangleIndex > &indices, const RectF &boundingRect, SkipValidation skipValidation=SkipValidation::No)
 
SIV3D_NODISCARD_CXX20 Polygon (std::initializer_list< Vec2 > outer, SkipValidation skipValidation=SkipValidation::No)
 
SIV3D_NODISCARD_CXX20 Polygon (const Shape2D &shape)
 
 ~Polygon ()
 
Polygonoperator= (const Polygon &polygon)
 
Polygonoperator= (Polygon &&polygon) noexcept
 
bool isEmpty () const noexcept
 多角形が空であるかを返します。 More...
 
 operator bool () const noexcept
 多角形が空ではないかを返します。 More...
 
bool hasHoles () const noexcept
 多角形が穴を持っているかを返します。 More...
 
size_t num_holes () const noexcept
 多角形が持つ穴の個数を返します。 More...
 
void swap (Polygon &polygon) noexcept
 
const Array< Vec2 > & outer () const noexcept
 多角形の外周の頂点配列を返します。 More...
 
const Array< Array< Vec2 > > & inners () const noexcept
 多角形の穴を構成する頂点配列を返します。 More...
 
const Array< Float2 > & vertices () const noexcept
 多角形のすべての頂点を返します。 More...
 
const Array< TriangleIndex > & indices () const noexcept
 多角形の三角形分割のすべての頂点インデックスを返します。 More...
 
const RectFboundingRect () const noexcept
 多角形のバウンディングボックスを返します。 More...
 
size_t num_triangles () const noexcept
 多角形の三角形分割での三角形の個数を返します。 More...
 
Triangle triangle (size_t index) const
 多角形の三角形分割での、個々の三角形を返します。 More...
 
bool addHole (const RectF &rect)
 多角形に穴を追加します。 More...
 
bool addHole (const Triangle &triangle)
 多角形に穴を追加します。 More...
 
bool addHole (const Quad &quad)
 多角形に穴を追加します。 More...
 
bool addHole (const Circle &circle, uint32 quality=24)
 多角形に穴を追加します。 More...
 
bool addHole (const Ellipse &ellipse, uint32 quality=24)
 多角形に穴を追加します。 More...
 
bool addHole (const RoundRect &roundRect, uint32 quality=24)
 多角形に穴を追加します。 More...
 
bool addHole (Array< Vec2 > hole)
 多角形に穴を追加します。 More...
 
bool addHoles (Array< Array< Vec2 >> holes)
 多角形に穴を追加します。 More...
 
Polygon movedBy (double x, double y) const
 
Polygon movedBy (Vec2 v) const
 
PolygonmoveBy (double x, double y) noexcept
 
PolygonmoveBy (Vec2 v) noexcept
 
Polygon rotated (double angle) const
 
Polygon rotatedAt (double x, double y, double angle) const
 
Polygon rotatedAt (Vec2 pos, double angle) const
 
Polygonrotate (double angle)
 
PolygonrotateAt (double x, double y, double angle)
 
PolygonrotateAt (Vec2 pos, double angle)
 
Polygon transformed (double s, double c, const Vec2 &pos) const
 
Polygontransform (double s, double c, const Vec2 &pos)
 
Polygon scaled (double s) const
 
Polygon scaled (double sx, double sy) const
 
Polygon scaled (Vec2 s) const
 
Polygonscale (double s)
 
Polygonscale (double sx, double sy)
 
Polygonscale (Vec2 s)
 
Polygon scaledAt (Vec2 pos, double s) const
 
Polygon scaledAt (Vec2 pos, double sx, double sy) const
 
Polygon scaledAt (Vec2 pos, Vec2 s) const
 
PolygonscaleAt (Vec2 pos, double s)
 
PolygonscaleAt (Vec2 pos, double sx, double sy)
 
PolygonscaleAt (Vec2 pos, Vec2 s)
 
double area () const noexcept
 多角形の面積を返します。 More...
 
double perimeter () const noexcept
 多角形の、穴を含めた輪郭の長さを返します。 More...
 
Vec2 centroid () const
 多角形の重心の座標を返します。 More...
 
Polygon computeConvexHull () const
 多角形の凸包を計算して返します。 More...
 
Polygon calculateBuffer (double distance) const
 多角形を太らせた、新しい多角形を返します。 More...
 
Polygon calculateRoundBuffer (double distance) const
 多角形を丸く太らせた、新しい多角形を返します。 More...
 
Polygon simplified (double maxDistance=2.0) const
 多角形を単純化した、新しい多角形を返します。 More...
 
LineString outline (CloseRing closeRing=CloseRing::No) const
 多角形の外周を LineString で返します。 More...
 
LineString outline (double distanceFromOrigin, double length) const
 多角形の外周の一部を LineString で返します。 More...
 
bool append (const RectF &other)
 多角形に新しい領域を追加します。新しい領域は既存の多角形と接続していなければなりません。 More...
 
bool append (const Polygon &other)
 多角形に新しい領域を追加します。新しい領域は既存の多角形と接続していなければなりません。 More...
 
template<class Shape2DType >
bool intersects (const Shape2DType &other) const
 
bool intersects (const Line &other) const
 
bool intersects (const Rect &other) const
 
bool intersects (const RectF &other) const
 
bool intersects (const Polygon &other) const
 
template<class Shape2DType >
Optional< Array< Vec2 > > intersectsAt (const Shape2DType &other) const
 
template<class Shape2DType >
bool contains (const Shape2DType &other) const
 
bool leftClicked () const noexcept
 多角形が現在のフレームで左クリックされ始めたかを返します。 More...
 
bool leftPressed () const noexcept
 多角形が左クリックされているかを返します。 More...
 
bool leftReleased () const noexcept
 現在のフレームで多角形への左クリックが離されたかを返します。 More...
 
bool rightClicked () const noexcept
 多角形が現在のフレームで右クリックされ始めたかを返します。 More...
 
bool rightPressed () const noexcept
 多角形が右クリックされているかを返します。 More...
 
bool rightReleased () const noexcept
 現在のフレームで多角形への右クリックが離されたかを返します。 More...
 
bool mouseOver () const noexcept
 多角形上にマウスカーソルがあるかを返します。 More...
 
const Polygonpaint (Image &dst, const Color &color) const
 
const Polygonpaint (Image &dst, double x, double y, const Color &color) const
 
const Polygonpaint (Image &dst, const Vec2 &pos, const Color &color) const
 
const Polygonoverwrite (Image &dst, const Color &color, Antialiased antialiased=Antialiased::Yes) const
 
const Polygonoverwrite (Image &dst, double x, double y, const Color &color, Antialiased antialiased=Antialiased::Yes) const
 
const Polygonoverwrite (Image &dst, const Vec2 &pos, const Color &color, Antialiased antialiased=Antialiased::Yes) const
 
const Polygondraw (const ColorF &color=Palette::White) const
 
void draw (double x, double y, const ColorF &color=Palette::White) const
 
void draw (const Vec2 &pos, const ColorF &color=Palette::White) const
 
void drawTransformed (double angle, const Vec2 &pos, const ColorF &color=Palette::White) const
 
void drawTransformed (double s, double c, const Vec2 &pos, const ColorF &color=Palette::White) const
 
const PolygondrawFrame (double thickness=1.0, const ColorF &color=Palette::White) const
 
void drawFrame (double x, double y, double thickness=1.0, const ColorF &color=Palette::White) const
 
void drawFrame (const Vec2 &pos, double thickness=1.0, const ColorF &color=Palette::White) const
 
const PolygondrawWireframe (double thickness=1.0, const ColorF &color=Palette::White) const
 
void drawWireframe (double x, double y, double thickness=1.0, const ColorF &color=Palette::White) const
 
void drawWireframe (const Vec2 &pos, double thickness=1.0, const ColorF &color=Palette::White) const
 
Buffer2D toBuffer2D (const Vec2 &uvOrigin, const Vec2 &uvScale) const
 
Buffer2D toBuffer2D (Arg::center_< Vec2 > uvCenter, const Vec2 &uvScale) const
 
Buffer2D toBuffer2D (Arg::center_< Vec2 > uvCenter, const Vec2 &uvScale, double uvRotation) const
 
Buffer2D toBuffer2D (const Mat3x2 &uvMat) const
 
const PolygonDetail * _detail () const noexcept
 

Static Public Member Functions

static PolygonFailureType Validate (const Vec2 *pVertex, size_t vertexSize, const Array< Array< Vec2 >> &holes={})
 
static PolygonFailureType Validate (const Array< Vec2 > &vertices, const Array< Array< Vec2 >> &holes={})
 
static Array< PolygonCorrect (const Vec2 *pVertex, size_t vertexSize, const Array< Array< Vec2 >> &holes={})
 頂点配列から多角形を生成します。 More...
 
static Array< PolygonCorrect (const Array< Vec2 > &vertices, const Array< Array< Vec2 >> &holes={})
 頂点配列から多角形を生成します。 More...
 
static Polygon CorrectOne (const Vec2 *pVertex, size_t vertexSize, const Array< Array< Vec2 >> &holes={})
 
static Polygon CorrectOne (const Array< Vec2 > &vertices, const Array< Array< Vec2 >> &holes={})
 

Friends

template<class CharType >
std::basic_ostream< CharType > & operator<< (std::basic_ostream< CharType > &output, const Polygon &value)
 
void Formatter (FormatData &formatData, const Polygon &value)
 

Detailed Description

多角形

Remarks
穴を持つこともできます

Constructor & Destructor Documentation

◆ Polygon() [1/9]

SIV3D_NODISCARD_CXX20 s3d::Polygon::Polygon ( )

◆ Polygon() [2/9]

SIV3D_NODISCARD_CXX20 s3d::Polygon::Polygon ( const Polygon polygon)

◆ Polygon() [3/9]

SIV3D_NODISCARD_CXX20 s3d::Polygon::Polygon ( Polygon &&  polygon)
noexcept

◆ Polygon() [4/9]

SIV3D_NODISCARD_CXX20 s3d::Polygon::Polygon ( const Vec2 outer,
size_t  size,
Array< Array< Vec2 >>  holes = {},
SkipValidation  skipValidation = SkipValidation::No 
)

◆ Polygon() [5/9]

SIV3D_NODISCARD_CXX20 s3d::Polygon::Polygon ( const Array< Vec2 > &  outer,
Array< Array< Vec2 >>  holes = {},
SkipValidation  skipValidation = SkipValidation::No 
)
explicit

◆ Polygon() [6/9]

SIV3D_NODISCARD_CXX20 s3d::Polygon::Polygon ( const Array< Vec2 > &  outer,
const Array< TriangleIndex > &  indices,
const RectF boundingRect,
SkipValidation  skipValidation = SkipValidation::No 
)

◆ Polygon() [7/9]

SIV3D_NODISCARD_CXX20 s3d::Polygon::Polygon ( const Array< Vec2 > &  outer,
Array< Array< Vec2 >>  holes,
const Array< Float2 > &  vertices,
const Array< TriangleIndex > &  indices,
const RectF boundingRect,
SkipValidation  skipValidation = SkipValidation::No 
)

◆ Polygon() [8/9]

SIV3D_NODISCARD_CXX20 s3d::Polygon::Polygon ( std::initializer_list< Vec2 outer,
SkipValidation  skipValidation = SkipValidation::No 
)
explicit

◆ Polygon() [9/9]

SIV3D_NODISCARD_CXX20 s3d::Polygon::Polygon ( const Shape2D shape)

◆ ~Polygon()

s3d::Polygon::~Polygon ( )

Member Function Documentation

◆ _detail()

const PolygonDetail* s3d::Polygon::_detail ( ) const
noexcept

◆ addHole() [1/7]

bool s3d::Polygon::addHole ( Array< Vec2 hole)

多角形に穴を追加します。

Parameters
hole穴を構成する頂点配列
Returns
穴の追加に成功したら true, それ以外の場合は false

◆ addHole() [2/7]

bool s3d::Polygon::addHole ( const Circle circle,
uint32  quality = 24 
)

多角形に穴を追加します。

Parameters
circle穴の形状
quality頂点分割の品質
Returns
穴の追加に成功したら true, それ以外の場合は false

◆ addHole() [3/7]

bool s3d::Polygon::addHole ( const Ellipse ellipse,
uint32  quality = 24 
)

多角形に穴を追加します。

Parameters
ellipse穴の形状
quality頂点分割の品質
Returns
穴の追加に成功したら true, それ以外の場合は false

◆ addHole() [4/7]

bool s3d::Polygon::addHole ( const Quad quad)

多角形に穴を追加します。

Parameters
quad穴の形状
Returns
穴の追加に成功したら true, それ以外の場合は false

◆ addHole() [5/7]

bool s3d::Polygon::addHole ( const RectF rect)

多角形に穴を追加します。

Parameters
rect穴の形状
Returns
穴の追加に成功したら true, それ以外の場合は false

◆ addHole() [6/7]

bool s3d::Polygon::addHole ( const RoundRect roundRect,
uint32  quality = 24 
)

多角形に穴を追加します。

Parameters
roundRect穴の形状
quality頂点分割の品質
Returns
穴の追加に成功したら true, それ以外の場合は false

◆ addHole() [7/7]

bool s3d::Polygon::addHole ( const Triangle triangle)

多角形に穴を追加します。

Parameters
triangle穴の形状
Returns
穴の追加に成功したら true, それ以外の場合は false

◆ addHoles()

bool s3d::Polygon::addHoles ( Array< Array< Vec2 >>  holes)

多角形に穴を追加します。

Parameters
holes穴を構成する頂点配列の配列(複数の穴)
Returns
穴の追加に成功したら true, それ以外の場合は false

◆ append() [1/2]

bool s3d::Polygon::append ( const Polygon other)

多角形に新しい領域を追加します。新しい領域は既存の多角形と接続していなければなりません。

Parameters
other新しい領域
Returns
新しい領域の追加に成功した場合 true, それ以外の場合は false

◆ append() [2/2]

bool s3d::Polygon::append ( const RectF other)

多角形に新しい領域を追加します。新しい領域は既存の多角形と接続していなければなりません。

Parameters
other新しい領域
Returns
新しい領域の追加に成功した場合 true, それ以外の場合は false

◆ area()

double s3d::Polygon::area ( ) const
noexcept

多角形の面積を返します。

Returns
多角形の面積

◆ boundingRect()

const RectF& s3d::Polygon::boundingRect ( ) const
noexcept

多角形のバウンディングボックスを返します。

Remarks
バウンディングボックスは計算済みであるため、この関数のコストは小さいです。
Returns
多角形のバウンディングボックス

◆ calculateBuffer()

Polygon s3d::Polygon::calculateBuffer ( double  distance) const

多角形を太らせた、新しい多角形を返します。

Parameters
distance太らせる距離。負の場合は細らせます。
Returns
新しい多角形

◆ calculateRoundBuffer()

Polygon s3d::Polygon::calculateRoundBuffer ( double  distance) const

多角形を丸く太らせた、新しい多角形を返します。

Parameters
distance太らせる距離。負の場合は細らせます。
Returns
新しい多角形

◆ centroid()

Vec2 s3d::Polygon::centroid ( ) const

多角形の重心の座標を返します。

Returns
多角形の重心の座標

◆ computeConvexHull()

Polygon s3d::Polygon::computeConvexHull ( ) const

多角形の凸包を計算して返します。

Returns
多角形の凸包

◆ contains()

template<class Shape2DType >
bool s3d::Polygon::contains ( const Shape2DType &  other) const

◆ Correct() [1/2]

static Array<Polygon> s3d::Polygon::Correct ( const Array< Vec2 > &  vertices,
const Array< Array< Vec2 >> &  holes = {} 
)
static

頂点配列から多角形を生成します。

Parameters
vertices頂点配列
holes多角形の穴
Returns
頂点配列から生成した多角形の配列

◆ Correct() [2/2]

static Array<Polygon> s3d::Polygon::Correct ( const Vec2 pVertex,
size_t  vertexSize,
const Array< Array< Vec2 >> &  holes = {} 
)
static

頂点配列から多角形を生成します。

Parameters
pVertex頂点配列の先頭ポインタ
vertexSize頂点配列の要素数
holes多角形の穴
Returns
頂点配列から生成した多角形の配列

◆ CorrectOne() [1/2]

static Polygon s3d::Polygon::CorrectOne ( const Array< Vec2 > &  vertices,
const Array< Array< Vec2 >> &  holes = {} 
)
static

◆ CorrectOne() [2/2]

static Polygon s3d::Polygon::CorrectOne ( const Vec2 pVertex,
size_t  vertexSize,
const Array< Array< Vec2 >> &  holes = {} 
)
static

◆ draw() [1/3]

const Polygon& s3d::Polygon::draw ( const ColorF color = Palette::White) const

◆ draw() [2/3]

void s3d::Polygon::draw ( const Vec2 pos,
const ColorF color = Palette::White 
) const

◆ draw() [3/3]

void s3d::Polygon::draw ( double  x,
double  y,
const ColorF color = Palette::White 
) const

◆ drawFrame() [1/3]

void s3d::Polygon::drawFrame ( const Vec2 pos,
double  thickness = 1.0,
const ColorF color = Palette::White 
) const

◆ drawFrame() [2/3]

const Polygon& s3d::Polygon::drawFrame ( double  thickness = 1.0,
const ColorF color = Palette::White 
) const

◆ drawFrame() [3/3]

void s3d::Polygon::drawFrame ( double  x,
double  y,
double  thickness = 1.0,
const ColorF color = Palette::White 
) const

◆ drawTransformed() [1/2]

void s3d::Polygon::drawTransformed ( double  angle,
const Vec2 pos,
const ColorF color = Palette::White 
) const

◆ drawTransformed() [2/2]

void s3d::Polygon::drawTransformed ( double  s,
double  c,
const Vec2 pos,
const ColorF color = Palette::White 
) const

◆ drawWireframe() [1/3]

void s3d::Polygon::drawWireframe ( const Vec2 pos,
double  thickness = 1.0,
const ColorF color = Palette::White 
) const

◆ drawWireframe() [2/3]

const Polygon& s3d::Polygon::drawWireframe ( double  thickness = 1.0,
const ColorF color = Palette::White 
) const

◆ drawWireframe() [3/3]

void s3d::Polygon::drawWireframe ( double  x,
double  y,
double  thickness = 1.0,
const ColorF color = Palette::White 
) const

◆ hasHoles()

bool s3d::Polygon::hasHoles ( ) const
noexcept

多角形が穴を持っているかを返します。

Returns
穴を持つ場合 true, それ以外の場合は false

◆ indices()

const Array<TriangleIndex>& s3d::Polygon::indices ( ) const
noexcept

多角形の三角形分割のすべての頂点インデックスを返します。

Remarks
vertices() の戻り値に対応します。
Returns
多角形の三角形分割のすべての頂点インデックス

◆ inners()

const Array<Array<Vec2> >& s3d::Polygon::inners ( ) const
noexcept

多角形の穴を構成する頂点配列を返します。

Returns
多角形の穴を構成する頂点配列

◆ intersects() [1/5]

bool s3d::Polygon::intersects ( const Line other) const

◆ intersects() [2/5]

bool s3d::Polygon::intersects ( const Polygon other) const

◆ intersects() [3/5]

bool s3d::Polygon::intersects ( const Rect other) const

◆ intersects() [4/5]

bool s3d::Polygon::intersects ( const RectF other) const

◆ intersects() [5/5]

template<class Shape2DType >
bool s3d::Polygon::intersects ( const Shape2DType &  other) const

◆ intersectsAt()

template<class Shape2DType >
Optional<Array<Vec2> > s3d::Polygon::intersectsAt ( const Shape2DType &  other) const

◆ isEmpty()

bool s3d::Polygon::isEmpty ( ) const
noexcept

多角形が空であるかを返します。

Returns
多角形が空である場合 true, それ以外の場合は false

◆ leftClicked()

bool s3d::Polygon::leftClicked ( ) const
noexcept

多角形が現在のフレームで左クリックされ始めたかを返します。

Returns
多角形が現在のフレームで左クリックされ始めた場合 true, それ以外の場合は false

◆ leftPressed()

bool s3d::Polygon::leftPressed ( ) const
noexcept

多角形が左クリックされているかを返します。

Returns
多角形が左クリックされている場合 true, それ以外の場合は false

◆ leftReleased()

bool s3d::Polygon::leftReleased ( ) const
noexcept

現在のフレームで多角形への左クリックが離されたかを返します。

Returns
現在のフレームで多角形への左クリックが離された場合 true, それ以外の場合は false

◆ mouseOver()

bool s3d::Polygon::mouseOver ( ) const
noexcept

多角形上にマウスカーソルがあるかを返します。

Returns
多角形上にマウスカーソルがある場合 true, それ以外の場合は false

◆ moveBy() [1/2]

Polygon& s3d::Polygon::moveBy ( double  x,
double  y 
)
noexcept

◆ moveBy() [2/2]

Polygon& s3d::Polygon::moveBy ( Vec2  v)
noexcept

◆ movedBy() [1/2]

Polygon s3d::Polygon::movedBy ( double  x,
double  y 
) const

◆ movedBy() [2/2]

Polygon s3d::Polygon::movedBy ( Vec2  v) const

◆ num_holes()

size_t s3d::Polygon::num_holes ( ) const
noexcept

多角形が持つ穴の個数を返します。

Returns
多角形が持つ穴の個数

◆ num_triangles()

size_t s3d::Polygon::num_triangles ( ) const
noexcept

多角形の三角形分割での三角形の個数を返します。

Remarks
三角形分割は計算済みであるため、この関数のコストは小さいです。
Returns
三角形の個数

◆ operator bool()

s3d::Polygon::operator bool ( ) const
explicitnoexcept

多角形が空ではないかを返します。

Returns
多角形が空でない場合 true, それ以外の場合は false

◆ operator=() [1/2]

Polygon& s3d::Polygon::operator= ( const Polygon polygon)

◆ operator=() [2/2]

Polygon& s3d::Polygon::operator= ( Polygon &&  polygon)
noexcept

◆ outer()

const Array<Vec2>& s3d::Polygon::outer ( ) const
noexcept

多角形の外周の頂点配列を返します。

Returns
多角形の外周の頂点配列

◆ outline() [1/2]

LineString s3d::Polygon::outline ( CloseRing  closeRing = CloseRing::No) const

多角形の外周を LineString で返します。

Parameters
closeRing始点と終点を一致させる場合は CloseRing::Yes, それ以外の場合は CloseRing::No
Returns
多角形の外周

◆ outline() [2/2]

LineString s3d::Polygon::outline ( double  distanceFromOrigin,
double  length 
) const

多角形の外周の一部を LineString で返します。

Parameters
distanceFromOrigin取得の開始位置(Polygon 外周の最初の頂点からの距離)
length取得する LineString の長さ
Returns
取得した多角形の外周の一部

◆ overwrite() [1/3]

const Polygon& s3d::Polygon::overwrite ( Image dst,
const Color color,
Antialiased  antialiased = Antialiased::Yes 
) const

◆ overwrite() [2/3]

const Polygon& s3d::Polygon::overwrite ( Image dst,
const Vec2 pos,
const Color color,
Antialiased  antialiased = Antialiased::Yes 
) const

◆ overwrite() [3/3]

const Polygon& s3d::Polygon::overwrite ( Image dst,
double  x,
double  y,
const Color color,
Antialiased  antialiased = Antialiased::Yes 
) const

◆ paint() [1/3]

const Polygon& s3d::Polygon::paint ( Image dst,
const Color color 
) const

◆ paint() [2/3]

const Polygon& s3d::Polygon::paint ( Image dst,
const Vec2 pos,
const Color color 
) const

◆ paint() [3/3]

const Polygon& s3d::Polygon::paint ( Image dst,
double  x,
double  y,
const Color color 
) const

◆ perimeter()

double s3d::Polygon::perimeter ( ) const
noexcept

多角形の、穴を含めた輪郭の長さを返します。

Returns
多角形の、穴を含めた輪郭の長さ

◆ rightClicked()

bool s3d::Polygon::rightClicked ( ) const
noexcept

多角形が現在のフレームで右クリックされ始めたかを返します。

Returns
多角形が現在のフレームで右クリックされ始めた場合 true, それ以外の場合は false

◆ rightPressed()

bool s3d::Polygon::rightPressed ( ) const
noexcept

多角形が右クリックされているかを返します。

Returns
多角形が右クリックされている場合 true, それ以外の場合は false

◆ rightReleased()

bool s3d::Polygon::rightReleased ( ) const
noexcept

現在のフレームで多角形への右クリックが離されたかを返します。

Returns
現在のフレームで多角形への右クリックが離された場合 true, それ以外の場合は false

◆ rotate()

Polygon& s3d::Polygon::rotate ( double  angle)

◆ rotateAt() [1/2]

Polygon& s3d::Polygon::rotateAt ( double  x,
double  y,
double  angle 
)

◆ rotateAt() [2/2]

Polygon& s3d::Polygon::rotateAt ( Vec2  pos,
double  angle 
)

◆ rotated()

Polygon s3d::Polygon::rotated ( double  angle) const

◆ rotatedAt() [1/2]

Polygon s3d::Polygon::rotatedAt ( double  x,
double  y,
double  angle 
) const

◆ rotatedAt() [2/2]

Polygon s3d::Polygon::rotatedAt ( Vec2  pos,
double  angle 
) const

◆ scale() [1/3]

Polygon& s3d::Polygon::scale ( double  s)

◆ scale() [2/3]

Polygon& s3d::Polygon::scale ( double  sx,
double  sy 
)

◆ scale() [3/3]

Polygon& s3d::Polygon::scale ( Vec2  s)

◆ scaleAt() [1/3]

Polygon& s3d::Polygon::scaleAt ( Vec2  pos,
double  s 
)

◆ scaleAt() [2/3]

Polygon& s3d::Polygon::scaleAt ( Vec2  pos,
double  sx,
double  sy 
)

◆ scaleAt() [3/3]

Polygon& s3d::Polygon::scaleAt ( Vec2  pos,
Vec2  s 
)

◆ scaled() [1/3]

Polygon s3d::Polygon::scaled ( double  s) const

◆ scaled() [2/3]

Polygon s3d::Polygon::scaled ( double  sx,
double  sy 
) const

◆ scaled() [3/3]

Polygon s3d::Polygon::scaled ( Vec2  s) const

◆ scaledAt() [1/3]

Polygon s3d::Polygon::scaledAt ( Vec2  pos,
double  s 
) const

◆ scaledAt() [2/3]

Polygon s3d::Polygon::scaledAt ( Vec2  pos,
double  sx,
double  sy 
) const

◆ scaledAt() [3/3]

Polygon s3d::Polygon::scaledAt ( Vec2  pos,
Vec2  s 
) const

◆ simplified()

Polygon s3d::Polygon::simplified ( double  maxDistance = 2.0) const

多角形を単純化した、新しい多角形を返します。

Parameters
maxDistance単純化に使う距離。大きいほど単純化されます。
Returns
新しい多角形

◆ swap()

void s3d::Polygon::swap ( Polygon polygon)
noexcept

◆ toBuffer2D() [1/4]

Buffer2D s3d::Polygon::toBuffer2D ( Arg::center_< Vec2 uvCenter,
const Vec2 uvScale 
) const

◆ toBuffer2D() [2/4]

Buffer2D s3d::Polygon::toBuffer2D ( Arg::center_< Vec2 uvCenter,
const Vec2 uvScale,
double  uvRotation 
) const

◆ toBuffer2D() [3/4]

Buffer2D s3d::Polygon::toBuffer2D ( const Mat3x2 uvMat) const

◆ toBuffer2D() [4/4]

Buffer2D s3d::Polygon::toBuffer2D ( const Vec2 uvOrigin,
const Vec2 uvScale 
) const

◆ transform()

Polygon& s3d::Polygon::transform ( double  s,
double  c,
const Vec2 pos 
)

◆ transformed()

Polygon s3d::Polygon::transformed ( double  s,
double  c,
const Vec2 pos 
) const

◆ triangle()

Triangle s3d::Polygon::triangle ( size_t  index) const

多角形の三角形分割での、個々の三角形を返します。

Parameters
index三角形のインデックス。0 以上 (num_triangles() - 1) 以下
Returns
三角形

◆ Validate() [1/2]

static PolygonFailureType s3d::Polygon::Validate ( const Array< Vec2 > &  vertices,
const Array< Array< Vec2 >> &  holes = {} 
)
static

◆ Validate() [2/2]

static PolygonFailureType s3d::Polygon::Validate ( const Vec2 pVertex,
size_t  vertexSize,
const Array< Array< Vec2 >> &  holes = {} 
)
static

◆ vertices()

const Array<Float2>& s3d::Polygon::vertices ( ) const
noexcept

多角形のすべての頂点を返します。

Returns
多角形のすべての頂点

Friends And Related Function Documentation

◆ Formatter

void Formatter ( FormatData formatData,
const Polygon value 
)
friend

◆ operator<<

template<class CharType >
std::basic_ostream<CharType>& operator<< ( std::basic_ostream< CharType > &  output,
const Polygon value 
)
friend

The documentation for this class was generated from the following file: