add uv layout type for Circle shape
This commit is contained in:
@@ -30,25 +30,27 @@ public:
|
||||
|
||||
class Circle : public Shape
|
||||
{
|
||||
void create_impl(float radius, int div, GLushort* idx, vertex_t* vertices);
|
||||
void create_impl(float radius_out, float radius_in, int div, GLushort* idx, vertex_t* vertices);
|
||||
public:
|
||||
enum class kUVMapping: uint8_t { Planar, Tube };
|
||||
template<int div>
|
||||
bool create(float radius)
|
||||
bool create(float radius, kUVMapping map)
|
||||
{
|
||||
static GLushort idx[div * 3 + div * 2];
|
||||
static vertex_t vertices[div + 1];
|
||||
create_impl(radius, div, idx, vertices);
|
||||
create_impl(radius, div, idx, vertices, map);
|
||||
return create_buffers(idx, vertices, sizeof(idx), sizeof(vertices));
|
||||
}
|
||||
template<int div>
|
||||
bool create(float radius_out, float radius_in)
|
||||
bool create(float radius_out, float radius_in, kUVMapping map)
|
||||
{
|
||||
static GLushort idx[div*6 + div*4];
|
||||
static vertex_t vertices[div * 2];
|
||||
create_impl(radius_out, radius_in, div, idx, vertices);
|
||||
create_impl(radius_out, radius_in, div, idx, vertices, map);
|
||||
return create_buffers(idx, vertices, sizeof(idx), sizeof(vertices));
|
||||
}
|
||||
private:
|
||||
void create_impl(float radius, int div, GLushort* idx, vertex_t* vertices, kUVMapping map);
|
||||
void create_impl(float radius_out, float radius_in, int div, GLushort* idx, vertex_t* vertices, kUVMapping map);
|
||||
};
|
||||
|
||||
class Rounded : public Shape
|
||||
@@ -68,13 +70,13 @@ public:
|
||||
|
||||
class Slice9 : public Shape
|
||||
{
|
||||
void create_impl(float w, float h, float r, GLushort* idx, vertex_t* vertices);
|
||||
void create_impl(float w, float h, float r, float tr, GLushort* idx, vertex_t* vertices);
|
||||
public:
|
||||
bool create(float w, float h, float r)
|
||||
bool create(float w, float h, float r, float tr)
|
||||
{
|
||||
static GLushort idx[3 * 3 * 6 + 4 * 2];
|
||||
static vertex_t vertices[4 * 4];
|
||||
create_impl(w, h, r, idx, vertices);
|
||||
create_impl(w, h, r, tr, idx, vertices);
|
||||
return create_buffers(idx, vertices, sizeof(idx), sizeof(vertices));
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user