summaryrefslogtreecommitdiff
path: root/indra/newview/llselectmgr.cpp
diff options
context:
space:
mode:
authorOz Linden <oz@lindenlab.com>2013-05-22 11:43:32 -0400
committerOz Linden <oz@lindenlab.com>2013-05-22 11:43:32 -0400
commit2b517892ad571d935645f46eee5b0c1182d9c5c9 (patch)
treeedbf93d7c3105927ece4ac9f179a71e8e307aff3 /indra/newview/llselectmgr.cpp
parent5758b9e304c182db93aa642358140d9464331208 (diff)
parentd4f2a2df5308ba1527e6f000582f75b73e5ea597 (diff)
merge latest project repo
Diffstat (limited to 'indra/newview/llselectmgr.cpp')
-rwxr-xr-xindra/newview/llselectmgr.cpp42
1 files changed, 40 insertions, 2 deletions
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index e42d29f7e3..1bb12e495d 100755
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -2507,8 +2507,46 @@ void LLSelectMgr::adjustTexturesByScale(BOOL send_to_sim, BOOL stretch)
// Apply new scale to face
if (planar)
{
- object->setTEScale(te_num, 1.f/object_scale.mV[s_axis]*scale_ratio.mV[s_axis],
- 1.f/object_scale.mV[t_axis]*scale_ratio.mV[t_axis]);
+ F32 scale_s = scale_ratio.mV[s_axis]/object_scale.mV[s_axis];
+ F32 scale_t = scale_ratio.mV[t_axis]/object_scale.mV[t_axis];
+
+ switch (mTextureChannel)
+ {
+ case LLRender::DIFFUSE_MAP:
+ {
+ object->setTEScale(te_num, scale_s, scale_t);
+ }
+ break;
+
+ case LLRender::NORMAL_MAP:
+ {
+ LLTextureEntry* tep = object->getTE(te_num);
+ if (tep && !tep->getMaterialParams().isNull())
+ {
+ LLMaterialPtr orig = tep->getMaterialParams();
+ LLMaterialPtr p = new LLMaterial(orig->asLLSD());
+ p->setNormalRepeat(scale_s * 0.5f, scale_t * 0.5f);
+ selectionSetMaterial( p );
+ }
+ }
+ break;
+
+ case LLRender::SPECULAR_MAP:
+ {
+ LLTextureEntry* tep = object->getTE(te_num);
+ if (tep && !tep->getMaterialParams().isNull())
+ {
+ LLMaterialPtr orig = tep->getMaterialParams();
+ LLMaterialPtr p = new LLMaterial(orig->asLLSD());
+ p->setSpecularRepeat(scale_s * 0.5f, scale_t * 0.5f);
+ selectionSetMaterial( p );
+ }
+ }
+ break;
+ default:
+ break;
+ }
+
}
else
{