group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
AssetCatalog.hpp
Go to the documentation of this file.
1
3
4#pragma once
5
7
8#include <array>
9#include <glm/vec3.hpp>
10
13{
14 const char* name = "";
15 const char* filename = "";
17 glm::vec3 loadTranslation{0.0f};
18 float loadScale = 1.0f;
19 bool flipUVs = false;
20 bool decomposeCollision = false;
21 glm::vec3 renderScale{1.0f};
22 glm::vec3 renderTranslation{0.0f};
23 glm::vec3 renderRotationDegrees{0.0f};
24};
25
27 .name = "map1",
28 .filename = "maps/map1.glb",
29 .role = AssetRole::Map,
30 .loadScale = 39.3701f,
31};
32
33// Porsche removed — its 75-mesh hierarchy floods the collision debug UI.
34inline const std::array<AssetDefinition, 2> kPropAssets{{
35 {.name = "pallet",
36 .filename = "metallic_pallet_factory_store.glb",
37 .role = AssetRole::Prop,
38 .loadTranslation = {0.0f, 0.0f, 600.0f},
39 .loadScale = 0.25f,
40 .flipUVs = true,
41 .decomposeCollision = true},
42 {.name = "bottle",
43 .filename = "bottle_a.glb",
44 .role = AssetRole::Prop,
45 .loadTranslation = {100.0f, 0.0f, 400.0f},
46 .loadScale = 20.0f,
47 .decomposeCollision = true},
48}};
49
51 .name = "wraith",
52 .filename = "Apex_Legend_Wraith.glb",
53 .role = AssetRole::Entity,
54 .loadScale = 8.0f,
55};
56
58 .name = "rocket_projectile",
59 .filename = "bottle_a.glb", // update with rocket projectile asset
60 .role = AssetRole::Entity,
61 .loadScale = 20.0f,
62};
63
64inline const std::array<AssetDefinition, 4> kWeaponAssets{{
65 {.name = "weapon_rifle",
66 .filename = "assault_rifle.glb",
67 .role = AssetRole::Entity,
68 .flipUVs = true,
69 .renderScale = {20.0f, 20.0f, 20.0f}},
70 {.name = "weapon_rocket",
71 .filename = "rocket_launcher.glb",
72 .role = AssetRole::Entity,
73 .flipUVs = true,
74 .renderScale = {20.0f, 20.0f, 20.0f}},
75 {.name = "weapon_railgun",
76 .filename = "rail_gun.glb",
77 .role = AssetRole::Entity,
78 .flipUVs = true,
79 .renderScale = {20.0f, 20.0f, 20.0f},
80 .renderRotationDegrees = {0.0f, 0.0f, 0.0f}},
81 {.name = "weapon_energy",
82 .filename = "energy_gun.glb",
83 .role = AssetRole::Entity,
84 .flipUVs = true,
85 .renderScale = {20.0f, 20.0f, 20.0f},
86 .renderRotationDegrees = {0.0f, 0.0f, 0.0f}},
87}};
88
89inline const std::array<AssetDefinition, 3> kEffectAssets{{
90 {.name = "glow_sphere", .role = AssetRole::Effect},
91 {.name = "glow_sphere_movable", .role = AssetRole::Effect},
92 {.name = "glow_cylinder", .role = AssetRole::Effect},
93}};
const std::array< AssetDefinition, 2 > kPropAssets
Definition AssetCatalog.hpp:34
const std::array< AssetDefinition, 3 > kEffectAssets
Definition AssetCatalog.hpp:89
const AssetDefinition kMapAsset
Definition AssetCatalog.hpp:26
const AssetDefinition kRocketProjectile
Definition AssetCatalog.hpp:57
const AssetDefinition kWraithAsset
Definition AssetCatalog.hpp:50
const std::array< AssetDefinition, 4 > kWeaponAssets
Definition AssetCatalog.hpp:64
Central registry mapping named assets to renderer model indices.
AssetRole
Describes how a registered asset should be used.
Definition AssetRegistry.hpp:22
@ Entity
Dynamic entity model (player, weapon) — drawn via EntityRenderCmd only.
Definition AssetRegistry.hpp:25
@ Map
Static world geometry — rendered in scene pass, has collision.
Definition AssetRegistry.hpp:23
@ Prop
Static placed object — rendered in scene pass, optionally has collision.
Definition AssetRegistry.hpp:24
@ Effect
Procedural effect (glow sphere, beam) — drawn via EntityRenderCmd only.
Definition AssetRegistry.hpp:26
Header-authored defaults for assets registered with AssetRegistry.
Definition AssetCatalog.hpp:13
glm::vec3 renderScale
Default Renderable scale.
Definition AssetCatalog.hpp:21
const char * name
Definition AssetCatalog.hpp:14
glm::vec3 loadTranslation
World translation used when loading static scene assets.
Definition AssetCatalog.hpp:17
float loadScale
Scale used when loading/uploading the model.
Definition AssetCatalog.hpp:18
bool flipUVs
True for assets whose source UV orientation needs flipping.
Definition AssetCatalog.hpp:19
const char * filename
Definition AssetCatalog.hpp:15
bool decomposeCollision
True to run V-HACD on non-convex collision sub-meshes.
Definition AssetCatalog.hpp:20
glm::vec3 renderTranslation
Default Renderable local translation.
Definition AssetCatalog.hpp:22
AssetRole role
Definition AssetCatalog.hpp:16
glm::vec3 renderRotationDegrees
Default Renderable local rotation in degrees.
Definition AssetCatalog.hpp:23