Build Improvements: Phoenix's additional path profiles and transforms types
parent
7d26daa6bf
commit
57b3a6789a
|
|
@ -148,6 +148,9 @@ const U8 LL_PCODE_PATH_IGNORE = 0x00;
|
|||
const U8 LL_PCODE_PATH_MIN = 0x01; // min/max needs to be >> 4 of real min/max
|
||||
const U8 LL_PCODE_PATH_LINE = 0x10;
|
||||
const U8 LL_PCODE_PATH_CIRCLE = 0x20;
|
||||
//<-- Working33 by Gregory Maurer
|
||||
const U8 LL_PCODE_PATH_CIRCLE_33 = 0x21;
|
||||
//Working33 -->
|
||||
const U8 LL_PCODE_PATH_CIRCLE2 = 0x30;
|
||||
const U8 LL_PCODE_PATH_TEST = 0x40;
|
||||
const U8 LL_PCODE_PATH_FLEXIBLE = 0x80;
|
||||
|
|
|
|||
|
|
@ -91,6 +91,22 @@ enum {
|
|||
MI_TUBE,
|
||||
MI_RING,
|
||||
MI_SCULPT,
|
||||
MI_PATH_LINE_PROFILE_CIRCLE_HALF,
|
||||
MI_PATH_CIRCLE_PROFILE_CIRCLE_HALF,
|
||||
MI_PATH_CIRCLE2_PROFILE_SQUARE,
|
||||
MI_PATH_CIRCLE2_PROFILE_TRI,
|
||||
MI_PATH_CIRCLE2_PROFILE_CIRCLE,
|
||||
MI_PATH_CIRCLE2_PROFILE_CIRCLE_HALF,
|
||||
MI_PATH_TEST_PROFILE_SQUARE,
|
||||
MI_PATH_TEST_PROFILE_TRI,
|
||||
MI_PATH_TEST_PROFILE_CIRCLE,
|
||||
MI_PATH_TEST_PROFILE_CIRCLE_HALF,
|
||||
//<-- Working33 by Gregory Maurer
|
||||
MI_PATH_33_PROFILE_CIRCLE,
|
||||
MI_PATH_33_PROFILE_SQUARE,
|
||||
MI_PATH_33_PROFILE_TRIANGLE,
|
||||
MI_PATH_33_PROFILE_HALFCIRCLE,
|
||||
//Working33 -->
|
||||
MI_NONE,
|
||||
MI_VOLUME_COUNT
|
||||
};
|
||||
|
|
@ -748,6 +764,56 @@ void LLPanelObject::getState( )
|
|||
{
|
||||
selected_item = MI_TUBE;
|
||||
}
|
||||
else if ( path == LL_PCODE_PATH_CIRCLE2 && profile == LL_PCODE_PROFILE_EQUALTRI )
|
||||
{
|
||||
selected_item = MI_PATH_CIRCLE2_PROFILE_TRI;
|
||||
}
|
||||
else if ( path == LL_PCODE_PATH_CIRCLE2 && profile == LL_PCODE_PROFILE_SQUARE )
|
||||
{
|
||||
selected_item = MI_PATH_CIRCLE2_PROFILE_SQUARE;
|
||||
}
|
||||
else if ( path == LL_PCODE_PATH_CIRCLE2 && profile == LL_PCODE_PROFILE_CIRCLE_HALF )
|
||||
{
|
||||
selected_item = MI_PATH_CIRCLE2_PROFILE_CIRCLE_HALF;
|
||||
}
|
||||
else if ( path == LL_PCODE_PATH_TEST && profile == LL_PCODE_PROFILE_SQUARE )
|
||||
{
|
||||
selected_item = MI_PATH_TEST_PROFILE_SQUARE;
|
||||
}
|
||||
else if ( path == LL_PCODE_PATH_TEST && profile == LL_PCODE_PROFILE_EQUALTRI )
|
||||
{
|
||||
selected_item = MI_PATH_TEST_PROFILE_TRI;
|
||||
}
|
||||
else if ( path == LL_PCODE_PATH_TEST && profile == LL_PCODE_PROFILE_CIRCLE )
|
||||
{
|
||||
selected_item = MI_PATH_TEST_PROFILE_CIRCLE;
|
||||
}
|
||||
else if ( path == LL_PCODE_PATH_TEST && profile == LL_PCODE_PROFILE_CIRCLE_HALF )
|
||||
{
|
||||
selected_item = MI_PATH_TEST_PROFILE_CIRCLE_HALF;
|
||||
}
|
||||
else if ( path == LL_PCODE_PATH_LINE && profile == LL_PCODE_PROFILE_CIRCLE_HALF )
|
||||
{
|
||||
selected_item = MI_PATH_LINE_PROFILE_CIRCLE_HALF;
|
||||
}
|
||||
//<-- Working33 by Gregory Maurer
|
||||
else if ( path == LL_PCODE_PATH_CIRCLE_33 && profile == LL_PCODE_PROFILE_CIRCLE )
|
||||
{
|
||||
selected_item = MI_PATH_33_PROFILE_CIRCLE;
|
||||
}
|
||||
else if ( path == LL_PCODE_PATH_CIRCLE_33 && profile == LL_PCODE_PROFILE_SQUARE )
|
||||
{
|
||||
selected_item = MI_PATH_33_PROFILE_SQUARE;
|
||||
}
|
||||
else if ( path == LL_PCODE_PATH_CIRCLE_33 && profile == LL_PCODE_PROFILE_ISOTRI )
|
||||
{
|
||||
selected_item = MI_PATH_33_PROFILE_TRIANGLE;
|
||||
}
|
||||
else if ( path == LL_PCODE_PATH_CIRCLE_33 && profile == LL_PCODE_PROFILE_CIRCLE_HALF )
|
||||
{
|
||||
selected_item = MI_PATH_33_PROFILE_HALFCIRCLE;
|
||||
}
|
||||
//Working33 -->
|
||||
else
|
||||
{
|
||||
llinfos << "Unknown path " << (S32) path << " profile " << (S32) profile << " in getState" << llendl;
|
||||
|
|
@ -872,6 +938,8 @@ void LLPanelObject::getState( )
|
|||
// Radius offset.
|
||||
F32 radius_offset = volume_params.getRadiusOffset();
|
||||
// Limit radius offset, based on taper and hole size y.
|
||||
//KC: Phoenix capability
|
||||
#if 0
|
||||
F32 radius_mag = fabs(radius_offset);
|
||||
F32 hole_y_mag = fabs(scale_y);
|
||||
F32 taper_y_mag = fabs(taper_y);
|
||||
|
|
@ -896,6 +964,7 @@ void LLPanelObject::getState( )
|
|||
radius_offset = max_radius_mag;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
mSpinRadiusOffset->set( radius_offset);
|
||||
calcp->setVar(LLCalc::RADIUS_OFFSET, radius_offset);
|
||||
|
||||
|
|
@ -907,6 +976,8 @@ void LLPanelObject::getState( )
|
|||
// Skew
|
||||
F32 skew = volume_params.getSkew();
|
||||
// Limit skew, based on revolutions hole size x.
|
||||
//KC: Phoenix capability
|
||||
#if 0
|
||||
F32 skew_mag= fabs(skew);
|
||||
F32 min_skew_mag = 1.0f - 1.0f / (revolutions * scale_x + 1.0f);
|
||||
// Discontinuity; A revolution of 1 allows skews below 0.5.
|
||||
|
|
@ -926,6 +997,7 @@ void LLPanelObject::getState( )
|
|||
skew = min_skew_mag;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
mSpinSkew->set( skew );
|
||||
calcp->setVar(LLCalc::SKEW, skew);
|
||||
}
|
||||
|
|
@ -939,11 +1011,12 @@ void LLPanelObject::getState( )
|
|||
BOOL top_shear_x_visible = TRUE;
|
||||
BOOL top_shear_y_visible = TRUE;
|
||||
BOOL twist_visible = TRUE;
|
||||
BOOL advanced_cut_visible = FALSE;
|
||||
BOOL taper_visible = FALSE;
|
||||
BOOL skew_visible = FALSE;
|
||||
BOOL radius_offset_visible = FALSE;
|
||||
BOOL revolutions_visible = FALSE;
|
||||
//KC: Phoenix capability, allow all transforms
|
||||
BOOL advanced_cut_visible = TRUE;
|
||||
BOOL taper_visible = TRUE;
|
||||
BOOL skew_visible = TRUE;
|
||||
BOOL radius_offset_visible = TRUE;
|
||||
BOOL revolutions_visible = TRUE;
|
||||
BOOL sculpt_texture_visible = FALSE;
|
||||
F32 twist_min = OBJECT_TWIST_LINEAR_MIN;
|
||||
F32 twist_max = OBJECT_TWIST_LINEAR_MAX;
|
||||
|
|
@ -957,11 +1030,11 @@ void LLPanelObject::getState( )
|
|||
switch (selected_item)
|
||||
{
|
||||
case MI_SPHERE:
|
||||
top_size_x_visible = FALSE;
|
||||
top_size_y_visible = FALSE;
|
||||
top_shear_x_visible = FALSE;
|
||||
top_shear_y_visible = FALSE;
|
||||
//twist_visible = FALSE;
|
||||
top_size_x_visible = TRUE;
|
||||
top_size_y_visible = TRUE;
|
||||
top_shear_x_visible = TRUE;
|
||||
top_shear_y_visible = TRUE;
|
||||
twist_visible = TRUE;
|
||||
advanced_cut_visible = TRUE;
|
||||
advanced_is_dimple = TRUE;
|
||||
twist_min = OBJECT_TWIST_MIN;
|
||||
|
|
@ -1030,6 +1103,10 @@ void LLPanelObject::getState( )
|
|||
mSpinScaleY->set( scale_y );
|
||||
calcp->setVar(LLCalc::X_HOLE, scale_x);
|
||||
calcp->setVar(LLCalc::Y_HOLE, scale_y);
|
||||
mSpinScaleX->setMinValue(0.0f);
|
||||
mSpinScaleX->setMaxValue(1.0f);
|
||||
mSpinScaleY->setMinValue(0.0f);
|
||||
mSpinScaleY->setMaxValue(1.0f);
|
||||
break;
|
||||
case MI_TORUS:
|
||||
case MI_TUBE:
|
||||
|
|
@ -1046,12 +1123,20 @@ void LLPanelObject::getState( )
|
|||
default:
|
||||
if (editable)
|
||||
{
|
||||
mSpinScaleX->set( 1.f - scale_x );
|
||||
mSpinScaleY->set( 1.f - scale_y );
|
||||
mSpinScaleX->setMinValue(-1.f);
|
||||
mSpinScaleX->setMaxValue(1.f);
|
||||
mSpinScaleY->setMinValue(-1.f);
|
||||
mSpinScaleY->setMaxValue(1.f);
|
||||
F32 tmp_scale_x = scale_x;
|
||||
F32 tmp_scale_y = scale_y;
|
||||
if ( selected_item == MI_BOX || selected_item == MI_CYLINDER || selected_item == MI_PRISM)
|
||||
{
|
||||
tmp_scale_x = 1.f - tmp_scale_x;
|
||||
tmp_scale_y = 1.f - tmp_scale_y;
|
||||
}
|
||||
mSpinScaleX->set( tmp_scale_x );
|
||||
mSpinScaleY->set( tmp_scale_y );
|
||||
mSpinScaleX->setMinValue(-4000.f);
|
||||
mSpinScaleX->setMaxValue(4000.f);
|
||||
mSpinScaleY->setMinValue(-4000.f);
|
||||
mSpinScaleY->setMaxValue(4000.f);
|
||||
// Torus' Hole Size is Box/Cyl/Prism's Taper
|
||||
calcp->setVar(LLCalc::X_TAPER, 1.f - scale_x);
|
||||
calcp->setVar(LLCalc::Y_TAPER, 1.f - scale_y);
|
||||
|
||||
|
|
@ -1063,6 +1148,8 @@ void LLPanelObject::getState( )
|
|||
}
|
||||
|
||||
// Check if we need to limit the hollow based on the hole type.
|
||||
//KC: Phoenix capability
|
||||
#if 0
|
||||
if ( selected_hole == MI_HOLE_SQUARE &&
|
||||
( selected_item == MI_CYLINDER || selected_item == MI_TORUS ||
|
||||
selected_item == MI_PRISM || selected_item == MI_RING ||
|
||||
|
|
@ -1072,9 +1159,10 @@ void LLPanelObject::getState( )
|
|||
mSpinHollow->setMaxValue(70.f);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
mSpinHollow->setMinValue(0.f);
|
||||
mSpinHollow->setMaxValue(95.f);
|
||||
mSpinHollow->setMaxValue(100.f);
|
||||
}
|
||||
|
||||
// Update field enablement
|
||||
|
|
@ -1470,6 +1558,78 @@ void LLPanelObject::getVolumeParams(LLVolumeParams& volume_params)
|
|||
path = LL_PCODE_PATH_CIRCLE;
|
||||
break;
|
||||
|
||||
case MI_PATH_LINE_PROFILE_CIRCLE_HALF:
|
||||
profile = LL_PCODE_PROFILE_CIRCLE_HALF;
|
||||
path = LL_PCODE_PATH_LINE;
|
||||
break;
|
||||
|
||||
case MI_PATH_CIRCLE_PROFILE_CIRCLE_HALF:
|
||||
profile = LL_PCODE_PROFILE_CIRCLE_HALF;
|
||||
path = LL_PCODE_PATH_CIRCLE;
|
||||
break;
|
||||
|
||||
case MI_PATH_CIRCLE2_PROFILE_SQUARE:
|
||||
profile = LL_PCODE_PROFILE_SQUARE;
|
||||
path = LL_PCODE_PATH_CIRCLE2;
|
||||
break;
|
||||
|
||||
case MI_PATH_CIRCLE2_PROFILE_TRI:
|
||||
profile = LL_PCODE_PROFILE_EQUALTRI;
|
||||
path = LL_PCODE_PATH_CIRCLE2;
|
||||
break;
|
||||
|
||||
case MI_PATH_CIRCLE2_PROFILE_CIRCLE:
|
||||
profile = LL_PCODE_PROFILE_CIRCLE;
|
||||
path = LL_PCODE_PATH_CIRCLE2;
|
||||
break;
|
||||
|
||||
case MI_PATH_CIRCLE2_PROFILE_CIRCLE_HALF:
|
||||
profile = LL_PCODE_PROFILE_CIRCLE_HALF;
|
||||
path = LL_PCODE_PATH_CIRCLE2;
|
||||
break;
|
||||
|
||||
case MI_PATH_TEST_PROFILE_SQUARE:
|
||||
profile = LL_PCODE_PROFILE_SQUARE;
|
||||
path = LL_PCODE_PATH_TEST;
|
||||
break;
|
||||
|
||||
case MI_PATH_TEST_PROFILE_TRI:
|
||||
profile = LL_PCODE_PROFILE_EQUALTRI;
|
||||
path = LL_PCODE_PATH_TEST;
|
||||
break;
|
||||
|
||||
case MI_PATH_TEST_PROFILE_CIRCLE:
|
||||
profile = LL_PCODE_PROFILE_CIRCLE;
|
||||
path = LL_PCODE_PATH_TEST;
|
||||
break;
|
||||
|
||||
case MI_PATH_TEST_PROFILE_CIRCLE_HALF:
|
||||
profile = LL_PCODE_PROFILE_CIRCLE_HALF;
|
||||
path = LL_PCODE_PATH_TEST;
|
||||
break;
|
||||
|
||||
//<-- Working33 by Gregory Maurer
|
||||
case MI_PATH_33_PROFILE_CIRCLE:
|
||||
profile = LL_PCODE_PROFILE_CIRCLE;
|
||||
path = LL_PCODE_PATH_CIRCLE_33;
|
||||
break;
|
||||
|
||||
case MI_PATH_33_PROFILE_SQUARE:
|
||||
profile = LL_PCODE_PROFILE_SQUARE;
|
||||
path = LL_PCODE_PATH_CIRCLE_33;
|
||||
break;
|
||||
|
||||
case MI_PATH_33_PROFILE_TRIANGLE:
|
||||
profile = LL_PCODE_PROFILE_ISOTRI;
|
||||
path = LL_PCODE_PATH_CIRCLE_33;
|
||||
break;
|
||||
|
||||
case MI_PATH_33_PROFILE_HALFCIRCLE:
|
||||
profile = LL_PCODE_PROFILE_CIRCLE_HALF;
|
||||
path = LL_PCODE_PATH_CIRCLE_33;
|
||||
break;
|
||||
//Working33 -->
|
||||
|
||||
default:
|
||||
llwarns << "Unknown base type " << selected_type
|
||||
<< " in getVolumeParams()" << llendl;
|
||||
|
|
@ -1560,6 +1720,8 @@ void LLPanelObject::getVolumeParams(LLVolumeParams& volume_params)
|
|||
// Hollowness
|
||||
F32 hollow = mSpinHollow->get() / 100.f;
|
||||
|
||||
//KC: Phoenix capability
|
||||
#if 0
|
||||
if ( selected_hole == MI_HOLE_SQUARE &&
|
||||
( selected_type == MI_CYLINDER || selected_type == MI_TORUS ||
|
||||
selected_type == MI_PRISM || selected_type == MI_RING ||
|
||||
|
|
@ -1567,6 +1729,7 @@ void LLPanelObject::getVolumeParams(LLVolumeParams& volume_params)
|
|||
{
|
||||
if (hollow > 0.7f) hollow = 0.7f;
|
||||
}
|
||||
#endif
|
||||
|
||||
volume_params.setHollow( hollow );
|
||||
|
||||
|
|
@ -1610,6 +1773,8 @@ void LLPanelObject::getVolumeParams(LLVolumeParams& volume_params)
|
|||
// Revolutions
|
||||
F32 revolutions = mSpinRevolutions->get();
|
||||
|
||||
//KC: Phoenix capability
|
||||
#if 0
|
||||
if ( selected_type == MI_SPHERE )
|
||||
{
|
||||
// Snap values to valid sphere parameters.
|
||||
|
|
@ -1680,6 +1845,7 @@ void LLPanelObject::getVolumeParams(LLVolumeParams& volume_params)
|
|||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
volume_params.setRatio( scale_x, scale_y );
|
||||
volume_params.setSkew(skew);
|
||||
|
|
|
|||
|
|
@ -1687,6 +1687,64 @@ even though the user gets a free copy.
|
|||
label="Sculpted"
|
||||
name="Sculpted"
|
||||
value="Sculpted" />
|
||||
<combo_item
|
||||
name="PathLineProfileHalfCircle"
|
||||
value="PathLineProfileHalfCircle"
|
||||
label="Line->Half-Circle" />
|
||||
<combo_item
|
||||
name="PathCircleProfileHalfCircle"
|
||||
value="PathCircleProfileHalfCircle"
|
||||
label="Circle->Half-Circle" />
|
||||
<combo_item
|
||||
name="PathCircle2ProfileSquare"
|
||||
value="PathCircle2ProfileSquare"
|
||||
label="Circle2->Square" />
|
||||
<combo_item
|
||||
name="PathCircle2ProfileTriangle"
|
||||
value="PathCircle2ProfileTriangle"
|
||||
label="Circle2->Triangle" />
|
||||
<combo_item
|
||||
name="PathCircle2ProfileCircle"
|
||||
value="PathCircle2ProfileCircle"
|
||||
label="Circle2->Circle" />
|
||||
<combo_item
|
||||
name="PathCircle2ProfileHalfCircle"
|
||||
value="PathCircle2ProfileHalfCircle"
|
||||
label="Circle2->Half-Circle" />
|
||||
<combo_item
|
||||
name="PathTestProfileSquare"
|
||||
value="PathTestProfileSquare"
|
||||
label="Test->Square" />
|
||||
<combo_item
|
||||
name="PathTestProfileTriangle"
|
||||
value="PathTestProfileTriangle"
|
||||
label="Test->Triangle" />
|
||||
<combo_item
|
||||
name="PathTestProfileCircle"
|
||||
value="PathTestProfileCircle"
|
||||
label="Test->Circle" />
|
||||
<combo_item
|
||||
name="PathTestProfileHalfCircle"
|
||||
value="PathTestProfileHalfCircle"
|
||||
label="Test->Half-Circle" />
|
||||
<!-- Working33 by Gregory Maurer -->
|
||||
<combo_item
|
||||
name="Path33Profile0"
|
||||
value="Path33Profile0"
|
||||
label="33->Circle" />
|
||||
<combo_item
|
||||
name="Path33Profile1"
|
||||
value="Path33Profile1"
|
||||
label="33->Square" />
|
||||
<combo_item
|
||||
name="Path33Profile2"
|
||||
value="Path33Profile2"
|
||||
label="33->Triangle" />
|
||||
<combo_item
|
||||
name="Path33Profile5"
|
||||
value="Path33Profile5"
|
||||
label="33->HalfCircle" />
|
||||
<!-- End Working33 by Gregory Maurer -->
|
||||
</combo_box>
|
||||
<combo_box
|
||||
height="19"
|
||||
|
|
|
|||
Loading…
Reference in New Issue