3#include "pixelbullet/scene/prefab_resolution.h"
4#include "pixelbullet/scene/render_data.h"
6#include <unordered_set>
8namespace pixelbullet::scene_render_extractor_internal
10using HiddenRenderSourceSet = std::unordered_set<EntityId::ValueType>;
12glm::vec3 ResolveForwardDirection(
const Transform& transform);
14std::optional<EntityId> SelectPrimaryCameraEntity(
const Scene& scene);
16bool IsRenderSourceHidden(
const HiddenRenderSourceSet* hidden_sources, EntityId entity);
18void ExtractEnvironment(
const Scene& scene, SceneRenderData& render_data);
19void ExtractPrimaryView(
const Scene& scene,
const SceneResolvedTransforms& resolved_transforms, glm::uvec2 target_extent,
20 SceneRenderData& render_data);
22glm::mat4 ResolveSceneWorldMatrix(
const SceneResolvedTransforms& resolved_transforms, EntityId entity,
const Transform& transform);
23Transform ResolveSceneWorldTransform(
const SceneResolvedTransforms& resolved_transforms, EntityId entity,
const Transform& transform);
24void ExtractSceneEntities(
const Scene& scene,
const SceneResolvedTransforms& resolved_transforms,
25 const SceneMorphWeightOverrides* morph_weight_overrides, SceneRenderData& render_data,
26 const HiddenRenderSourceSet* hidden_sources =
nullptr);
28glm::mat4 ResolvePrefabWorldMatrix(
const ResolvedPrefabInstance& instance, EntityId prefab_entity);
29bool ResolvePrefabWorldTransform(
const ResolvedPrefabInstance& instance, EntityId prefab_entity,
const Transform& local_transform,
30 Transform& world_transform);
31void ExtractPrefabInstances(
const std::vector<ResolvedPrefabInstance>& instances, SceneRenderData& render_data,
32 const HiddenRenderSourceSet* hidden_sources =
nullptr);