Added extra shapes and removed some limits.
This commit is contained in:
@@ -87,6 +87,19 @@ enum {
|
|||||||
MI_TUBE,
|
MI_TUBE,
|
||||||
MI_RING,
|
MI_RING,
|
||||||
MI_SCULPT,
|
MI_SCULPT,
|
||||||
|
// <edit>
|
||||||
|
MI_HEMICYLINDER,
|
||||||
|
|
||||||
|
MI_SPIRAL_CIRCLE,
|
||||||
|
MI_SPIRAL_SQUARE,
|
||||||
|
MI_SPIRAL_TRIANGLE,
|
||||||
|
MI_SPIRAL_SEMICIRCLE,
|
||||||
|
|
||||||
|
MI_TEST_CYLINDER,
|
||||||
|
MI_TEST_BOX,
|
||||||
|
MI_TEST_PRISM,
|
||||||
|
MI_TEST_HEMICYLINDER,
|
||||||
|
// </edit>
|
||||||
MI_NONE,
|
MI_NONE,
|
||||||
MI_VOLUME_COUNT
|
MI_VOLUME_COUNT
|
||||||
};
|
};
|
||||||
@@ -676,10 +689,12 @@ void LLPanelObject::getState( )
|
|||||||
{
|
{
|
||||||
selected_item = MI_PRISM;
|
selected_item = MI_PRISM;
|
||||||
}
|
}
|
||||||
else if (path == LL_PCODE_PATH_FLEXIBLE) // shouldn't happen
|
// <edit> that was messin up my hemicylinder
|
||||||
{
|
//else if (path == LL_PCODE_PATH_FLEXIBLE) // shouldn't happen
|
||||||
selected_item = MI_CYLINDER; // reasonable default
|
//{
|
||||||
}
|
// selected_item = MI_CYLINDER; // reasonable default
|
||||||
|
//}
|
||||||
|
// </edit>
|
||||||
else if ( path == LL_PCODE_PATH_CIRCLE && profile == LL_PCODE_PROFILE_CIRCLE && scale_y > 0.75f)
|
else if ( path == LL_PCODE_PATH_CIRCLE && profile == LL_PCODE_PROFILE_CIRCLE && scale_y > 0.75f)
|
||||||
{
|
{
|
||||||
selected_item = MI_SPHERE;
|
selected_item = MI_SPHERE;
|
||||||
@@ -692,11 +707,13 @@ void LLPanelObject::getState( )
|
|||||||
{
|
{
|
||||||
selected_item = MI_SPHERE;
|
selected_item = MI_SPHERE;
|
||||||
}
|
}
|
||||||
else if ( path == LL_PCODE_PATH_CIRCLE2 && profile == LL_PCODE_PROFILE_CIRCLE )
|
// <edit> spirals are supported by me
|
||||||
{
|
//else if ( path == LL_PCODE_PATH_CIRCLE2 && profile == LL_PCODE_PROFILE_CIRCLE )
|
||||||
// Spirals aren't supported. Make it into a sphere. JC
|
//{
|
||||||
selected_item = MI_SPHERE;
|
// // Spirals aren't supported. Make it into a sphere. JC
|
||||||
}
|
// selected_item = MI_SPHERE;
|
||||||
|
//}
|
||||||
|
// </edit>
|
||||||
else if ( path == LL_PCODE_PATH_CIRCLE && profile == LL_PCODE_PROFILE_EQUALTRI )
|
else if ( path == LL_PCODE_PATH_CIRCLE && profile == LL_PCODE_PROFILE_EQUALTRI )
|
||||||
{
|
{
|
||||||
selected_item = MI_RING;
|
selected_item = MI_RING;
|
||||||
@@ -705,6 +722,63 @@ void LLPanelObject::getState( )
|
|||||||
{
|
{
|
||||||
selected_item = MI_TUBE;
|
selected_item = MI_TUBE;
|
||||||
}
|
}
|
||||||
|
// <edit>
|
||||||
|
else if( linear_path && profile == LL_PCODE_PROFILE_CIRCLE_HALF)
|
||||||
|
{
|
||||||
|
selected_item = MI_HEMICYLINDER;
|
||||||
|
}
|
||||||
|
// Spirals
|
||||||
|
else if( path == LL_PCODE_PATH_CIRCLE2 && profile == LL_PCODE_PROFILE_CIRCLE )
|
||||||
|
{
|
||||||
|
selected_item = MI_SPIRAL_CIRCLE;
|
||||||
|
}
|
||||||
|
else if( path == LL_PCODE_PATH_CIRCLE2 && profile == LL_PCODE_PROFILE_SQUARE )
|
||||||
|
{
|
||||||
|
selected_item = MI_SPIRAL_SQUARE;
|
||||||
|
}
|
||||||
|
else if( path == LL_PCODE_PATH_CIRCLE2 && profile == LL_PCODE_PROFILE_ISOTRI )
|
||||||
|
{
|
||||||
|
selected_item = MI_SPIRAL_TRIANGLE;
|
||||||
|
}
|
||||||
|
else if( path == LL_PCODE_PATH_CIRCLE2 && profile == LL_PCODE_PROFILE_EQUALTRI )
|
||||||
|
{
|
||||||
|
selected_item = MI_SPIRAL_TRIANGLE;
|
||||||
|
}
|
||||||
|
else if( path == LL_PCODE_PATH_CIRCLE2 && profile == LL_PCODE_PROFILE_RIGHTTRI )
|
||||||
|
{
|
||||||
|
selected_item = MI_SPIRAL_TRIANGLE;
|
||||||
|
}
|
||||||
|
else if( path == LL_PCODE_PATH_CIRCLE2 && profile == LL_PCODE_PROFILE_CIRCLE_HALF )
|
||||||
|
{
|
||||||
|
selected_item = MI_SPIRAL_SEMICIRCLE;
|
||||||
|
}
|
||||||
|
// Test path
|
||||||
|
else if( path == LL_PCODE_PATH_TEST && profile == LL_PCODE_PROFILE_CIRCLE )
|
||||||
|
{
|
||||||
|
selected_item = MI_TEST_CYLINDER;
|
||||||
|
}
|
||||||
|
else if( path == LL_PCODE_PATH_TEST && profile == LL_PCODE_PROFILE_SQUARE )
|
||||||
|
{
|
||||||
|
selected_item = MI_TEST_BOX;
|
||||||
|
}
|
||||||
|
else if( path == LL_PCODE_PATH_TEST && profile == LL_PCODE_PROFILE_ISOTRI )
|
||||||
|
{
|
||||||
|
selected_item = MI_TEST_PRISM;
|
||||||
|
}
|
||||||
|
else if( path == LL_PCODE_PATH_TEST && profile == LL_PCODE_PROFILE_EQUALTRI )
|
||||||
|
{
|
||||||
|
selected_item = MI_TEST_PRISM;
|
||||||
|
}
|
||||||
|
else if( path == LL_PCODE_PATH_TEST && profile == LL_PCODE_PROFILE_RIGHTTRI )
|
||||||
|
{
|
||||||
|
selected_item = MI_TEST_PRISM;
|
||||||
|
}
|
||||||
|
else if( path == LL_PCODE_PATH_TEST && profile == LL_PCODE_PROFILE_CIRCLE_HALF )
|
||||||
|
{
|
||||||
|
selected_item = MI_TEST_HEMICYLINDER;
|
||||||
|
}
|
||||||
|
|
||||||
|
// </edit>
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
llinfos << "Unknown path " << (S32) path << " profile " << (S32) profile << " in getState" << llendl;
|
llinfos << "Unknown path " << (S32) path << " profile " << (S32) profile << " in getState" << llendl;
|
||||||
@@ -911,17 +985,47 @@ void LLPanelObject::getState( )
|
|||||||
switch (selected_item)
|
switch (selected_item)
|
||||||
{
|
{
|
||||||
case MI_SPHERE:
|
case MI_SPHERE:
|
||||||
top_size_x_visible = FALSE;
|
// <edit>
|
||||||
top_size_y_visible = FALSE;
|
case MI_SPIRAL_CIRCLE:
|
||||||
top_shear_x_visible = FALSE;
|
case MI_SPIRAL_SQUARE:
|
||||||
top_shear_y_visible = FALSE;
|
case MI_SPIRAL_TRIANGLE:
|
||||||
//twist_visible = FALSE;
|
case MI_SPIRAL_SEMICIRCLE:
|
||||||
|
//top_size_x_visible = FALSE;
|
||||||
|
//top_size_y_visible = FALSE;
|
||||||
|
//top_shear_x_visible = FALSE;
|
||||||
|
//top_shear_y_visible = FALSE;
|
||||||
|
//advanced_cut_visible = TRUE;
|
||||||
|
//advanced_is_dimple = TRUE;
|
||||||
|
//twist_min = OBJECT_TWIST_MIN;
|
||||||
|
//twist_max = OBJECT_TWIST_MAX;
|
||||||
|
//twist_inc = OBJECT_TWIST_INC;
|
||||||
|
// Just like the others except no radius
|
||||||
|
size_is_hole = TRUE;
|
||||||
|
skew_visible = TRUE;
|
||||||
advanced_cut_visible = TRUE;
|
advanced_cut_visible = TRUE;
|
||||||
advanced_is_dimple = TRUE;
|
taper_visible = TRUE;
|
||||||
|
radius_offset_visible = FALSE;
|
||||||
|
revolutions_visible = TRUE;
|
||||||
twist_min = OBJECT_TWIST_MIN;
|
twist_min = OBJECT_TWIST_MIN;
|
||||||
twist_max = OBJECT_TWIST_MAX;
|
twist_max = OBJECT_TWIST_MAX;
|
||||||
twist_inc = OBJECT_TWIST_INC;
|
twist_inc = OBJECT_TWIST_INC;
|
||||||
break;
|
break;
|
||||||
|
case MI_TEST_BOX:
|
||||||
|
case MI_TEST_CYLINDER:
|
||||||
|
case MI_TEST_PRISM:
|
||||||
|
case MI_TEST_HEMICYLINDER:
|
||||||
|
cut_visible = FALSE;
|
||||||
|
advanced_cut_visible = TRUE;
|
||||||
|
taper_visible = FALSE;
|
||||||
|
radius_offset_visible = FALSE;
|
||||||
|
revolutions_visible = FALSE;
|
||||||
|
top_shear_x_visible = FALSE;
|
||||||
|
top_shear_y_visible = FALSE;
|
||||||
|
twist_min = OBJECT_TWIST_MIN;
|
||||||
|
twist_max = OBJECT_TWIST_MAX;
|
||||||
|
twist_inc = OBJECT_TWIST_INC;
|
||||||
|
// </edit>
|
||||||
|
break;
|
||||||
|
|
||||||
case MI_TORUS:
|
case MI_TORUS:
|
||||||
case MI_TUBE:
|
case MI_TUBE:
|
||||||
@@ -979,7 +1083,10 @@ void LLPanelObject::getState( )
|
|||||||
// Check if we need to change top size/hole size params.
|
// Check if we need to change top size/hole size params.
|
||||||
switch (selected_item)
|
switch (selected_item)
|
||||||
{
|
{
|
||||||
case MI_SPHERE:
|
// <edit>
|
||||||
|
//case MI_SPHERE:
|
||||||
|
// Sphere fall through to default: set scale_x min/max, dunno why
|
||||||
|
// </edit>
|
||||||
case MI_TORUS:
|
case MI_TORUS:
|
||||||
case MI_TUBE:
|
case MI_TUBE:
|
||||||
case MI_RING:
|
case MI_RING:
|
||||||
@@ -1410,6 +1517,46 @@ void LLPanelObject::getVolumeParams(LLVolumeParams& volume_params)
|
|||||||
profile = LL_PCODE_PROFILE_CIRCLE;
|
profile = LL_PCODE_PROFILE_CIRCLE;
|
||||||
path = LL_PCODE_PATH_CIRCLE;
|
path = LL_PCODE_PATH_CIRCLE;
|
||||||
break;
|
break;
|
||||||
|
// <edit>
|
||||||
|
case MI_HEMICYLINDER:
|
||||||
|
profile = LL_PCODE_PROFILE_CIRCLE_HALF;
|
||||||
|
path = LL_PCODE_PATH_LINE;
|
||||||
|
break;
|
||||||
|
// Spirals
|
||||||
|
case MI_SPIRAL_CIRCLE:
|
||||||
|
profile = LL_PCODE_PROFILE_CIRCLE;
|
||||||
|
path = LL_PCODE_PATH_CIRCLE2;
|
||||||
|
break;
|
||||||
|
case MI_SPIRAL_SQUARE:
|
||||||
|
profile = LL_PCODE_PROFILE_SQUARE;
|
||||||
|
path = LL_PCODE_PATH_CIRCLE2;
|
||||||
|
break;
|
||||||
|
case MI_SPIRAL_TRIANGLE:
|
||||||
|
profile = LL_PCODE_PROFILE_EQUALTRI;
|
||||||
|
path = LL_PCODE_PATH_CIRCLE2;
|
||||||
|
break;
|
||||||
|
case MI_SPIRAL_SEMICIRCLE:
|
||||||
|
profile = LL_PCODE_PROFILE_CIRCLE_HALF;
|
||||||
|
path = LL_PCODE_PATH_CIRCLE2;
|
||||||
|
break;
|
||||||
|
// Test path
|
||||||
|
case MI_TEST_CYLINDER:
|
||||||
|
profile = LL_PCODE_PROFILE_CIRCLE;
|
||||||
|
path = LL_PCODE_PATH_TEST;
|
||||||
|
break;
|
||||||
|
case MI_TEST_BOX:
|
||||||
|
profile = LL_PCODE_PROFILE_SQUARE;
|
||||||
|
path = LL_PCODE_PATH_TEST;
|
||||||
|
break;
|
||||||
|
case MI_TEST_PRISM:
|
||||||
|
profile = LL_PCODE_PROFILE_EQUALTRI;
|
||||||
|
path = LL_PCODE_PATH_TEST;
|
||||||
|
break;
|
||||||
|
case MI_TEST_HEMICYLINDER:
|
||||||
|
profile = LL_PCODE_PROFILE_CIRCLE_HALF;
|
||||||
|
path = LL_PCODE_PATH_TEST;
|
||||||
|
break;
|
||||||
|
// </edit>
|
||||||
|
|
||||||
default:
|
default:
|
||||||
llwarns << "Unknown base type " << selected_type
|
llwarns << "Unknown base type " << selected_type
|
||||||
@@ -1537,7 +1684,22 @@ void LLPanelObject::getVolumeParams(LLVolumeParams& volume_params)
|
|||||||
// Scale X,Y
|
// Scale X,Y
|
||||||
F32 scale_x = mSpinScaleX->get();
|
F32 scale_x = mSpinScaleX->get();
|
||||||
F32 scale_y = mSpinScaleY->get();
|
F32 scale_y = mSpinScaleY->get();
|
||||||
if ( was_selected_type == MI_BOX || was_selected_type == MI_CYLINDER || was_selected_type == MI_PRISM)
|
// <edit>
|
||||||
|
//if ( was_selected_type == MI_BOX || was_selected_type == MI_CYLINDER || was_selected_type == MI_PRISM)
|
||||||
|
if ( was_selected_type == MI_BOX || was_selected_type == MI_CYLINDER || was_selected_type == MI_PRISM ||
|
||||||
|
was_selected_type == MI_SPHERE ||
|
||||||
|
was_selected_type == MI_HEMICYLINDER ||
|
||||||
|
was_selected_type == MI_SPIRAL_CIRCLE ||
|
||||||
|
was_selected_type == MI_SPIRAL_SQUARE ||
|
||||||
|
was_selected_type == MI_SPIRAL_TRIANGLE ||
|
||||||
|
was_selected_type == MI_SPIRAL_SEMICIRCLE ||
|
||||||
|
was_selected_type == MI_TEST_BOX ||
|
||||||
|
was_selected_type == MI_TEST_PRISM ||
|
||||||
|
was_selected_type == MI_TEST_CYLINDER ||
|
||||||
|
was_selected_type == MI_TEST_HEMICYLINDER
|
||||||
|
)
|
||||||
|
// but why put sphere here if the other circle-paths aren't?
|
||||||
|
// </edit>
|
||||||
{
|
{
|
||||||
scale_x = 1.f - scale_x;
|
scale_x = 1.f - scale_x;
|
||||||
scale_y = 1.f - scale_y;
|
scale_y = 1.f - scale_y;
|
||||||
@@ -1559,13 +1721,23 @@ void LLPanelObject::getVolumeParams(LLVolumeParams& volume_params)
|
|||||||
if ( selected_type == MI_SPHERE )
|
if ( selected_type == MI_SPHERE )
|
||||||
{
|
{
|
||||||
// Snap values to valid sphere parameters.
|
// Snap values to valid sphere parameters.
|
||||||
scale_x = 1.0f;
|
// make scale (taper (hole size?)) work for sphere, part 2 of 2
|
||||||
scale_y = 1.0f;
|
//scale_x = 1.0f;
|
||||||
skew = 0.0f;
|
//scale_y = 1.0f;
|
||||||
taper_x = 0.0f;
|
// </edit>
|
||||||
taper_y = 0.0f;
|
// <edit> testing skew
|
||||||
|
//skew = 0.0f;
|
||||||
|
// </edit>
|
||||||
|
// <edit>
|
||||||
|
// Make OTHER taper work for sphere
|
||||||
|
//taper_x = 0.0f;
|
||||||
|
//taper_y = 0.0f;
|
||||||
|
// </edit>
|
||||||
radius_offset = 0.0f;
|
radius_offset = 0.0f;
|
||||||
revolutions = 1.0f;
|
// <edit>
|
||||||
|
// Revolutions works fine on sphere
|
||||||
|
//revolutions = 1.0f;
|
||||||
|
// </edit>
|
||||||
}
|
}
|
||||||
else if ( selected_type == MI_TORUS || selected_type == MI_TUBE ||
|
else if ( selected_type == MI_TORUS || selected_type == MI_TUBE ||
|
||||||
selected_type == MI_RING )
|
selected_type == MI_RING )
|
||||||
|
|||||||
@@ -716,6 +716,37 @@
|
|||||||
<combo_item name="Sculpted" value="Sculpted">
|
<combo_item name="Sculpted" value="Sculpted">
|
||||||
Sculpted
|
Sculpted
|
||||||
</combo_item>
|
</combo_item>
|
||||||
|
|
||||||
|
<combo_item name="Hemicylinder" value="Hemicylinder">
|
||||||
|
Hemicylinder
|
||||||
|
</combo_item>
|
||||||
|
|
||||||
|
<combo_item name="Spiral Circle" value="Spiral Circle">
|
||||||
|
Spiral Circle
|
||||||
|
</combo_item>
|
||||||
|
<combo_item name="Spiral Square" value="Spiral Square">
|
||||||
|
Spiral Square
|
||||||
|
</combo_item>
|
||||||
|
<combo_item name="Spiral Triangle" value="Spiral Triangle">
|
||||||
|
Spiral Triangle
|
||||||
|
</combo_item>
|
||||||
|
<combo_item name="Spiral Semicircle" value="Spiral Semicircle">
|
||||||
|
Spiral Semicircle
|
||||||
|
</combo_item>
|
||||||
|
|
||||||
|
<combo_item name="Test Cylinder" value="Test Cylinder">
|
||||||
|
Test Cylinder
|
||||||
|
</combo_item>
|
||||||
|
<combo_item name="Test Box" value="Test Box">
|
||||||
|
Test Box
|
||||||
|
</combo_item>
|
||||||
|
<combo_item name="Test Prism" value="Test Prism">
|
||||||
|
Test Prism
|
||||||
|
</combo_item>
|
||||||
|
<combo_item name="Test Hemicylinder" value="Test Hemicylinder">
|
||||||
|
Test Hemicylinder
|
||||||
|
</combo_item>
|
||||||
|
|
||||||
</combo_box>
|
</combo_box>
|
||||||
<text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
<text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||||
bottom_delta="-12" drop_shadow_visible="true" follows="left|top"
|
bottom_delta="-12" drop_shadow_visible="true" follows="left|top"
|
||||||
|
|||||||
Reference in New Issue
Block a user