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;
core::aabbox3d<f32> *selection_box = obj->getSelectionBox();
aabb3f *selection_box = obj->getSelectionBox();
if(selection_box == NULL)
continue;
v3f pos = obj->getPosition();
core::aabbox3d<f32> offsetted_box(
aabb3f offsetted_box(
selection_box->MinEdge + 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
#include "irrlichttypes.h"
#include "irr_v2d.h"
#include "irr_v3d.h"
#include <ITexture.h>
#include <IrrlichtDevice.h>

View File

@ -50,7 +50,7 @@ ClientMap::ClientMap(
m_camera_direction(0,0,1),
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);
/* TODO: Add a callback function so these can be updated when a setting

View File

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

View File

@ -56,7 +56,7 @@ public:
virtual void updateLight(u8 light_at_pos){}
virtual void updateLightNoCheck(u8 light_at_pos){}
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 collideWithObjects(){return false;}
virtual v3f getPosition(){return v3f(0,0,0);}

View File

@ -62,7 +62,7 @@ Clouds::Clouds(
g_settings->registerChangedCallback("enable_3d_clouds",
&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);
}

View File

@ -53,7 +53,7 @@ public:
virtual void render();
virtual const core::aabbox3d<f32>& getBoundingBox() const
virtual const aabb3f &getBoundingBox() const
{
return m_box;
}
@ -79,7 +79,7 @@ public:
void updateCameraOffset(v3s16 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);
}
@ -87,7 +87,7 @@ public:
private:
video::SMaterial m_material;
core::aabbox3d<f32> m_box;
aabb3f m_box;
s16 m_passed_cloud_y;
float m_cloud_y;
u16 m_cloud_radius_i;

View File

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

View File

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

View File

@ -259,7 +259,7 @@ void LuaEntitySAO::step(float dtime, bool send_recommended)
else
{
if(m_prop.physical){
core::aabbox3d<f32> box = m_prop.collisionbox;
aabb3f box = m_prop.collisionbox;
box.MinEdge *= BS;
box.MaxEdge *= BS;
collisionMoveResult moveresult;
@ -786,7 +786,7 @@ PlayerSAO::PlayerSAO(ServerEnvironment *env_, Player *player_, u16 peer_id_,
m_prop.hp_max = PLAYER_MAX_HP;
m_prop.physical = false;
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
m_prop.visual = "upright_sprite";
m_prop.visual_size = v2f(1, 2);

View File

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

View File

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

View File

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

View File

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

View File

@ -198,7 +198,7 @@ public:
return m_name;
}
core::aabbox3d<f32> getCollisionbox()
aabb3f getCollisionbox()
{
return m_collisionbox;
}
@ -398,7 +398,7 @@ protected:
f32 m_yaw;
v3f m_speed;
v3f m_position;
core::aabbox3d<f32> m_collisionbox;
aabb3f m_collisionbox;
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 "common/c_converter.h"
#include "cpp_api/s_security.h"
#include "irr_v3d.h"
#include "areastore.h"
#include "filesys.h"
#ifndef ANDROID

View File

@ -21,7 +21,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#define L_AREASTORE_H_
#include "lua_api/l_base.h"
#include "irr_v3d.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)
{
setAutomaticCulling(scene::EAC_OFF);
Box.MaxEdge.set(0,0,0);
Box.MinEdge.set(0,0,0);
m_box.MaxEdge.set(0,0,0);
m_box.MinEdge.set(0,0,0);
// create material
@ -94,11 +94,6 @@ void Sky::OnRegisterSceneNode()
scene::ISceneNode::OnRegisterSceneNode();
}
const core::aabbox3d<f32>& Sky::getBoundingBox() const
{
return Box;
}
//! renders the node.
void Sky::render()
{

View File

@ -42,7 +42,8 @@ public:
//! renders the node.
virtual void render();
virtual const core::aabbox3d<f32>& getBoundingBox() const;
virtual const aabb3f &getBoundingBox() const
{ return m_box; }
// Used by Irrlicht for optimizing rendering
virtual video::SMaterial& getMaterial(u32 i)
@ -74,7 +75,7 @@ public:
}
private:
core::aabbox3d<f32> Box;
aabb3f m_box;
video::SMaterial m_materials[SKY_MATERIAL_COUNT];
// 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
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.Y * d - 0.5*d,
(float)p.Z * d - 0.5*d,

View File

@ -53,7 +53,7 @@ public:
virtual void render();
virtual const core::aabbox3d<f32>& getBoundingBox() const
virtual const aabb3f &getBoundingBox() const
{ return m_bounding_box; }
private:
@ -74,7 +74,7 @@ private:
// Bounding box culling is disabled for this type of scene node,
// so this variable is just required so we can implement
// 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);