Some minor cleanup. Bringing stuff in-line with current to ensure it all works before mesh is actually plugged in.

This commit is contained in:
Shyotl
2011-07-23 03:24:10 -05:00
parent 07c892480a
commit 179193d173
10 changed files with 121 additions and 79 deletions

View File

@@ -5224,7 +5224,6 @@ LLSelectNode::LLSelectNode(const LLSelectNode& nodep)
mSilhouetteVertices = nodep.mSilhouetteVertices;
mSilhouetteNormals = nodep.mSilhouetteNormals;
mSilhouetteSegments = nodep.mSilhouetteSegments;
mSilhouetteExists = nodep.mSilhouetteExists;
mObject = nodep.mObject;
@@ -5536,17 +5535,15 @@ void LLSelectNode::renderOneSilhouette(const LLColor4 &color)
gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT);
gGL.begin(LLRender::LINES);
{
S32 i = 0;
for (S32 seg_num = 0; seg_num < (S32)mSilhouetteSegments.size(); seg_num++)
for(S32 i = 0; i < (S32)mSilhouetteVertices.size(); i += 2)
{
for(; i < mSilhouetteSegments[seg_num]; i++)
{
u_coord += u_divisor * LLSelectMgr::sHighlightUScale;
gGL.color4f(color.mV[VRED], color.mV[VGREEN], color.mV[VBLUE], 0.4f);
gGL.texCoord2f( u_coord, v_coord );
gGL.vertex3fv( mSilhouetteVertices[i].mV );
}
u_coord += u_divisor * LLSelectMgr::sHighlightUScale;
gGL.color4f(color.mV[VRED], color.mV[VGREEN], color.mV[VBLUE], 0.4f);
gGL.texCoord2f( u_coord, v_coord );
gGL.vertex3fv( mSilhouetteVertices[i].mV);
u_coord += u_divisor * LLSelectMgr::sHighlightUScale;
gGL.texCoord2f( u_coord, v_coord );
gGL.vertex3fv(mSilhouetteVertices[i+1].mV);
}
}
gGL.end();
@@ -5557,51 +5554,50 @@ void LLSelectNode::renderOneSilhouette(const LLColor4 &color)
gGL.setSceneBlendType(LLRender::BT_ALPHA);
gGL.begin(LLRender::TRIANGLES);
{
S32 i = 0;
for (S32 seg_num = 0; seg_num < (S32)mSilhouetteSegments.size(); seg_num++)
for(S32 i = 0; i < (S32)mSilhouetteVertices.size(); i+=2)
{
S32 first_i = i;
LLVector3 v;
LLVector2 t;
for(; i < mSilhouetteSegments[seg_num]; i++)
{
if (i == first_i) {
LLVector3 vert = (mSilhouetteNormals[i]) * silhouette_thickness;
vert += mSilhouetteVertices[i];
gGL.color4f(color.mV[VRED], color.mV[VGREEN], color.mV[VBLUE], 0.0f); //LLSelectMgr::sHighlightAlpha);
gGL.texCoord2f( u_coord, v_coord + LLSelectMgr::sHighlightVScale );
gGL.vertex3fv( vert.mV );
u_coord += u_divisor * LLSelectMgr::sHighlightUScale;
gGL.color4f(color.mV[VRED]*2, color.mV[VGREEN]*2, color.mV[VBLUE]*2, LLSelectMgr::sHighlightAlpha*2);
gGL.texCoord2f( u_coord, v_coord );
gGL.vertex3fv( mSilhouetteVertices[i].mV );
v = mSilhouetteVertices[i];
t = LLVector2(u_coord, v_coord);
}
else {
LLVector3 vert = (mSilhouetteNormals[i]) * silhouette_thickness;
vert += mSilhouetteVertices[i];
gGL.color4f(color.mV[VRED], color.mV[VGREEN], color.mV[VBLUE], 0.0f); //LLSelectMgr::sHighlightAlpha);
gGL.texCoord2f( u_coord, v_coord + LLSelectMgr::sHighlightVScale );
gGL.vertex3fv( vert.mV );
gGL.vertex3fv( vert.mV );
gGL.texCoord2fv(t.mV);
u_coord += u_divisor * LLSelectMgr::sHighlightUScale;
gGL.color4f(color.mV[VRED]*2, color.mV[VGREEN]*2, color.mV[VBLUE]*2, LLSelectMgr::sHighlightAlpha*2);
gGL.vertex3fv(v.mV);
gGL.texCoord2f( u_coord, v_coord );
gGL.vertex3fv( mSilhouetteVertices[i].mV );
}
if (!mSilhouetteNormals[i].isFinite() ||
!mSilhouetteNormals[i+1].isFinite())
{ //skip skewed segments
continue;
}
LLVector3 v[4];
LLVector2 tc[4];
v[0] = mSilhouetteVertices[i] + (mSilhouetteNormals[i] * silhouette_thickness);
tc[0].set(u_coord, v_coord + LLSelectMgr::sHighlightVScale);
v[1] = mSilhouetteVertices[i];
tc[1].set(u_coord, v_coord);
u_coord += u_divisor * LLSelectMgr::sHighlightUScale;
v[2] = mSilhouetteVertices[i+1] + (mSilhouetteNormals[i+1] * silhouette_thickness);
tc[2].set(u_coord, v_coord + LLSelectMgr::sHighlightVScale);
v[3] = mSilhouetteVertices[i+1];
tc[3].set(u_coord,v_coord);
gGL.color4f(color.mV[VRED], color.mV[VGREEN], color.mV[VBLUE], 0.0f); //LLSelectMgr::sHighlightAlpha);
gGL.texCoord2fv(tc[0].mV);
gGL.vertex3fv( v[0].mV );
gGL.color4f(color.mV[VRED]*2, color.mV[VGREEN]*2, color.mV[VBLUE]*2, LLSelectMgr::sHighlightAlpha*2);
gGL.texCoord2fv( tc[1].mV );
gGL.vertex3fv( v[1].mV );
gGL.color4f(color.mV[VRED], color.mV[VGREEN], color.mV[VBLUE], 0.0f); //LLSelectMgr::sHighlightAlpha);
gGL.texCoord2fv( tc[2].mV );
gGL.vertex3fv( v[2].mV );
gGL.vertex3fv( v[2].mV );
gGL.color4f(color.mV[VRED]*2, color.mV[VGREEN]*2, color.mV[VBLUE]*2, LLSelectMgr::sHighlightAlpha*2);
gGL.texCoord2fv( tc[1].mV );
gGL.vertex3fv( v[1].mV );
gGL.texCoord2fv( tc[3].mV );
gGL.vertex3fv( v[3].mV );
}
}
gGL.end();