- Entity names are now drawn for group entities in Doom3 and Quake 3 mode (namespace)

- Fixed translucent brushes becoming invisible when selected (Shaderman)

git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@123 8a3a26a2-13c4-0310-b231-cf6edde360e5
This commit is contained in:
namespace
2006-12-08 19:52:48 +00:00
parent 7174c79dc2
commit 0a9ca16033
7 changed files with 49 additions and 17 deletions

View File

@@ -82,6 +82,7 @@ class Doom3Group :
SingletonModel m_model;
OriginKey m_originKey;
Vector3 m_origin;
RotationKey m_rotationKey;
Float9 m_rotation;
@@ -92,6 +93,7 @@ class Doom3Group :
Doom3GroupOrigin m_funcStaticOrigin;
RenderablePivot m_renderOrigin;
RenderableNamedEntity m_renderName;
mutable Vector3 m_name_origin;
ModelSkinKey m_skin;
public:
@@ -276,7 +278,8 @@ public:
m_named(m_entity),
m_nameKeys(m_entity),
m_funcStaticOrigin(m_traverse, m_origin),
m_renderName(m_named, g_vector3_identity),
m_renderName(m_named, m_name_origin),
m_name_origin(g_vector3_identity),
m_skin(SkinChangedCaller(*this)),
m_curveNURBS(boundsChanged),
m_curveCatmullRom(boundsChanged),
@@ -399,11 +402,24 @@ public:
renderer.addRenderable(m_curveCatmullRom.m_renderCurve, localToWorld);
}
}
void renderWireframe(Renderer& renderer, const VolumeTest& volume, const Matrix4& localToWorld, bool selected) const
void renderWireframe(Renderer& renderer, const VolumeTest& volume, const Matrix4& localToWorld, bool selected, const AABB& childBounds) const
{
renderSolid(renderer, volume, localToWorld, selected);
if(g_showNames && isModel())
if(g_showNames)
{
// draw models as usual
if(!isModel())
{
// don't draw the name for worldspawn
if(!strcmp(m_entity.getEntityClass().name(), "worldspawn"))
return;
// place name in the middle of the "children cloud"
m_name_origin = childBounds.origin;
}
renderer.addRenderable(m_renderName, localToWorld);
}
}
@@ -546,7 +562,7 @@ public:
}
void renderWireframe(Renderer& renderer, const VolumeTest& volume) const
{
m_contained.renderWireframe(renderer, volume, Instance::localToWorld(), getSelectable().isSelected());
m_contained.renderWireframe(renderer, volume, Instance::localToWorld(), getSelectable().isSelected(), Instance::childBounds());
m_curveNURBS.renderComponentsSelected(renderer, volume, localToWorld());
m_curveCatmullRom.renderComponentsSelected(renderer, volume, localToWorld());