OpenSiv3D  v0.6.5
C++20 framework for creative coding
s3d::MeshData Struct Reference

#include <MeshData.hpp>

Public Member Functions

SIV3D_NODISCARD_CXX20 MeshData ()=default
 
SIV3D_NODISCARD_CXX20 MeshData (size_t vertexCount, size_t triangleCount)
 
SIV3D_NODISCARD_CXX20 MeshData (Array< Vertex3D > _vertices, Array< TriangleIndex32 > _indices)
 
MeshDatacomputeNormals (NormalComputation normalComputation=NormalComputation::Default)
 
MeshDataflipTriangles () noexcept
 
MeshDataweld (std::function< bool(const Vertex3D &, const Vertex3D &)> weldTest)
 
MeshDatascale (double s)
 
MeshDatascale (double sx, double sy, double sz)
 
MeshDatascale (Float3 s)
 
MeshDatatranslate (double x, double y, double z)
 
MeshDatatranslate (Float3 v)
 
MeshDatarotate (Quaternion quaternion)
 
s3d::Sphere computeBoundingSphere () const
 
s3d::Box computeBoundingBox () const
 

Static Public Member Functions

static MeshData Billboard (Float2 uvScale=Float2{ 1.0f, 1.0f }, Float2 uvOffset=Float2{ 0.0f, 0.0f })
 
static MeshData OneSidedPlane (double size, Float2 uvScale=Float2{ 1.0f, 1.0f }, Float2 uvOffset=Float2{ 0.0f, 0.0f })
 
static MeshData OneSidedPlane (Float3 center, double size, Float2 uvScale=Float2{ 1.0f, 1.0f }, Float2 uvOffset=Float2{ 0.0f, 0.0f })
 
static MeshData OneSidedPlane (Float2 size, Float2 uvScale=Float2{ 1.0f, 1.0f }, Float2 uvOffset=Float2{ 0.0f, 0.0f })
 
static MeshData OneSidedPlane (Float3 center, Float2 size, Float2 uvScale=Float2{ 1.0f, 1.0f }, Float2 uvOffset=Float2{ 0.0f, 0.0f })
 
static MeshData TwoSidedPlane (double size)
 
static MeshData TwoSidedPlane (Float3 center, double size)
 
static MeshData TwoSidedPlane (Float2 size)
 
static MeshData TwoSidedPlane (Float3 center, Float2 size)
 
static MeshData Box (double size)
 
static MeshData Box (Float3 size)
 
static MeshData Box (Float3 center, Float3 size)
 
static MeshData Sphere (double r, uint32 quality=12)
 
static MeshData Sphere (Float3 center, double r, uint32 quality=12)
 
static MeshData SubdividedSphere (double r, uint32 subdivisions=2)
 
static MeshData SubdividedSphere (Float3 center, double r, uint32 subdivisions=2)
 
static MeshData RoundedBox (double r, Float3 size, uint32 quality=3)
 
static MeshData Disc (double r, uint32 quality=24)
 
static MeshData Disc (Float3 center, double r, uint32 quality=24)
 
static MeshData Cylinder (double r, double h, uint32 quality=24)
 
static MeshData Cylinder (Float3 center, double r, double h, uint32 quality=24)
 
static MeshData Cone (double r, double h, uint32 quality=24)
 
static MeshData Cone (Float3 bottomCenter, double r, double h, uint32 quality=24)
 
static MeshData Pyramid (double w, double h)
 
static MeshData Pyramid (Float3 bottomCenter, double w, double h)
 
static MeshData Grid (Float2 sizeXZ, int32 gridX, int32 gridZ, Float2 uvScale={ 1.0f, 1.0f }, Float2 uvOffset={ 0.0f, 0.0f })
 
static MeshData Grid (Float3 center, Float2 sizeXZ, int32 gridX, int32 gridZ, Float2 uvScale={ 1.0f, 1.0f }, Float2 uvOffset={ 0.0f, 0.0f })
 
static MeshData Torus (double radius, double tubeRadius, uint32 ringQuality=24, uint32 tubeQuality=12)
 
static MeshData Torus (Float3 center, double radius, double tubeRadius, uint32 ringQuality=24, uint32 tubeQuality=12)
 
static MeshData Hemisphere (double r, uint32 phiQuality=24, uint32 thetaQuality=12)
 
static MeshData Hemisphere (Float3 center, double r, uint32 phiQuality=24, uint32 thetaQuality=12)
 
static MeshData Tetrahedron (double size)
 
static MeshData Tetrahedron (Float3 center, double size)
 
static MeshData Octahedron (double size)
 
static MeshData Octahedron (Float3 center, double size)
 
static MeshData Dodecahedron (double size)
 
static MeshData Dodecahedron (Float3 center, double size)
 
static MeshData Icosahedron (double size)
 
static MeshData Icosahedron (Float3 center, double size)
 

Public Attributes

Array< Vertex3Dvertices
 
Array< TriangleIndex32indices
 

Constructor & Destructor Documentation

◆ MeshData() [1/3]

SIV3D_NODISCARD_CXX20 s3d::MeshData::MeshData ( )
default

◆ MeshData() [2/3]

SIV3D_NODISCARD_CXX20 s3d::MeshData::MeshData ( size_t  vertexCount,
size_t  triangleCount 
)

◆ MeshData() [3/3]

SIV3D_NODISCARD_CXX20 s3d::MeshData::MeshData ( Array< Vertex3D _vertices,
Array< TriangleIndex32 _indices 
)

Member Function Documentation

◆ Billboard()

static MeshData s3d::MeshData::Billboard ( Float2  uvScale = Float2{ 1.0f, 1.0f },
Float2  uvOffset = Float2{ 0.0f, 0.0f } 
)
static

◆ Box() [1/3]

static MeshData s3d::MeshData::Box ( double  size)
static

◆ Box() [2/3]

static MeshData s3d::MeshData::Box ( Float3  center,
Float3  size 
)
static

◆ Box() [3/3]

static MeshData s3d::MeshData::Box ( Float3  size)
static

◆ computeBoundingBox()

s3d::Box s3d::MeshData::computeBoundingBox ( ) const

◆ computeBoundingSphere()

s3d::Sphere s3d::MeshData::computeBoundingSphere ( ) const

◆ computeNormals()

MeshData& s3d::MeshData::computeNormals ( NormalComputation  normalComputation = NormalComputation::Default)

◆ Cone() [1/2]

static MeshData s3d::MeshData::Cone ( double  r,
double  h,
uint32  quality = 24 
)
static

◆ Cone() [2/2]

static MeshData s3d::MeshData::Cone ( Float3  bottomCenter,
double  r,
double  h,
uint32  quality = 24 
)
static

◆ Cylinder() [1/2]

static MeshData s3d::MeshData::Cylinder ( double  r,
double  h,
uint32  quality = 24 
)
static

◆ Cylinder() [2/2]

static MeshData s3d::MeshData::Cylinder ( Float3  center,
double  r,
double  h,
uint32  quality = 24 
)
static

◆ Disc() [1/2]

static MeshData s3d::MeshData::Disc ( double  r,
uint32  quality = 24 
)
static

◆ Disc() [2/2]

static MeshData s3d::MeshData::Disc ( Float3  center,
double  r,
uint32  quality = 24 
)
static

◆ Dodecahedron() [1/2]

static MeshData s3d::MeshData::Dodecahedron ( double  size)
static

◆ Dodecahedron() [2/2]

static MeshData s3d::MeshData::Dodecahedron ( Float3  center,
double  size 
)
static

◆ flipTriangles()

MeshData& s3d::MeshData::flipTriangles ( )
noexcept

◆ Grid() [1/2]

static MeshData s3d::MeshData::Grid ( Float2  sizeXZ,
int32  gridX,
int32  gridZ,
Float2  uvScale = { 1.0f, 1.0f },
Float2  uvOffset = { 0.0f, 0.0f } 
)
static

◆ Grid() [2/2]

static MeshData s3d::MeshData::Grid ( Float3  center,
Float2  sizeXZ,
int32  gridX,
int32  gridZ,
Float2  uvScale = { 1.0f, 1.0f },
Float2  uvOffset = { 0.0f, 0.0f } 
)
static

◆ Hemisphere() [1/2]

static MeshData s3d::MeshData::Hemisphere ( double  r,
uint32  phiQuality = 24,
uint32  thetaQuality = 12 
)
static

◆ Hemisphere() [2/2]

static MeshData s3d::MeshData::Hemisphere ( Float3  center,
double  r,
uint32  phiQuality = 24,
uint32  thetaQuality = 12 
)
static

◆ Icosahedron() [1/2]

static MeshData s3d::MeshData::Icosahedron ( double  size)
static

◆ Icosahedron() [2/2]

static MeshData s3d::MeshData::Icosahedron ( Float3  center,
double  size 
)
static

◆ Octahedron() [1/2]

static MeshData s3d::MeshData::Octahedron ( double  size)
static

◆ Octahedron() [2/2]

static MeshData s3d::MeshData::Octahedron ( Float3  center,
double  size 
)
static

◆ OneSidedPlane() [1/4]

static MeshData s3d::MeshData::OneSidedPlane ( double  size,
Float2  uvScale = Float2{ 1.0f, 1.0f },
Float2  uvOffset = Float2{ 0.0f, 0.0f } 
)
static

◆ OneSidedPlane() [2/4]

static MeshData s3d::MeshData::OneSidedPlane ( Float2  size,
Float2  uvScale = Float2{ 1.0f, 1.0f },
Float2  uvOffset = Float2{ 0.0f, 0.0f } 
)
static

◆ OneSidedPlane() [3/4]

static MeshData s3d::MeshData::OneSidedPlane ( Float3  center,
double  size,
Float2  uvScale = Float2{ 1.0f, 1.0f },
Float2  uvOffset = Float2{ 0.0f, 0.0f } 
)
static

◆ OneSidedPlane() [4/4]

static MeshData s3d::MeshData::OneSidedPlane ( Float3  center,
Float2  size,
Float2  uvScale = Float2{ 1.0f, 1.0f },
Float2  uvOffset = Float2{ 0.0f, 0.0f } 
)
static

◆ Pyramid() [1/2]

static MeshData s3d::MeshData::Pyramid ( double  w,
double  h 
)
static

◆ Pyramid() [2/2]

static MeshData s3d::MeshData::Pyramid ( Float3  bottomCenter,
double  w,
double  h 
)
static

◆ rotate()

MeshData& s3d::MeshData::rotate ( Quaternion  quaternion)

◆ RoundedBox()

static MeshData s3d::MeshData::RoundedBox ( double  r,
Float3  size,
uint32  quality = 3 
)
static

◆ scale() [1/3]

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

◆ scale() [2/3]

MeshData& s3d::MeshData::scale ( double  sx,
double  sy,
double  sz 
)

◆ scale() [3/3]

MeshData& s3d::MeshData::scale ( Float3  s)

◆ Sphere() [1/2]

static MeshData s3d::MeshData::Sphere ( double  r,
uint32  quality = 12 
)
static

◆ Sphere() [2/2]

static MeshData s3d::MeshData::Sphere ( Float3  center,
double  r,
uint32  quality = 12 
)
static

◆ SubdividedSphere() [1/2]

static MeshData s3d::MeshData::SubdividedSphere ( double  r,
uint32  subdivisions = 2 
)
static

◆ SubdividedSphere() [2/2]

static MeshData s3d::MeshData::SubdividedSphere ( Float3  center,
double  r,
uint32  subdivisions = 2 
)
static

◆ Tetrahedron() [1/2]

static MeshData s3d::MeshData::Tetrahedron ( double  size)
static

◆ Tetrahedron() [2/2]

static MeshData s3d::MeshData::Tetrahedron ( Float3  center,
double  size 
)
static

◆ Torus() [1/2]

static MeshData s3d::MeshData::Torus ( double  radius,
double  tubeRadius,
uint32  ringQuality = 24,
uint32  tubeQuality = 12 
)
static

◆ Torus() [2/2]

static MeshData s3d::MeshData::Torus ( Float3  center,
double  radius,
double  tubeRadius,
uint32  ringQuality = 24,
uint32  tubeQuality = 12 
)
static

◆ translate() [1/2]

MeshData& s3d::MeshData::translate ( double  x,
double  y,
double  z 
)

◆ translate() [2/2]

MeshData& s3d::MeshData::translate ( Float3  v)

◆ TwoSidedPlane() [1/4]

static MeshData s3d::MeshData::TwoSidedPlane ( double  size)
static

◆ TwoSidedPlane() [2/4]

static MeshData s3d::MeshData::TwoSidedPlane ( Float2  size)
static

◆ TwoSidedPlane() [3/4]

static MeshData s3d::MeshData::TwoSidedPlane ( Float3  center,
double  size 
)
static

◆ TwoSidedPlane() [4/4]

static MeshData s3d::MeshData::TwoSidedPlane ( Float3  center,
Float2  size 
)
static

◆ weld()

MeshData& s3d::MeshData::weld ( std::function< bool(const Vertex3D &, const Vertex3D &)>  weldTest)

Member Data Documentation

◆ indices

Array<TriangleIndex32> s3d::MeshData::indices

◆ vertices

Array<Vertex3D> s3d::MeshData::vertices

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