#ifndef RAGNAROK_SOURCE_CONTENTS_WORLD_WORLDMODELVIEW_H #define RAGNAROK_SOURCE_CONTENTS_WORLD_WORLDMODELVIEW_H #include 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 inside; std::list 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& clipped, std::list& inside, const ModelViewPlanes& planes, const float* matrix, unsigned frame, int updates, GroundGeometry& ground, ModelRenderContext& models, GroundLightingContext& lighting, int* visibleRectangle ); #endif