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
39 lines
1.2 KiB
C++
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
|