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)
 
LineString & operator= (const Array< Point > &other)
 
LineString & operator= (const Array< Vec2 > &other)
 
LineString & operator= (Array< Vec2 > &&other) noexcept
 
LineString & operator= (const LineString &other)
 
LineString & operator= (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_type & at (size_t index) &
 
const value_type & at (size_t index) const &
 
value_type at (size_t index) &&
 
value_type & operator[] (size_t index) &noexcept
 
const value_type & operator[] (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)
 
LineString & operator<< (const value_type &value)
 
template<class... Args>
iterator emplace (const_iterator position, Args &&... args)
 
template<class... Args>
decltype(auto) emplace_back (Args &&... args)
 
value_type & front () noexcept
 
const value_type & front () const noexcept
 
value_type & back () noexcept
 
const value_type & back () const noexcept
 
void swap (LineString &other) noexcept
 
const value_type * data () const noexcept
 
value_type * data () 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_type & choice ()
 
const value_type & choice () const
 
SIV3D_CONCEPT_URBG value_type & choice (URBG &&rbg)
 
const SIV3D_CONCEPT_URBG value_type & choice (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
 
LineString & fill (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
 
LineString & append (const Array< value_type > &other)
 
LineString & append (const LineString &other)
 
LineString & remove (const value_type &value)
 
LineString & remove_at (size_t index)
 
template<class Fty >
LineString & remove_if (Fty f)
 
LineString & reverse ()
 
LineString reversed () const
 連続する線分の向きを反転した新しい LineString を返します。 More...
 
LineString & shuffle ()
 
SIV3D_CONCEPT_URBG LineString & shuffle (URBG &&rbg)
 
LineString slice (size_t index) const
 
LineString slice (size_t index, size_t length) const
 
LineString & unique_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
 
LineString & moveBy (double x, double y) noexcept
 
LineString & moveBy (Vec2 v) noexcept
 
LineString scaled (double s) const
 
LineString scaled (double sx, double sy) const
 
LineString scaled (Vec2 s) const
 
LineString & scale (double s)
 
LineString & scale (double sx, double sy)
 
LineString & scale (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
 
LineString & scaleAt (Vec2 pos, double s)
 
LineString & scaleAt (Vec2 pos, double sx, double sy)
 
LineString & scaleAt (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< Vec2 > computeNormals (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 LineString & paint (Image &dst, const Color &color) const
 
const LineString & paint (Image &dst, int32 thickness, const Color &color) const
 
const LineString & paintClosed (Image &dst, const Color &color) const
 
const LineString & paintClosed (Image &dst, int32 thickness, const Color &color) const
 
const LineString & overwrite (Image &dst, const Color &color, Antialiased antialiased=Antialiased::Yes) const
 
const LineString & overwrite (Image &dst, int32 thickness, const Color &color, Antialiased antialiased=Antialiased::Yes) const
 
const LineString & overwriteClosed (Image &dst, const Color &color, Antialiased antialiased=Antialiased::Yes) const
 
const LineString & overwriteClosed (Image &dst, int32 thickness, const Color &color, Antialiased antialiased=Antialiased::Yes) const
 
const LineString & draw (const ColorF &color=Palette::White) const
 
const LineString & draw (double thickness, const ColorF &color=Palette::White) const
 連続する線分を描画します。 More...
 
const LineString & draw (double thickness, const Array< ColorF > &colors) const
 連続する線分を描画します。 More...
 
const LineString & draw (const LineStyle &style, double thickness, const ColorF &color=Palette::White) const
 
const LineString & drawClosed (const ColorF &color=Palette::White) const
 終点と始点を結んだうえで、連続する線分を描画します。 More...
 
const LineString & drawClosed (double thickness, const ColorF &color=Palette::White) const
 終点と始点を結んだうえで、連続する線分を描画します。 More...
 
const LineString & drawClosed (double thickness, const Array< ColorF > &colors) const
 
const LineString & drawClosed (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: