Merge branch 'MovablesAlwaysAtSceneRoot'
This commit is contained in:
commit
bc0d7a5ef7
@ -246,6 +246,10 @@ void PhysicalObject::init()
|
|||||||
{
|
{
|
||||||
Log::fatal("PhysicalObject", "Unknown node type");
|
Log::fatal("PhysicalObject", "Unknown node type");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
max = max * Vec3(m_init_scale);
|
||||||
|
min = min * Vec3(m_init_scale);
|
||||||
|
|
||||||
Vec3 extend = max-min;
|
Vec3 extend = max-min;
|
||||||
// Adjust the mesth of the graphical object so that its center is where it
|
// Adjust the mesth of the graphical object so that its center is where it
|
||||||
// is in bullet (usually at (0,0,0)). It can be changed in the case clause
|
// is in bullet (usually at (0,0,0)). It can be changed in the case clause
|
||||||
@ -503,10 +507,8 @@ void PhysicalObject::update(float dt)
|
|||||||
hpr.setHPR(t.getRotation());
|
hpr.setHPR(t.getRotation());
|
||||||
//m_node->setRotation(hpr.toIrrHPR());
|
//m_node->setRotation(hpr.toIrrHPR());
|
||||||
|
|
||||||
core::vector3df scale(1,1,1);
|
|
||||||
m_object->move(xyz.toIrrVector(), hpr.toIrrVector()*RAD_TO_DEGREE,
|
m_object->move(xyz.toIrrVector(), hpr.toIrrVector()*RAD_TO_DEGREE,
|
||||||
scale, false);
|
m_init_scale, false);
|
||||||
return;
|
|
||||||
} // update
|
} // update
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
#include "physics/physical_object.hpp"
|
#include "physics/physical_object.hpp"
|
||||||
#include "race/race_manager.hpp"
|
#include "race/race_manager.hpp"
|
||||||
#include "utils/helpers.hpp"
|
#include "utils/helpers.hpp"
|
||||||
|
#include <ISceneManager.h>
|
||||||
|
|
||||||
/** A track object: any additional object on the track. This object implements
|
/** A track object: any additional object on the track. This object implements
|
||||||
* a graphics-only representation, i.e. there is no physical representation.
|
* a graphics-only representation, i.e. there is no physical representation.
|
||||||
@ -191,7 +191,21 @@ void TrackObject::init(const XMLNode &xml_node, scene::ISceneNode* parent,
|
|||||||
m_presentation = new TrackObjectPresentationMesh(xml_node,
|
m_presentation = new TrackObjectPresentationMesh(xml_node,
|
||||||
m_enabled,
|
m_enabled,
|
||||||
parent);
|
parent);
|
||||||
glownode = ((TrackObjectPresentationMesh *) m_presentation)->getNode();
|
scene::ISceneNode* node = ((TrackObjectPresentationMesh *)m_presentation)->getNode();
|
||||||
|
if (type == "movable" && parent != NULL)
|
||||||
|
{
|
||||||
|
// HACK: unparent movables from their parent library object if any,
|
||||||
|
// because bullet provides absolute transforms, not transforms relative
|
||||||
|
// to the parent object
|
||||||
|
node->updateAbsolutePosition();
|
||||||
|
core::matrix4 absTransform = node->getAbsoluteTransformation();
|
||||||
|
node->setParent(irr_driver->getSceneManager()->getRootSceneNode());
|
||||||
|
node->setPosition(absTransform.getTranslation());
|
||||||
|
node->setRotation(absTransform.getRotationDegrees());
|
||||||
|
node->setScale(absTransform.getScale());
|
||||||
|
}
|
||||||
|
|
||||||
|
glownode = node;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string render_pass;
|
std::string render_pass;
|
||||||
|
Loading…
Reference in New Issue
Block a user