diff options
author | Nyx (Neal Orman) <nyx@lindenlab.com> | 2010-11-19 17:12:10 -0500 |
---|---|---|
committer | Nyx (Neal Orman) <nyx@lindenlab.com> | 2010-11-19 17:12:10 -0500 |
commit | 82315e232e43d574a3bed480806c635c3d2bdf98 (patch) | |
tree | 3340f9df948bc0ea0f59dad9afc4f3acfe08cfe3 /indra | |
parent | 6b0d10975b0ec00b374554ecd3b211e0d966272b (diff) | |
parent | 0891a4adc6ea67ba6dabeea4cbf1c0cc9eb9e0cd (diff) |
Automated merge with https://hg.secondlife.com/mesh-development
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llvovolume.cpp | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 9aebfcba4a..39e286ac38 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -2950,6 +2950,7 @@ U32 LLVOVolume::getRenderCost(texture_cost_t &textures) const // these multipliers are variable and can be floating point
F32 scale = 0.f;
F32 twist = 0.f;
+ F32 revolutions = 0.f;
const LLDrawable* drawablep = mDrawable;
@@ -3046,6 +3047,13 @@ U32 LLVOVolume::getRenderCost(texture_cost_t &textures) const // scale to degrees / 90 by multiplying by 2.
twist = twist_mag * 2.f;
+ // multiply by the number of revolutions in the prim. cap at 4.
+ revolutions = path_params.getRevolutions();
+ if (revolutions > 4.f)
+ {
+ revolutions = 4.f;
+ }
+
// double cost for circular profiles / sculpties
if (profile_params.getCurveType() == LL_PCODE_PROFILE_CIRCLE ||
profile_params.getCurveType() == LL_PCODE_PROFILE_CIRCLE_HALF)
@@ -3135,11 +3143,6 @@ U32 LLVOVolume::getRenderCost(texture_cost_t &textures) const shame *= hollow * ARC_HOLLOW_MULT;
}
- if (twist > 1.f)
- {
- shame = (U32)(shame * twist);
- }
-
if (circular_profile)
{
shame *= circular_profile * ARC_CIRC_PROF_MULT;
@@ -3170,11 +3173,21 @@ U32 LLVOVolume::getRenderCost(texture_cost_t &textures) const shame *= shiny * ARC_SHINY_MULT;
}
+ if (twist > 1.f)
+ {
+ shame = (U32)(shame * twist);
+ }
+
if (scale > 1.f)
{
shame = (U32)(shame *scale);
}
+ if (revolutions > 1.f)
+ {
+ shame = (U32)(shame * revolutions);
+ }
+
// add additional costs
shame += particles * ARC_PARTICLE_COST;
|