rodecomp/Source/Contents/World/WorldModelView.h
ragnarok-clanker a47d20f8be Reconstruct readable C++ and organize cohesive source subsystems
Administrative source import: native x86 compilation passed for 423 authored units. Source placement and submission states are migrated separately; this commit does not imply peer acceptance.

Previous head: 35d2a8cb36
Payload SHA256: 592f016d2730c5593bb653aa054c1e5f76a6df72c8f5a09e66f74876e2e33dee
2026-10-25 07:42:41 +00:00

39 lines
1.2 KiB
C++

#ifndef RAGNAROK_SOURCE_CONTENTS_WORLD_WORLDMODELVIEW_H
#define RAGNAROK_SOURCE_CONTENTS_WORLD_WORLDMODELVIEW_H
#include <list>
struct OrientedBounds;
struct WorldSpatialTree;
struct ModelRenderContext;
struct GroundLightingContext;
class GroundGeometry;
struct ModelViewPlanes {
float planes[6][4];
float normals[6][3];
int ClassifyAxisAligned(const WorldSpatialTree& bounds) const;
int ClassifyOriented(const OrientedBounds& bounds) const;
};
struct WorldViewSpatial {
WorldViewSpatial();
~WorldViewSpatial();
std::list<WorldSpatialTree*> inside;
std::list<WorldSpatialTree*> clipped;
ModelViewPlanes planes;
void Collect(float horizontal, float vertical, const float* matrix, WorldSpatialTree& root);
void CollectNode(WorldSpatialTree& node, int depth, bool fullyInside);
};
int ClassifyModelView(const OrientedBounds& bounds, const ModelViewPlanes& planes);
void DrawWorldModelLeaves(
std::list<WorldSpatialTree*>& clipped, std::list<WorldSpatialTree*>& inside, const ModelViewPlanes& planes, const float* matrix, unsigned frame, int updates,
GroundGeometry& ground, ModelRenderContext& models, GroundLightingContext& lighting, int* visibleRectangle
);
#endif