Cleanup of some helper structs.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1521 dfc29bdd-3216-0410-991c-e03cc46cb475master
parent
ea335d936a
commit
4dd11b322d
|
@ -1292,7 +1292,7 @@ void CSceneManager::drawAll()
|
||||||
|
|
||||||
u32 maxLights = core::min_ ( Driver->getMaximalDynamicLightAmount(), LightList.size() );
|
u32 maxLights = core::min_ ( Driver->getMaximalDynamicLightAmount(), LightList.size() );
|
||||||
for (i=0; i< maxLights; ++i)
|
for (i=0; i< maxLights; ++i)
|
||||||
LightList[i].node->render();
|
LightList[i].Node->render();
|
||||||
|
|
||||||
LightList.set_used(0);
|
LightList.set_used(0);
|
||||||
}
|
}
|
||||||
|
@ -1314,7 +1314,7 @@ void CSceneManager::drawAll()
|
||||||
SolidNodeList.sort(); // sort by textures
|
SolidNodeList.sort(); // sort by textures
|
||||||
|
|
||||||
for (i=0; i<SolidNodeList.size(); ++i)
|
for (i=0; i<SolidNodeList.size(); ++i)
|
||||||
SolidNodeList[i].node->render();
|
SolidNodeList[i].Node->render();
|
||||||
|
|
||||||
Parameters.setAttribute ( "drawn", (s32) SolidNodeList.size() );
|
Parameters.setAttribute ( "drawn", (s32) SolidNodeList.size() );
|
||||||
|
|
||||||
|
@ -1340,7 +1340,7 @@ void CSceneManager::drawAll()
|
||||||
TransparentNodeList.sort(); // sort by distance from camera
|
TransparentNodeList.sort(); // sort by distance from camera
|
||||||
|
|
||||||
for (i=0; i<TransparentNodeList.size(); ++i)
|
for (i=0; i<TransparentNodeList.size(); ++i)
|
||||||
TransparentNodeList[i].node->render();
|
TransparentNodeList[i].Node->render();
|
||||||
|
|
||||||
TransparentNodeList.set_used(0);
|
TransparentNodeList.set_used(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -478,69 +478,63 @@ namespace scene
|
||||||
|
|
||||||
struct DefaultNodeEntry
|
struct DefaultNodeEntry
|
||||||
{
|
{
|
||||||
DefaultNodeEntry() {};
|
DefaultNodeEntry(ISceneNode* n) :
|
||||||
|
Node(n), TextureValue(0)
|
||||||
DefaultNodeEntry(ISceneNode* n)
|
|
||||||
{
|
{
|
||||||
textureValue = 0;
|
|
||||||
|
|
||||||
if (n->getMaterialCount())
|
if (n->getMaterialCount())
|
||||||
textureValue = (n->getMaterial(0).getTexture(0));
|
TextureValue = (n->getMaterial(0).getTexture(0));
|
||||||
|
|
||||||
node = n;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ISceneNode* node;
|
|
||||||
void* textureValue;
|
|
||||||
|
|
||||||
bool operator < (const DefaultNodeEntry& other) const
|
bool operator < (const DefaultNodeEntry& other) const
|
||||||
{
|
{
|
||||||
return (textureValue < other.textureValue);
|
return (TextureValue < other.TextureValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ISceneNode* Node;
|
||||||
|
private:
|
||||||
|
void* TextureValue;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct TransparentNodeEntry
|
struct TransparentNodeEntry
|
||||||
{
|
{
|
||||||
TransparentNodeEntry() : node(0), distance(0.f) {};
|
TransparentNodeEntry(ISceneNode* n, const core::vector3df& camera)
|
||||||
|
: Node(n)
|
||||||
TransparentNodeEntry(ISceneNode* n, const core::vector3df &camera)
|
|
||||||
: node(n)
|
|
||||||
{
|
{
|
||||||
distance = (f32)(node->getAbsoluteTransformation().getTranslation().getDistanceFromSQ(camera));
|
Distance = (f32)(Node->getAbsoluteTransformation().getTranslation().getDistanceFromSQ(camera));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator < (const TransparentNodeEntry& other) const
|
bool operator < (const TransparentNodeEntry& other) const
|
||||||
{
|
{
|
||||||
return (distance > other.distance);
|
return (Distance > other.Distance);
|
||||||
}
|
}
|
||||||
|
|
||||||
ISceneNode* node;
|
ISceneNode* Node;
|
||||||
f32 distance;
|
private:
|
||||||
|
f32 Distance;
|
||||||
};
|
};
|
||||||
|
|
||||||
//! sort on distance (sphere) to camera
|
//! sort on distance (sphere) to camera
|
||||||
struct DistanceNodeEntry
|
struct DistanceNodeEntry
|
||||||
{
|
{
|
||||||
DistanceNodeEntry() : node(0), distance(0.) {}
|
|
||||||
|
|
||||||
DistanceNodeEntry(ISceneNode* n, f64 d)
|
DistanceNodeEntry(ISceneNode* n, f64 d)
|
||||||
: node(n), distance(d) {}
|
: Node(n), Distance(d) {}
|
||||||
|
|
||||||
DistanceNodeEntry(ISceneNode* n, const core::vector3df &cameraPos)
|
DistanceNodeEntry(ISceneNode* n, const core::vector3df& cameraPos)
|
||||||
: node(n)
|
: Node(n)
|
||||||
{
|
{
|
||||||
distance = node->getAbsoluteTransformation().getTranslation().getDistanceFromSQ(cameraPos);
|
Distance = Node->getAbsoluteTransformation().getTranslation().getDistanceFromSQ(cameraPos);
|
||||||
distance -= node->getBoundingBox().getExtent().getLengthSQ() * 0.5;
|
Distance -= Node->getBoundingBox().getExtent().getLengthSQ() * 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator < (const DistanceNodeEntry& other) const
|
bool operator < (const DistanceNodeEntry& other) const
|
||||||
{
|
{
|
||||||
return distance < other.distance;
|
return Distance < other.Distance;
|
||||||
}
|
}
|
||||||
|
|
||||||
ISceneNode* node;
|
ISceneNode* Node;
|
||||||
f64 distance;
|
private:
|
||||||
|
f64 Distance;
|
||||||
};
|
};
|
||||||
|
|
||||||
//! video driver
|
//! video driver
|
||||||
|
|
Loading…
Reference in New Issue