v2d & aabbox3d<f32> & sky cleanups

* Sky: rename Box => m_box and inline getBoundingBox
* Uniformize aabbox3d<f32> to aabb3f
This commit is contained in:
nerzhul 2016-02-11 15:21:21 +01:00 committed by est31
parent 24b312cc08
commit fefa148d69
21 changed files with 39 additions and 44 deletions

View File

@ -1471,13 +1471,13 @@ ClientActiveObject * Client::getSelectedActiveObject(
{ {
ClientActiveObject *obj = objects[i].obj; ClientActiveObject *obj = objects[i].obj;
core::aabbox3d<f32> *selection_box = obj->getSelectionBox(); aabb3f *selection_box = obj->getSelectionBox();
if(selection_box == NULL) if(selection_box == NULL)
continue; continue;
v3f pos = obj->getPosition(); v3f pos = obj->getPosition();
core::aabbox3d<f32> offsetted_box( aabb3f offsetted_box(
selection_box->MinEdge + pos, selection_box->MinEdge + pos,
selection_box->MaxEdge + pos selection_box->MaxEdge + pos
); );

View File

@ -21,7 +21,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#define TILE_HEADER #define TILE_HEADER
#include "irrlichttypes.h" #include "irrlichttypes.h"
#include "irr_v2d.h"
#include "irr_v3d.h" #include "irr_v3d.h"
#include <ITexture.h> #include <ITexture.h>
#include <IrrlichtDevice.h> #include <IrrlichtDevice.h>

View File

@ -50,7 +50,7 @@ ClientMap::ClientMap(
m_camera_direction(0,0,1), m_camera_direction(0,0,1),
m_camera_fov(M_PI) m_camera_fov(M_PI)
{ {
m_box = core::aabbox3d<f32>(-BS*1000000,-BS*1000000,-BS*1000000, m_box = aabb3f(-BS*1000000,-BS*1000000,-BS*1000000,
BS*1000000,BS*1000000,BS*1000000); BS*1000000,BS*1000000,BS*1000000);
/* TODO: Add a callback function so these can be updated when a setting /* TODO: Add a callback function so these can be updated when a setting

View File

@ -115,7 +115,7 @@ public:
renderMap(driver, SceneManager->getSceneNodeRenderPass()); renderMap(driver, SceneManager->getSceneNodeRenderPass());
} }
virtual const core::aabbox3d<f32>& getBoundingBox() const virtual const aabb3f &getBoundingBox() const
{ {
return m_box; return m_box;
} }
@ -140,7 +140,7 @@ public:
private: private:
Client *m_client; Client *m_client;
core::aabbox3d<f32> m_box; aabb3f m_box;
MapDrawControl &m_control; MapDrawControl &m_control;

View File

@ -56,7 +56,7 @@ public:
virtual void updateLight(u8 light_at_pos){} virtual void updateLight(u8 light_at_pos){}
virtual void updateLightNoCheck(u8 light_at_pos){} virtual void updateLightNoCheck(u8 light_at_pos){}
virtual v3s16 getLightPosition(){return v3s16(0,0,0);} virtual v3s16 getLightPosition(){return v3s16(0,0,0);}
virtual core::aabbox3d<f32>* getSelectionBox(){return NULL;} virtual aabb3f *getSelectionBox() { return NULL; }
virtual bool getCollisionBox(aabb3f *toset){return false;} virtual bool getCollisionBox(aabb3f *toset){return false;}
virtual bool collideWithObjects(){return false;} virtual bool collideWithObjects(){return false;}
virtual v3f getPosition(){return v3f(0,0,0);} virtual v3f getPosition(){return v3f(0,0,0);}

View File

@ -62,7 +62,7 @@ Clouds::Clouds(
g_settings->registerChangedCallback("enable_3d_clouds", g_settings->registerChangedCallback("enable_3d_clouds",
&cloud_3d_setting_changed, this); &cloud_3d_setting_changed, this);
m_box = core::aabbox3d<f32>(-BS*1000000,m_cloud_y-BS,-BS*1000000, m_box = aabb3f(-BS*1000000,m_cloud_y-BS,-BS*1000000,
BS*1000000,m_cloud_y+BS,BS*1000000); BS*1000000,m_cloud_y+BS,BS*1000000);
} }

View File

@ -53,7 +53,7 @@ public:
virtual void render(); virtual void render();
virtual const core::aabbox3d<f32>& getBoundingBox() const virtual const aabb3f &getBoundingBox() const
{ {
return m_box; return m_box;
} }
@ -79,7 +79,7 @@ public:
void updateCameraOffset(v3s16 camera_offset) void updateCameraOffset(v3s16 camera_offset)
{ {
m_camera_offset = camera_offset; m_camera_offset = camera_offset;
m_box = core::aabbox3d<f32>(-BS * 1000000, m_cloud_y - BS - BS * camera_offset.Y, -BS * 1000000, m_box = aabb3f(-BS * 1000000, m_cloud_y - BS - BS * camera_offset.Y, -BS * 1000000,
BS * 1000000, m_cloud_y + BS - BS * camera_offset.Y, BS * 1000000); BS * 1000000, m_cloud_y + BS - BS * camera_offset.Y, BS * 1000000);
} }
@ -87,7 +87,7 @@ public:
private: private:
video::SMaterial m_material; video::SMaterial m_material;
core::aabbox3d<f32> m_box; aabb3f m_box;
s16 m_passed_cloud_y; s16 m_passed_cloud_y;
float m_cloud_y; float m_cloud_y;
u16 m_cloud_radius_i; u16 m_cloud_radius_i;

View File

@ -309,7 +309,7 @@ public:
void initialize(const std::string &data); void initialize(const std::string &data);
core::aabbox3d<f32>* getSelectionBox() aabb3f *getSelectionBox()
{return &m_selection_box;} {return &m_selection_box;}
v3f getPosition() v3f getPosition()
{return m_position;} {return m_position;}
@ -319,7 +319,7 @@ public:
bool getCollisionBox(aabb3f *toset) { return false; } bool getCollisionBox(aabb3f *toset) { return false; }
private: private:
core::aabbox3d<f32> m_selection_box; aabb3f m_selection_box;
scene::IMeshSceneNode *m_node; scene::IMeshSceneNode *m_node;
v3f m_position; v3f m_position;
std::string m_itemstring; std::string m_itemstring;
@ -674,7 +674,7 @@ GenericCAO::~GenericCAO()
removeFromScene(true); removeFromScene(true);
} }
core::aabbox3d<f32>* GenericCAO::getSelectionBox() aabb3f *GenericCAO::getSelectionBox()
{ {
if(!m_prop.is_visible || !m_is_visible || m_is_local_player || getParent() != NULL) if(!m_prop.is_visible || !m_is_visible || m_is_local_player || getParent() != NULL)
return NULL; return NULL;
@ -1185,7 +1185,7 @@ void GenericCAO::step(float dtime, ClientEnvironment *env)
if(m_prop.physical) if(m_prop.physical)
{ {
core::aabbox3d<f32> box = m_prop.collisionbox; aabb3f box = m_prop.collisionbox;
box.MinEdge *= BS; box.MinEdge *= BS;
box.MaxEdge *= BS; box.MaxEdge *= BS;
collisionMoveResult moveresult; collisionMoveResult moveresult;

View File

@ -65,7 +65,7 @@ private:
// //
scene::ISceneManager *m_smgr; scene::ISceneManager *m_smgr;
IrrlichtDevice *m_irr; IrrlichtDevice *m_irr;
core::aabbox3d<f32> m_selection_box; aabb3f m_selection_box;
scene::IMeshSceneNode *m_meshnode; scene::IMeshSceneNode *m_meshnode;
scene::IAnimatedMeshSceneNode *m_animated_meshnode; scene::IAnimatedMeshSceneNode *m_animated_meshnode;
WieldMeshSceneNode *m_wield_meshnode; WieldMeshSceneNode *m_wield_meshnode;
@ -127,7 +127,7 @@ public:
bool collideWithObjects(); bool collideWithObjects();
core::aabbox3d<f32>* getSelectionBox(); aabb3f *getSelectionBox();
v3f getPosition(); v3f getPosition();

View File

@ -259,7 +259,7 @@ void LuaEntitySAO::step(float dtime, bool send_recommended)
else else
{ {
if(m_prop.physical){ if(m_prop.physical){
core::aabbox3d<f32> box = m_prop.collisionbox; aabb3f box = m_prop.collisionbox;
box.MinEdge *= BS; box.MinEdge *= BS;
box.MaxEdge *= BS; box.MaxEdge *= BS;
collisionMoveResult moveresult; collisionMoveResult moveresult;
@ -786,7 +786,7 @@ PlayerSAO::PlayerSAO(ServerEnvironment *env_, Player *player_, u16 peer_id_,
m_prop.hp_max = PLAYER_MAX_HP; m_prop.hp_max = PLAYER_MAX_HP;
m_prop.physical = false; m_prop.physical = false;
m_prop.weight = 75; m_prop.weight = 75;
m_prop.collisionbox = core::aabbox3d<f32>(-1/3.,-1.0,-1/3., 1/3.,1.0,1/3.); m_prop.collisionbox = aabb3f(-1/3.,-1.0,-1/3., 1/3.,1.0,1/3.);
// start of default appearance, this should be overwritten by LUA // start of default appearance, this should be overwritten by LUA
m_prop.visual = "upright_sprite"; m_prop.visual = "upright_sprite";
m_prop.visual_size = v2f(1, 2); m_prop.visual_size = v2f(1, 2);

View File

@ -104,7 +104,7 @@ void scaleMesh(scene::IMesh *mesh, v3f scale)
if (mesh == NULL) if (mesh == NULL)
return; return;
core::aabbox3d<f32> bbox; aabb3f bbox;
bbox.reset(0, 0, 0); bbox.reset(0, 0, 0);
u32 mc = mesh->getMeshBufferCount(); u32 mc = mesh->getMeshBufferCount();
@ -132,7 +132,7 @@ void translateMesh(scene::IMesh *mesh, v3f vec)
if (mesh == NULL) if (mesh == NULL)
return; return;
core::aabbox3d<f32> bbox; aabb3f bbox;
bbox.reset(0, 0, 0); bbox.reset(0, 0, 0);
u32 mc = mesh->getMeshBufferCount(); u32 mc = mesh->getMeshBufferCount();
@ -346,7 +346,7 @@ void rotateMeshBy6dFacedir(scene::IMesh *mesh, int facedir)
void recalculateBoundingBox(scene::IMesh *src_mesh) void recalculateBoundingBox(scene::IMesh *src_mesh)
{ {
core::aabbox3d<f32> bbox; aabb3f bbox;
bbox.reset(0,0,0); bbox.reset(0,0,0);
for (u16 j = 0; j < src_mesh->getMeshBufferCount(); j++) { for (u16 j = 0; j < src_mesh->getMeshBufferCount(); j++) {
scene::IMeshBuffer *buf = src_mesh->getMeshBuffer(j); scene::IMeshBuffer *buf = src_mesh->getMeshBuffer(j);

View File

@ -33,7 +33,7 @@ struct ObjectProperties
bool physical; bool physical;
bool collideWithObjects; bool collideWithObjects;
float weight; float weight;
core::aabbox3d<f32> collisionbox; aabb3f collisionbox;
std::string visual; std::string visual;
std::string mesh; std::string mesh;
v2f visual_size; v2f visual_size;

View File

@ -88,7 +88,7 @@ Particle::Particle(
m_vertical = vertical; m_vertical = vertical;
// Irrlicht stuff // Irrlicht stuff
m_collisionbox = core::aabbox3d<f32> m_collisionbox = aabb3f
(-size/2,-size/2,-size/2,size/2,size/2,size/2); (-size/2,-size/2,-size/2,size/2,size/2,size/2);
this->setAutomaticCulling(scene::EAC_OFF); this->setAutomaticCulling(scene::EAC_OFF);
@ -128,7 +128,7 @@ void Particle::step(float dtime)
m_time += dtime; m_time += dtime;
if (m_collisiondetection) if (m_collisiondetection)
{ {
core::aabbox3d<f32> box = m_collisionbox; aabb3f box = m_collisionbox;
v3f p_pos = m_pos*BS; v3f p_pos = m_pos*BS;
v3f p_velocity = m_velocity*BS; v3f p_velocity = m_velocity*BS;
collisionMoveSimple(m_env, m_gamedef, collisionMoveSimple(m_env, m_gamedef,

View File

@ -52,7 +52,7 @@ class Particle : public scene::ISceneNode
); );
~Particle(); ~Particle();
virtual const core::aabbox3d<f32>& getBoundingBox() const virtual const aabb3f &getBoundingBox() const
{ {
return m_box; return m_box;
} }
@ -85,8 +85,8 @@ private:
ClientEnvironment *m_env; ClientEnvironment *m_env;
IGameDef *m_gamedef; IGameDef *m_gamedef;
core::aabbox3d<f32> m_box; aabb3f m_box;
core::aabbox3d<f32> m_collisionbox; aabb3f m_collisionbox;
video::SMaterial m_material; video::SMaterial m_material;
v2f m_texpos; v2f m_texpos;
v2f m_texsize; v2f m_texsize;

View File

@ -198,7 +198,7 @@ public:
return m_name; return m_name;
} }
core::aabbox3d<f32> getCollisionbox() aabb3f getCollisionbox()
{ {
return m_collisionbox; return m_collisionbox;
} }
@ -398,7 +398,7 @@ protected:
f32 m_yaw; f32 m_yaw;
v3f m_speed; v3f m_speed;
v3f m_position; v3f m_position;
core::aabbox3d<f32> m_collisionbox; aabb3f m_collisionbox;
bool m_dirty; bool m_dirty;

View File

@ -22,6 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "lua_api/l_internal.h" #include "lua_api/l_internal.h"
#include "common/c_converter.h" #include "common/c_converter.h"
#include "cpp_api/s_security.h" #include "cpp_api/s_security.h"
#include "irr_v3d.h"
#include "areastore.h" #include "areastore.h"
#include "filesys.h" #include "filesys.h"
#ifndef ANDROID #ifndef ANDROID

View File

@ -21,7 +21,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#define L_AREASTORE_H_ #define L_AREASTORE_H_
#include "lua_api/l_base.h" #include "lua_api/l_base.h"
#include "irr_v3d.h"
#include "areastore.h" #include "areastore.h"
/* /*

View File

@ -25,8 +25,8 @@ Sky::Sky(scene::ISceneNode* parent, scene::ISceneManager* mgr, s32 id,
m_cloudcolor_bright_f(1,1,1,1) m_cloudcolor_bright_f(1,1,1,1)
{ {
setAutomaticCulling(scene::EAC_OFF); setAutomaticCulling(scene::EAC_OFF);
Box.MaxEdge.set(0,0,0); m_box.MaxEdge.set(0,0,0);
Box.MinEdge.set(0,0,0); m_box.MinEdge.set(0,0,0);
// create material // create material
@ -94,11 +94,6 @@ void Sky::OnRegisterSceneNode()
scene::ISceneNode::OnRegisterSceneNode(); scene::ISceneNode::OnRegisterSceneNode();
} }
const core::aabbox3d<f32>& Sky::getBoundingBox() const
{
return Box;
}
//! renders the node. //! renders the node.
void Sky::render() void Sky::render()
{ {

View File

@ -42,7 +42,8 @@ public:
//! renders the node. //! renders the node.
virtual void render(); virtual void render();
virtual const core::aabbox3d<f32>& getBoundingBox() const; virtual const aabb3f &getBoundingBox() const
{ return m_box; }
// Used by Irrlicht for optimizing rendering // Used by Irrlicht for optimizing rendering
virtual video::SMaterial& getMaterial(u32 i) virtual video::SMaterial& getMaterial(u32 i)
@ -74,7 +75,7 @@ public:
} }
private: private:
core::aabbox3d<f32> Box; aabb3f m_box;
video::SMaterial m_materials[SKY_MATERIAL_COUNT]; video::SMaterial m_materials[SKY_MATERIAL_COUNT];
// How much sun & moon transition should affect horizon color // How much sun & moon transition should affect horizon color

View File

@ -310,9 +310,9 @@ inline v3f intToFloat(v3s16 p, f32 d)
} }
// Random helper. Usually d=BS // Random helper. Usually d=BS
inline core::aabbox3d<f32> getNodeBox(v3s16 p, float d) inline aabb3f getNodeBox(v3s16 p, float d)
{ {
return core::aabbox3d<f32>( return aabb3f(
(float)p.X * d - 0.5*d, (float)p.X * d - 0.5*d,
(float)p.Y * d - 0.5*d, (float)p.Y * d - 0.5*d,
(float)p.Z * d - 0.5*d, (float)p.Z * d - 0.5*d,

View File

@ -53,7 +53,7 @@ public:
virtual void render(); virtual void render();
virtual const core::aabbox3d<f32>& getBoundingBox() const virtual const aabb3f &getBoundingBox() const
{ return m_bounding_box; } { return m_bounding_box; }
private: private:
@ -74,7 +74,7 @@ private:
// Bounding box culling is disabled for this type of scene node, // Bounding box culling is disabled for this type of scene node,
// so this variable is just required so we can implement // so this variable is just required so we can implement
// getBoundingBox() and is set to an empty box. // getBoundingBox() and is set to an empty box.
core::aabbox3d<f32> m_bounding_box; aabb3f m_bounding_box;
}; };
scene::IMesh *getItemMesh(IGameDef *gamedef, const ItemStack &item); scene::IMesh *getItemMesh(IGameDef *gamedef, const ItemStack &item);