1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#pragma once
#include <assert.h>
#include <stdlib.h>
#include "core.h"
#include "maths_types.h"
#include "render_types.h"
Geometry Geo_CreatePlane(f32x2 extents);
Geometry Geo_CreateCuboid(f32x3 extents);
Geometry Geo_CreateCylinder(f32 radius, f32 height, u32 resolution);
Geometry Geo_CreateUVsphere(f32 radius, u32 north_south_lines, u32 east_west_lines);
Geometry Geo_CreateIcosphere(f32 radius, f32 n_subdivisions);
static const Vec3 BACK_BOT_LEFT = (Vec3){ 0, 0, 0 };
static const Vec3 BACK_BOT_RIGHT = (Vec3){ 1, 0, 0 };
static const Vec3 BACK_TOP_LEFT = (Vec3){ 0, 1, 0 };
static const Vec3 BACK_TOP_RIGHT = (Vec3){ 1, 1, 0 };
static const Vec3 FRONT_BOT_LEFT = (Vec3){ 0, 0, 1 };
static const Vec3 FRONT_BOT_RIGHT = (Vec3){ 1, 0, 1 };
static const Vec3 FRONT_TOP_LEFT = (Vec3){ 0, 1, 1 };
static const Vec3 FRONT_TOP_RIGHT = (Vec3){ 1, 1, 1 };
#define VERT_3D(arr, pos, norm, uv) \
{ \
Vertex v = { .static_3d = { .position = pos, .normal = norm, .tex_coords = uv } }; \
Vertex_darray_push(arr, v); \
}
|