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

点の集合(とそれをつないで表現される、連続する線分) More...

#include <LineString.hpp>

Public Types

using base_type = Array< Vec2 >
 
using allocator_type = base_type::allocator_type
 
using value_type = base_type::value_type
 
using size_type = base_type::size_type
 
using difference_type = base_type::difference_type
 
using pointer = base_type::pointer
 
using const_pointer = base_type::const_pointer
 
using reference = base_type::reference
 
using const_reference = base_type::const_reference
 
using iterator = base_type::iterator
 
using const_iterator = base_type::const_iterator
 
using reverse_iterator = base_type::reverse_iterator
 
using const_reverse_iterator = base_type::const_reverse_iterator
 

Public Member Functions

SIV3D_NODISCARD_CXX20 LineString ()=default
 
SIV3D_NODISCARD_CXX20 LineString (const allocator_type &alloc) noexcept
 
SIV3D_NODISCARD_CXX20 LineString (size_t count, const value_type &value, const allocator_type &alloc=allocator_type{})
 
SIV3D_NODISCARD_CXX20 LineString (size_t count, const allocator_type &alloc=allocator_type{})
 
template<class Iterator >
 LineString (Iterator first, Iterator last, const allocator_type &alloc=allocator_type{})
 
SIV3D_NODISCARD_CXX20 LineString (const LineString &lines)
 
SIV3D_NODISCARD_CXX20 LineString (const LineString &lines, const allocator_type &alloc)
 
SIV3D_NODISCARD_CXX20 LineString (LineString &&lines) noexcept
 
SIV3D_NODISCARD_CXX20 LineString (std::initializer_list< value_type > init, const allocator_type &alloc=allocator_type{})
 
SIV3D_NODISCARD_CXX20 LineString (const Array< Point > &points)
 
SIV3D_NODISCARD_CXX20 LineString (const Array< Vec2 > &points)
 
SIV3D_NODISCARD_CXX20 LineString (Array< Vec2 > &&points) noexcept
 
SIV3D_NODISCARD_CXX20 LineString (Arg::reserve_< size_type > size)
 
LineStringoperator= (const Array< Point > &other)
 
LineStringoperator= (const Array< Vec2 > &other)
 
LineStringoperator= (Array< Vec2 > &&other) noexcept
 
LineStringoperator= (const LineString &other)
 
LineStringoperator= (LineString &&other) noexcept
 
const Array< value_type > & asArray () const noexcept
 
 operator const Array< value_type > & () const noexcept
 
template<class Iterator >
void assign (Iterator first, Iterator last)
 
void assign (size_type n, const value_type &value)
 
void assign (std::initializer_list< value_type > il)
 
void assign (const Array< Point > &other)
 
void assign (const Array< Vec2 > &other)
 
void assign (Array< Vec2 > &&other) noexcept
 
void assign (const LineString &other)
 
void assign (LineString &&other) noexcept
 
allocator_type get_allocator () const noexcept
 
value_typeat (size_t index) &
 
const value_typeat (size_t index) const &
 
value_type at (size_t index) &&
 
value_typeoperator[] (size_t index) &noexcept
 
const value_typeoperator[] (size_t index) const &noexcept
 
value_type operator[] (size_t index) &&noexcept
 
void push_front (const value_type &value)
 
void push_back (const value_type &value)
 
void pop_front ()
 
void pop_front_N (size_t n)
 
void pop_back () noexcept
 
void pop_back_N (size_t n)
 
LineStringoperator<< (const value_type &value)
 
template<class... Args>
iterator emplace (const_iterator position, Args &&... args)
 
template<class... Args>
decltype(auto) emplace_back (Args &&... args)
 
value_typefront () noexcept
 
const value_typefront () const noexcept
 
value_typeback () noexcept
 
const value_typeback () const noexcept
 
void swap (LineString &other) noexcept
 
const value_typedata () const noexcept
 
value_typedata () noexcept
 
iterator begin () noexcept
 
iterator end () noexcept
 
const_iterator begin () const noexcept
 
const_iterator end () const noexcept
 
const_iterator cbegin () const noexcept
 
const_iterator cend () const noexcept
 
reverse_iterator rbegin () noexcept
 
reverse_iterator rend () noexcept
 
const_reverse_iterator rbegin () const noexcept
 
const_reverse_iterator rend () const noexcept
 
const_reverse_iterator crbegin () const noexcept
 
const_reverse_iterator crend () const noexcept
 
bool empty () const noexcept
 
bool isEmpty () const noexcept
 
 operator bool () const noexcept
 
size_t size_bytes () const noexcept
 
size_t size () const noexcept
 
size_t max_size () const noexcept
 
void reserve (size_t newCapacity)
 
size_t capacity () const noexcept
 
void shrink_to_fit ()
 
void clear () noexcept
 
void release ()
 
iterator insert (const_iterator where, const value_type &value)
 
iterator insert (const_iterator where, size_t count, const value_type &value)
 
template<class Iterator >
iterator insert (const_iterator where, Iterator first, Iterator last)
 
iterator insert (const_iterator where, std::initializer_list< value_type > il)
 
iterator erase (const_iterator where) noexcept
 
iterator erase (const_iterator first, const_iterator last) noexcept
 
void resize (size_t newSize)
 
void resize (size_t newSize, const value_type &value)
 
template<class Fty = decltype(Identity), std::enable_if_t< std::is_invocable_r_v< bool, Fty, value_type >> * = nullptr>
bool all (Fty f=Identity) const
 
template<class Fty = decltype(Identity), std::enable_if_t< std::is_invocable_r_v< bool, Fty, value_type >> * = nullptr>
bool any (Fty f=Identity) const
 
value_typechoice ()
 
const value_typechoice () const
 
SIV3D_CONCEPT_URBG value_typechoice (URBG &&rbg)
 
const SIV3D_CONCEPT_URBG value_typechoice (URBG &&rbg) const
 
SIV3D_CONCEPT_INTEGRAL LineString choice (Int n) const
 
template<class Size_t , class URBG , std::enable_if_t< std::is_integral_v< Size_t >> * = nullptr, std::enable_if_t< std::conjunction_v< std::is_invocable< URBG & >, std::is_unsigned< std::invoke_result_t< URBG & >>>> * = nullptr>
LineString choice (Size_t n, URBG &&rbg) const
 
size_t count (const value_type &value) const
 
template<class Fty , std::enable_if_t< std::is_invocable_r_v< bool, Fty, value_type >> * = nullptr>
size_t count_if (Fty f) const
 
LineStringfill (const value_type &value)
 
String join (StringView sep=U", "_sv, StringView begin=U"{"_sv, StringView end=U"}"_sv) const
 
template<class Fty = decltype(Identity), std::enable_if_t< std::is_invocable_r_v< bool, Fty, value_type >> * = nullptr>
bool none (Fty f=Identity) const
 
LineStringappend (const Array< value_type > &other)
 
LineStringappend (const LineString &other)
 
LineStringremove (const value_type &value)
 
LineStringremove_at (size_t index)
 
template<class Fty >
LineStringremove_if (Fty f)
 
LineStringreverse ()
 
LineString reversed () const
 連続する線分の向きを反転した新しい LineString を返します。 More...
 
LineStringshuffle ()
 
SIV3D_CONCEPT_URBG LineStringshuffle (URBG &&rbg)
 
LineString slice (size_t index) const
 
LineString slice (size_t index, size_t length) const
 
LineStringunique_consecutive ()
 
LineString uniqued_consecutive () const &
 
LineString uniqued_consecutive () &&
 
size_t num_points () const noexcept
 LineString を構成する頂点の数を返します。 More...
 
size_t num_lines (CloseRing closeRing=CloseRing::No) const noexcept
 LineString を構成する線分の数を返します。 More...
 
Line line (size_t index, CloseRing closeRing=CloseRing::No) const
 LineString を構成する線分を返します。 More...
 
Vec2 normalAtPoint (size_t index, CloseRing closeRing=CloseRing::No) const
 指定した頂点における進行方向左手の単位ベクトルを返します。 More...
 
Vec2 normalAtLine (size_t index, CloseRing closeRing=CloseRing::No) const
 指定した線分における進行方向左手の単位ベクトルを返します。 More...
 
LineString movedBy (double x, double y) const
 
LineString movedBy (Vec2 v) const
 
LineStringmoveBy (double x, double y) noexcept
 
LineStringmoveBy (Vec2 v) noexcept
 
LineString scaled (double s) const
 
LineString scaled (double sx, double sy) const
 
LineString scaled (Vec2 s) const
 
LineStringscale (double s)
 
LineStringscale (double sx, double sy)
 
LineStringscale (Vec2 s)
 
LineString scaledAt (Vec2 pos, double s) const
 
LineString scaledAt (Vec2 pos, double sx, double sy) const
 
LineString scaledAt (Vec2 pos, Vec2 s) const
 
LineStringscaleAt (Vec2 pos, double s)
 
LineStringscaleAt (Vec2 pos, double sx, double sy)
 
LineStringscaleAt (Vec2 pos, Vec2 s)
 
RectF computeBoundingRect () const noexcept
 
LineString simplified (double maxDistance=2.0, CloseRing closeRing=CloseRing::No) const
 連続する線分を単純化した LineString を返します。 More...
 
LineString densified (double maxDistance, CloseRing closeRing=CloseRing::No) const
 点と点の間の距離が maxDistance より大きくならないよう、区間ごとに最小回数で均等に分割した結果を返します。 More...
 
LineString catmullRom (int32 interpolation=24) const
 Catmull-Rom スプライン曲線を返します。 More...
 
LineString catmullRom (CloseRing closeRing, int32 interpolation=24) const
 Catmull-Rom スプライン曲線を返します。 More...
 
double calculateLength (CloseRing closeRing=CloseRing::No) const noexcept
 連続する線分全体の長さを返します。 More...
 
Vec2 calculatePointFromOrigin (double distanceFromOrigin, CloseRing closeRing=CloseRing::No) const
 始点から指定した距離にある、線分上の点を返します More...
 
LineString extractLineString (double distanceFromOrigin, CloseRing closeRing=CloseRing::No) const
 部分 LineString を返します。 More...
 
LineString extractLineString (double distanceFromOrigin, double length, CloseRing closeRing=CloseRing::No) const
 部分 LineString を返します。 More...
 
Array< Vec2computeNormals (CloseRing closeRing=CloseRing::No) const
 
Polygon calculateBuffer (double distance, int32 bufferQuality=24) const
 太らせた多角形を作成します。 More...
 
Polygon calculateBufferClosed (double distance, int32 bufferQuality=24) const
 終点と始点を結んだうえで、太らせた多角形を作成します。 More...
 
Polygon calculateRoundBuffer (double distance, int32 bufferQuality=24) const
 丸く太らせた多角形を作成します。 More...
 
Polygon calculateRoundBufferClosed (double distance, int32 bufferQuality=24) const
 終点と始点を結んだうえで、丸く太らせた多角形を作成します。 More...
 
Spline2D asSpline (CloseRing closeRing=CloseRing::No) const
 
template<class Shape2DType >
constexpr bool intersects (const Shape2DType &other) const
 
template<class Shape2DType >
Optional< Array< Vec2 > > intersectsAt (const Shape2DType &other) const
 
const LineStringpaint (Image &dst, const Color &color) const
 
const LineStringpaint (Image &dst, int32 thickness, const Color &color) const
 
const LineStringpaintClosed (Image &dst, const Color &color) const
 
const LineStringpaintClosed (Image &dst, int32 thickness, const Color &color) const
 
const LineStringoverwrite (Image &dst, const Color &color, Antialiased antialiased=Antialiased::Yes) const
 
const LineStringoverwrite (Image &dst, int32 thickness, const Color &color, Antialiased antialiased=Antialiased::Yes) const
 
const LineStringoverwriteClosed (Image &dst, const Color &color, Antialiased antialiased=Antialiased::Yes) const
 
const LineStringoverwriteClosed (Image &dst, int32 thickness, const Color &color, Antialiased antialiased=Antialiased::Yes) const
 
const LineStringdraw (const ColorF &color=Palette::White) const
 
const LineStringdraw (double thickness, const ColorF &color=Palette::White) const
 連続する線分を描画します。 More...
 
const LineStringdraw (double thickness, const Array< ColorF > &colors) const
 連続する線分を描画します。 More...
 
const LineStringdraw (const LineStyle &style, double thickness, const ColorF &color=Palette::White) const
 
const LineStringdrawClosed (const ColorF &color=Palette::White) const
 終点と始点を結んだうえで、連続する線分を描画します。 More...
 
const LineStringdrawClosed (double thickness, const ColorF &color=Palette::White) const
 終点と始点を結んだうえで、連続する線分を描画します。 More...
 
const LineStringdrawClosed (double thickness, const Array< ColorF > &colors) const
 
const LineStringdrawClosed (const LineStyle &style, double thickness, const ColorF &color=Palette::White) const
 

Friends

void Formatter (FormatData &formatData, const LineString &value)
 

Detailed Description

点の集合(とそれをつないで表現される、連続する線分)

Member Typedef Documentation

◆ allocator_type

◆ base_type

◆ const_iterator

◆ const_pointer

◆ const_reference

◆ const_reverse_iterator

◆ difference_type

◆ iterator

◆ pointer

◆ reference

◆ reverse_iterator

◆ size_type

◆ value_type

Constructor & Destructor Documentation

◆ LineString() [1/13]

SIV3D_NODISCARD_CXX20 s3d::LineString::LineString ( )
default

◆ LineString() [2/13]

SIV3D_NODISCARD_CXX20 s3d::LineString::LineString ( const allocator_type alloc)
explicitnoexcept

◆ LineString() [3/13]

SIV3D_NODISCARD_CXX20 s3d::LineString::LineString ( size_t  count,
const value_type value,
const allocator_type alloc = allocator_type{} 
)

◆ LineString() [4/13]

SIV3D_NODISCARD_CXX20 s3d::LineString::LineString ( size_t  count,
const allocator_type alloc = allocator_type{} 
)
explicit

◆ LineString() [5/13]

template<class Iterator >
s3d::LineString::LineString ( Iterator  first,
Iterator  last,
const allocator_type alloc = allocator_type{} 
)

◆ LineString() [6/13]

SIV3D_NODISCARD_CXX20 s3d::LineString::LineString ( const LineString lines)

◆ LineString() [7/13]

SIV3D_NODISCARD_CXX20 s3d::LineString::LineString ( const LineString lines,
const allocator_type alloc 
)

◆ LineString() [8/13]

SIV3D_NODISCARD_CXX20 s3d::LineString::LineString ( LineString &&  lines)
noexcept

◆ LineString() [9/13]

SIV3D_NODISCARD_CXX20 s3d::LineString::LineString ( std::initializer_list< value_type init,
const allocator_type alloc = allocator_type{} 
)

◆ LineString() [10/13]

SIV3D_NODISCARD_CXX20 s3d::LineString::LineString ( const Array< Point > &  points)
explicit

◆ LineString() [11/13]

SIV3D_NODISCARD_CXX20 s3d::LineString::LineString ( const Array< Vec2 > &  points)
explicit

◆ LineString() [12/13]

SIV3D_NODISCARD_CXX20 s3d::LineString::LineString ( Array< Vec2 > &&  points)
explicitnoexcept

◆ LineString() [13/13]

SIV3D_NODISCARD_CXX20 s3d::LineString::LineString ( Arg::reserve_< size_type size)
explicit

Member Function Documentation

◆ all()

template<class Fty = decltype(Identity), std::enable_if_t< std::is_invocable_r_v< bool, Fty, value_type >> * = nullptr>
bool s3d::LineString::all ( Fty  f = Identity) const

◆ any()

template<class Fty = decltype(Identity), std::enable_if_t< std::is_invocable_r_v< bool, Fty, value_type >> * = nullptr>
bool s3d::LineString::any ( Fty  f = Identity) const

◆ append() [1/2]

LineString& s3d::LineString::append ( const Array< value_type > &  other)

◆ append() [2/2]

LineString& s3d::LineString::append ( const LineString other)

◆ asArray()

const Array<value_type>& s3d::LineString::asArray ( ) const
noexcept

◆ assign() [1/8]

void s3d::LineString::assign ( Array< Vec2 > &&  other)
noexcept

◆ assign() [2/8]

void s3d::LineString::assign ( const Array< Point > &  other)

◆ assign() [3/8]

void s3d::LineString::assign ( const Array< Vec2 > &  other)

◆ assign() [4/8]

void s3d::LineString::assign ( const LineString other)

◆ assign() [5/8]

template<class Iterator >
void s3d::LineString::assign ( Iterator  first,
Iterator  last 
)

◆ assign() [6/8]

void s3d::LineString::assign ( LineString &&  other)
noexcept

◆ assign() [7/8]

void s3d::LineString::assign ( size_type  n,
const value_type value 
)

◆ assign() [8/8]

void s3d::LineString::assign ( std::initializer_list< value_type il)

◆ asSpline()

Spline2D s3d::LineString::asSpline ( CloseRing  closeRing = CloseRing::No) const

◆ at() [1/3]

value_type& s3d::LineString::at ( size_t  index) &

◆ at() [2/3]

value_type s3d::LineString::at ( size_t  index) &&

◆ at() [3/3]

const value_type& s3d::LineString::at ( size_t  index) const &

◆ back() [1/2]

const value_type& s3d::LineString::back ( ) const
noexcept

◆ back() [2/2]

value_type& s3d::LineString::back ( )
noexcept

◆ begin() [1/2]

const_iterator s3d::LineString::begin ( ) const
noexcept

◆ begin() [2/2]

iterator s3d::LineString::begin ( )
noexcept

◆ calculateBuffer()

Polygon s3d::LineString::calculateBuffer ( double  distance,
int32  bufferQuality = 24 
) const

太らせた多角形を作成します。

Parameters
distance太らせる距離(ピクセル)
bufferQuality品質
Returns
太らせた多角形

◆ calculateBufferClosed()

Polygon s3d::LineString::calculateBufferClosed ( double  distance,
int32  bufferQuality = 24 
) const

終点と始点を結んだうえで、太らせた多角形を作成します。

Parameters
distance太らせる距離(ピクセル)
bufferQuality品質
Returns
太らせた多角形

◆ calculateLength()

double s3d::LineString::calculateLength ( CloseRing  closeRing = CloseRing::No) const
noexcept

連続する線分全体の長さを返します。

Parameters
closeRing終点と始点を結ぶか
Returns
連続する線分全体の長さ

◆ calculatePointFromOrigin()

Vec2 s3d::LineString::calculatePointFromOrigin ( double  distanceFromOrigin,
CloseRing  closeRing = CloseRing::No 
) const

始点から指定した距離にある、線分上の点を返します

Parameters
distanceFromOrigin始点からの距離
closeRing終点と始点を結ぶか
Returns
始点から指定した距離にある線分上の点

◆ calculateRoundBuffer()

Polygon s3d::LineString::calculateRoundBuffer ( double  distance,
int32  bufferQuality = 24 
) const

丸く太らせた多角形を作成します。

Parameters
distance太らせる距離(ピクセル)
bufferQuality品質
Returns
丸く太らせた多角形

◆ calculateRoundBufferClosed()

Polygon s3d::LineString::calculateRoundBufferClosed ( double  distance,
int32  bufferQuality = 24 
) const

終点と始点を結んだうえで、丸く太らせた多角形を作成します。

Parameters
distance太らせる距離(ピクセル)
bufferQuality品質
Returns
丸く太らせた多角形

◆ capacity()

size_t s3d::LineString::capacity ( ) const
noexcept

◆ catmullRom() [1/2]

LineString s3d::LineString::catmullRom ( CloseRing  closeRing,
int32  interpolation = 24 
) const

Catmull-Rom スプライン曲線を返します。

Parameters
closeRing終点と始点を結ぶか
interpolation分割の品質
Returns
Catmull-Rom スプライン曲線

◆ catmullRom() [2/2]

LineString s3d::LineString::catmullRom ( int32  interpolation = 24) const

Catmull-Rom スプライン曲線を返します。

Parameters
interpolation分割の品質
Returns
Catmull-Rom スプライン曲線

◆ cbegin()

const_iterator s3d::LineString::cbegin ( ) const
noexcept

◆ cend()

const_iterator s3d::LineString::cend ( ) const
noexcept

◆ choice() [1/6]

value_type& s3d::LineString::choice ( )

◆ choice() [2/6]

const value_type& s3d::LineString::choice ( ) const

◆ choice() [3/6]

SIV3D_CONCEPT_INTEGRAL LineString s3d::LineString::choice ( Int  n) const

◆ choice() [4/6]

template<class Size_t , class URBG , std::enable_if_t< std::is_integral_v< Size_t >> * = nullptr, std::enable_if_t< std::conjunction_v< std::is_invocable< URBG & >, std::is_unsigned< std::invoke_result_t< URBG & >>>> * = nullptr>
LineString s3d::LineString::choice ( Size_t  n,
URBG &&  rbg 
) const

◆ choice() [5/6]

SIV3D_CONCEPT_URBG value_type& s3d::LineString::choice ( URBG &&  rbg)

◆ choice() [6/6]

const SIV3D_CONCEPT_URBG value_type& s3d::LineString::choice ( URBG &&  rbg) const

◆ clear()

void s3d::LineString::clear ( )
noexcept

◆ computeBoundingRect()

RectF s3d::LineString::computeBoundingRect ( ) const
noexcept

◆ computeNormals()

Array<Vec2> s3d::LineString::computeNormals ( CloseRing  closeRing = CloseRing::No) const

◆ count()

size_t s3d::LineString::count ( const value_type value) const

◆ count_if()

template<class Fty , std::enable_if_t< std::is_invocable_r_v< bool, Fty, value_type >> * = nullptr>
size_t s3d::LineString::count_if ( Fty  f) const

◆ crbegin()

const_reverse_iterator s3d::LineString::crbegin ( ) const
noexcept

◆ crend()

const_reverse_iterator s3d::LineString::crend ( ) const
noexcept

◆ data() [1/2]

const value_type* s3d::LineString::data ( ) const
noexcept

◆ data() [2/2]

value_type* s3d::LineString::data ( )
noexcept

◆ densified()

LineString s3d::LineString::densified ( double  maxDistance,
CloseRing  closeRing = CloseRing::No 
) const

点と点の間の距離が maxDistance より大きくならないよう、区間ごとに最小回数で均等に分割した結果を返します。

Parameters
maxDistance点と点の間の最大距離
closeRing終点と始点を結ぶか
Returns
分割した結果

◆ draw() [1/4]

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

◆ draw() [2/4]

const LineString& s3d::LineString::draw ( const LineStyle style,
double  thickness,
const ColorF color = Palette::White 
) const

◆ draw() [3/4]

const LineString& s3d::LineString::draw ( double  thickness,
const Array< ColorF > &  colors 
) const

連続する線分を描画します。

Parameters
thickness線の太さ(ピクセル)
colors各頂点に割り当てる色
Returns
*this

◆ draw() [4/4]

const LineString& s3d::LineString::draw ( double  thickness,
const ColorF color = Palette::White 
) const

連続する線分を描画します。

Parameters
thickness線の太さ(ピクセル)
color
Returns
*this

◆ drawClosed() [1/4]

const LineString& s3d::LineString::drawClosed ( const ColorF color = Palette::White) const

終点と始点を結んだうえで、連続する線分を描画します。

Parameters
color
Returns
*this

◆ drawClosed() [2/4]

const LineString& s3d::LineString::drawClosed ( const LineStyle style,
double  thickness,
const ColorF color = Palette::White 
) const

◆ drawClosed() [3/4]

const LineString& s3d::LineString::drawClosed ( double  thickness,
const Array< ColorF > &  colors 
) const

◆ drawClosed() [4/4]

const LineString& s3d::LineString::drawClosed ( double  thickness,
const ColorF color = Palette::White 
) const

終点と始点を結んだうえで、連続する線分を描画します。

Parameters
thickness線の太さ(ピクセル)
color
Returns
*this

◆ emplace()

template<class... Args>
iterator s3d::LineString::emplace ( const_iterator  position,
Args &&...  args 
)

◆ emplace_back()

template<class... Args>
decltype(auto) s3d::LineString::emplace_back ( Args &&...  args)

◆ empty()

bool s3d::LineString::empty ( ) const
noexcept

◆ end() [1/2]

const_iterator s3d::LineString::end ( ) const
noexcept

◆ end() [2/2]

iterator s3d::LineString::end ( )
noexcept

◆ erase() [1/2]

iterator s3d::LineString::erase ( const_iterator  first,
const_iterator  last 
)
noexcept

◆ erase() [2/2]

iterator s3d::LineString::erase ( const_iterator  where)
noexcept

◆ extractLineString() [1/2]

LineString s3d::LineString::extractLineString ( double  distanceFromOrigin,
CloseRing  closeRing = CloseRing::No 
) const

部分 LineString を返します。

Parameters
distanceFromOrigin始点からの距離
closeRing終点と始点を結ぶか
Returns
部分 LineString

◆ extractLineString() [2/2]

LineString s3d::LineString::extractLineString ( double  distanceFromOrigin,
double  length,
CloseRing  closeRing = CloseRing::No 
) const

部分 LineString を返します。

Parameters
distanceFromOrigin始点からの距離
length長さ
closeRing終点と始点を結ぶか
Returns
部分 LineString

◆ fill()

LineString& s3d::LineString::fill ( const value_type value)

◆ front() [1/2]

const value_type& s3d::LineString::front ( ) const
noexcept

◆ front() [2/2]

value_type& s3d::LineString::front ( )
noexcept

◆ get_allocator()

allocator_type s3d::LineString::get_allocator ( ) const
noexcept

◆ insert() [1/4]

iterator s3d::LineString::insert ( const_iterator  where,
const value_type value 
)

◆ insert() [2/4]

template<class Iterator >
iterator s3d::LineString::insert ( const_iterator  where,
Iterator  first,
Iterator  last 
)

◆ insert() [3/4]

iterator s3d::LineString::insert ( const_iterator  where,
size_t  count,
const value_type value 
)

◆ insert() [4/4]

iterator s3d::LineString::insert ( const_iterator  where,
std::initializer_list< value_type il 
)

◆ intersects()

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

◆ intersectsAt()

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

◆ isEmpty()

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

◆ join()

String s3d::LineString::join ( StringView  sep = U", "_sv,
StringView  begin = U"{"_sv,
StringView  end = U"}"_sv 
) const

◆ line()

Line s3d::LineString::line ( size_t  index,
CloseRing  closeRing = CloseRing::No 
) const

LineString を構成する線分を返します。

Parameters
index線分のインデックス
closeRing終点と始点を結ぶか
Returns
LineString を構成する線分

◆ max_size()

size_t s3d::LineString::max_size ( ) const
noexcept

◆ moveBy() [1/2]

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

◆ moveBy() [2/2]

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

◆ movedBy() [1/2]

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

◆ movedBy() [2/2]

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

◆ none()

template<class Fty = decltype(Identity), std::enable_if_t< std::is_invocable_r_v< bool, Fty, value_type >> * = nullptr>
bool s3d::LineString::none ( Fty  f = Identity) const

◆ normalAtLine()

Vec2 s3d::LineString::normalAtLine ( size_t  index,
CloseRing  closeRing = CloseRing::No 
) const

指定した線分における進行方向左手の単位ベクトルを返します。

Parameters
index線分のインデックス
closeRing終点と始点を結ぶか
Returns
指定した線分における進行方向左手の単位ベクトル

◆ normalAtPoint()

Vec2 s3d::LineString::normalAtPoint ( size_t  index,
CloseRing  closeRing = CloseRing::No 
) const

指定した頂点における進行方向左手の単位ベクトルを返します。

Parameters
index頂点のインデックス
closeRing終点と始点を結ぶか
Returns
指定した頂点における進行方向左手の単位ベクトル

◆ num_lines()

size_t s3d::LineString::num_lines ( CloseRing  closeRing = CloseRing::No) const
noexcept

LineString を構成する線分の数を返します。

Parameters
closeRing終点と始点を結ぶか
Returns
LineString を構成する線分の数

◆ num_points()

size_t s3d::LineString::num_points ( ) const
noexcept

LineString を構成する頂点の数を返します。

Remarks
size() と同じです。
Returns
LineString を構成する頂点の数

◆ operator bool()

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

◆ operator const Array< value_type > &()

s3d::LineString::operator const Array< value_type > & ( ) const
noexcept

◆ operator<<()

LineString& s3d::LineString::operator<< ( const value_type value)

◆ operator=() [1/5]

LineString& s3d::LineString::operator= ( Array< Vec2 > &&  other)
noexcept

◆ operator=() [2/5]

LineString& s3d::LineString::operator= ( const Array< Point > &  other)

◆ operator=() [3/5]

LineString& s3d::LineString::operator= ( const Array< Vec2 > &  other)

◆ operator=() [4/5]

LineString& s3d::LineString::operator= ( const LineString other)

◆ operator=() [5/5]

LineString& s3d::LineString::operator= ( LineString &&  other)
noexcept

◆ operator[]() [1/3]

value_type s3d::LineString::operator[] ( size_t  index) &&
noexcept

◆ operator[]() [2/3]

value_type& s3d::LineString::operator[] ( size_t  index) &
noexcept

◆ operator[]() [3/3]

const value_type& s3d::LineString::operator[] ( size_t  index) const &
noexcept

◆ overwrite() [1/2]

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

◆ overwrite() [2/2]

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

◆ overwriteClosed() [1/2]

const LineString& s3d::LineString::overwriteClosed ( Image dst,
const Color color,
Antialiased  antialiased = Antialiased::Yes 
) const

◆ overwriteClosed() [2/2]

const LineString& s3d::LineString::overwriteClosed ( Image dst,
int32  thickness,
const Color color,
Antialiased  antialiased = Antialiased::Yes 
) const

◆ paint() [1/2]

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

◆ paint() [2/2]

const LineString& s3d::LineString::paint ( Image dst,
int32  thickness,
const Color color 
) const

◆ paintClosed() [1/2]

const LineString& s3d::LineString::paintClosed ( Image dst,
const Color color 
) const

◆ paintClosed() [2/2]

const LineString& s3d::LineString::paintClosed ( Image dst,
int32  thickness,
const Color color 
) const

◆ pop_back()

void s3d::LineString::pop_back ( )
noexcept

◆ pop_back_N()

void s3d::LineString::pop_back_N ( size_t  n)

◆ pop_front()

void s3d::LineString::pop_front ( )

◆ pop_front_N()

void s3d::LineString::pop_front_N ( size_t  n)

◆ push_back()

void s3d::LineString::push_back ( const value_type value)

◆ push_front()

void s3d::LineString::push_front ( const value_type value)

◆ rbegin() [1/2]

const_reverse_iterator s3d::LineString::rbegin ( ) const
noexcept

◆ rbegin() [2/2]

reverse_iterator s3d::LineString::rbegin ( )
noexcept

◆ release()

void s3d::LineString::release ( )

◆ remove()

LineString& s3d::LineString::remove ( const value_type value)

◆ remove_at()

LineString& s3d::LineString::remove_at ( size_t  index)

◆ remove_if()

template<class Fty >
LineString& s3d::LineString::remove_if ( Fty  f)

◆ rend() [1/2]

const_reverse_iterator s3d::LineString::rend ( ) const
noexcept

◆ rend() [2/2]

reverse_iterator s3d::LineString::rend ( )
noexcept

◆ reserve()

void s3d::LineString::reserve ( size_t  newCapacity)

◆ resize() [1/2]

void s3d::LineString::resize ( size_t  newSize)

◆ resize() [2/2]

void s3d::LineString::resize ( size_t  newSize,
const value_type value 
)

◆ reverse()

LineString& s3d::LineString::reverse ( )

◆ reversed()

LineString s3d::LineString::reversed ( ) const

連続する線分の向きを反転した新しい LineString を返します。

Returns
連続する線分の向きを反転した新しい LineString

◆ scale() [1/3]

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

◆ scale() [2/3]

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

◆ scale() [3/3]

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

◆ scaleAt() [1/3]

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

◆ scaleAt() [2/3]

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

◆ scaleAt() [3/3]

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

◆ scaled() [1/3]

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

◆ scaled() [2/3]

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

◆ scaled() [3/3]

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

◆ scaledAt() [1/3]

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

◆ scaledAt() [2/3]

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

◆ scaledAt() [3/3]

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

◆ shrink_to_fit()

void s3d::LineString::shrink_to_fit ( )

◆ shuffle() [1/2]

LineString& s3d::LineString::shuffle ( )

◆ shuffle() [2/2]

SIV3D_CONCEPT_URBG LineString& s3d::LineString::shuffle ( URBG &&  rbg)

◆ simplified()

LineString s3d::LineString::simplified ( double  maxDistance = 2.0,
CloseRing  closeRing = CloseRing::No 
) const

連続する線分を単純化した LineString を返します。

Parameters
maxDistance単純化の大きさ
closeRing終点と始点を結ぶか
Returns
単純化した LineString

◆ size()

size_t s3d::LineString::size ( ) const
noexcept

◆ size_bytes()

size_t s3d::LineString::size_bytes ( ) const
noexcept

◆ slice() [1/2]

LineString s3d::LineString::slice ( size_t  index) const

◆ slice() [2/2]

LineString s3d::LineString::slice ( size_t  index,
size_t  length 
) const

◆ swap()

void s3d::LineString::swap ( LineString other)
noexcept

◆ unique_consecutive()

LineString& s3d::LineString::unique_consecutive ( )

◆ uniqued_consecutive() [1/2]

LineString s3d::LineString::uniqued_consecutive ( ) &&

◆ uniqued_consecutive() [2/2]

LineString s3d::LineString::uniqued_consecutive ( ) const &

Friends And Related Function Documentation

◆ Formatter

void Formatter ( FormatData formatData,
const LineString value 
)
friend

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