#ifndef __OPENEQ_THREED__ #define __OPENEQ_THREED__ #include "3d_base.hpp" #include #include #include using namespace std; struct ObjectGroupEntry { ObjectGroupEntry() { IncludeInMap = true; } bool FromTOG; bool IncludeInMap; float TileX, TileY, TileZ; float x, y, z; float RotX, RotY, RotZ; float ScaleX, ScaleY, ScaleZ; list SubObjects; }; class Octree_Node; class Bone { public: char *name; int bone1, bone2; float x, y, z; float e[4]; float scale[3]; int vert_count; int *verts; }; class Zone_Model { public: Zone_Model() {} ~Zone_Model() {} Vertex **verts; Polygon **polys; Octree_Node *octree; Texture **tex; int vert_count, poly_count, tex_count; }; class MobModel { public: MobModel() {} ~MobModel() {} Vertex **verts; Polygon **polys; Texture **tex; int vert_count, poly_count, tex_count; Bone *bones; int bone_count; }; class Content_3D { public: Content_3D() { this->mob_model_count = 0; this->mob_count = 0; } ~Content_3D() {} Model *GetModel(char *model_name); void GenerateOctree(); void MergeTextures(); void MergeTexturesLazy(); Zone_Model *zone_model; Model **models; Placeable **placeable; int model_count, plac_count; // Count of placeable object models and count of instances int ObjectGroupCount; MobModel **mob_models; Placeable **mob_locs; int mob_model_count, mob_count; vector ObjectGroups; vector ModelNames; vector PlaceableList; }; #endif