diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llappviewer.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llpanelface.cpp | 21 | ||||
| -rw-r--r-- | indra/newview/llpanelobject.cpp | 51 | 
3 files changed, 73 insertions, 4 deletions
| diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 1d9519d675..80ac385e3b 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -56,6 +56,7 @@  #include "llallocator.h"  #include "llares.h"   #include "llcurl.h" +#include "llcalc.h"  #include "lltexturestats.h"  #include "lltexturestats.h"  #include "llviewerwindow.h" @@ -1543,7 +1544,9 @@ bool LLAppViewer::cleanup()  	// Note: this is where gLocalSpeakerMgr and gActiveSpeakerMgr used to be deleted.  	LLWorldMap::getInstance()->reset(); // release any images -	 + +	LLCalc::cleanUp(); +  	llinfos << "Global stuff deleted" << llendflush;  	if (gAudiop) diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp index 07c7f35989..a4f6921f98 100644 --- a/indra/newview/llpanelface.cpp +++ b/indra/newview/llpanelface.cpp @@ -30,6 +30,7 @@  #include "llpanelface.h"  // library includes +#include "llcalc.h"  #include "llerror.h"  #include "llfocusmgr.h"  #include "llrect.h" @@ -926,6 +927,16 @@ void LLPanelFace::getState()  				getChildView("button apply")->setEnabled(enabled);  			}  		} + +		// Set variable values for numeric expressions +		LLCalc* calcp = LLCalc::getInstance(); +		calcp->setVar(LLCalc::TEX_U_SCALE, childGetValue("TexScaleU").asReal()); +		calcp->setVar(LLCalc::TEX_V_SCALE, childGetValue("TexScaleV").asReal()); +		calcp->setVar(LLCalc::TEX_U_OFFSET, childGetValue("TexOffsetU").asReal()); +		calcp->setVar(LLCalc::TEX_V_OFFSET, childGetValue("TexOffsetV").asReal()); +		calcp->setVar(LLCalc::TEX_ROTATION, childGetValue("TexRot").asReal()); +		calcp->setVar(LLCalc::TEX_TRANSPARENCY, childGetValue("ColorTrans").asReal()); +		calcp->setVar(LLCalc::TEX_GLOW, childGetValue("glow").asReal());  	}  	else  	{ @@ -961,6 +972,16 @@ void LLPanelFace::getState()  		//getChildView("has media")->setEnabled(FALSE);  		//getChildView("media info set")->setEnabled(FALSE); + +		// Set variable values for numeric expressions +		LLCalc* calcp = LLCalc::getInstance(); +		calcp->clearVar(LLCalc::TEX_U_SCALE); +		calcp->clearVar(LLCalc::TEX_V_SCALE); +		calcp->clearVar(LLCalc::TEX_U_OFFSET); +		calcp->clearVar(LLCalc::TEX_V_OFFSET); +		calcp->clearVar(LLCalc::TEX_ROTATION); +		calcp->clearVar(LLCalc::TEX_TRANSPARENCY); +		calcp->clearVar(LLCalc::TEX_GLOW);		  	}  } diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp index 52917ff20b..c222bbb191 100644 --- a/indra/newview/llpanelobject.cpp +++ b/indra/newview/llpanelobject.cpp @@ -41,6 +41,7 @@  // project includes  #include "llagent.h"  #include "llbutton.h" +#include "llcalc.h"  #include "llcheckboxctrl.h"  #include "llcolorswatch.h"  #include "llcombobox.h" @@ -318,6 +319,8 @@ void LLPanelObject::getState( )  		}  	} +	LLCalc* calcp = LLCalc::getInstance(); +  	LLVOVolume *volobjp = NULL;  	if ( objectp && (objectp->getPCode() == LL_PCODE_VOLUME))  	{ @@ -334,6 +337,7 @@ void LLPanelObject::getState( )  		// Disable all text input fields  		clearCtrls(); +		calcp->clearAllVariables();  		return;  	} @@ -360,12 +364,18 @@ void LLPanelObject::getState( )  		mCtrlPosX->set( vec.mV[VX] );  		mCtrlPosY->set( vec.mV[VY] );  		mCtrlPosZ->set( vec.mV[VZ] ); +		calcp->setVar(LLCalc::X_POS, vec.mV[VX]); +		calcp->setVar(LLCalc::Y_POS, vec.mV[VY]); +		calcp->setVar(LLCalc::Z_POS, vec.mV[VZ]);  	}  	else  	{  		mCtrlPosX->clear();  		mCtrlPosY->clear();  		mCtrlPosZ->clear(); +		calcp->clearVar(LLCalc::X_POS); +		calcp->clearVar(LLCalc::Y_POS); +		calcp->clearVar(LLCalc::Z_POS);  	} @@ -380,12 +390,18 @@ void LLPanelObject::getState( )  		mCtrlScaleX->set( vec.mV[VX] );  		mCtrlScaleY->set( vec.mV[VY] );  		mCtrlScaleZ->set( vec.mV[VZ] ); +		calcp->setVar(LLCalc::X_SCALE, vec.mV[VX]); +		calcp->setVar(LLCalc::Y_SCALE, vec.mV[VY]); +		calcp->setVar(LLCalc::Z_SCALE, vec.mV[VZ]);  	}  	else  	{  		mCtrlScaleX->clear();  		mCtrlScaleY->clear();  		mCtrlScaleZ->clear(); +		calcp->setVar(LLCalc::X_SCALE, 0.f); +		calcp->setVar(LLCalc::Y_SCALE, 0.f); +		calcp->setVar(LLCalc::Z_SCALE, 0.f);  	}  	mLabelSize->setEnabled( enable_scale ); @@ -405,12 +421,18 @@ void LLPanelObject::getState( )  		mCtrlRotX->set( mCurEulerDegrees.mV[VX] );  		mCtrlRotY->set( mCurEulerDegrees.mV[VY] );  		mCtrlRotZ->set( mCurEulerDegrees.mV[VZ] ); +		calcp->setVar(LLCalc::X_ROT, mCurEulerDegrees.mV[VX]); +		calcp->setVar(LLCalc::Y_ROT, mCurEulerDegrees.mV[VY]); +		calcp->setVar(LLCalc::Z_ROT, mCurEulerDegrees.mV[VZ]);  	}  	else  	{  		mCtrlRotX->clear();  		mCtrlRotY->clear();  		mCtrlRotZ->clear(); +		calcp->clearVar(LLCalc::X_ROT); +		calcp->clearVar(LLCalc::Y_ROT); +		calcp->clearVar(LLCalc::Z_ROT);  	}  	mLabelRotation->setEnabled( enable_rotate ); @@ -625,9 +647,9 @@ void LLPanelObject::getState( )  		F32 end_t	= volume_params.getEndT();  		// Hollowness -		F32 hollow = volume_params.getHollow(); -		mSpinHollow->set( 100.f * hollow ); - +		F32 hollow = 100.f * volume_params.getHollow(); +		mSpinHollow->set( hollow ); +		calcp->setVar(LLCalc::HOLLOW, hollow);  		// All hollow objects allow a shape to be selected.  		if (hollow > 0.f)  		{ @@ -679,6 +701,10 @@ void LLPanelObject::getState( )  		mSpinCutEnd		->set( cut_end );  		mCtrlPathBegin	->set( adv_cut_begin );  		mCtrlPathEnd	->set( adv_cut_end ); +		calcp->setVar(LLCalc::CUT_BEGIN, cut_begin); +		calcp->setVar(LLCalc::CUT_END, cut_end); +		calcp->setVar(LLCalc::PATH_BEGIN, adv_cut_begin); +		calcp->setVar(LLCalc::PATH_END, adv_cut_end);  		// Twist  		F32 twist		= volume_params.getTwist(); @@ -697,18 +723,24 @@ void LLPanelObject::getState( )  		mSpinTwist		->set( twist );  		mSpinTwistBegin	->set( twist_begin ); +		calcp->setVar(LLCalc::TWIST_END, twist); +		calcp->setVar(LLCalc::TWIST_BEGIN, twist_begin);  		// Shear  		F32 shear_x = volume_params.getShearX();  		F32 shear_y = volume_params.getShearY();  		mSpinShearX->set( shear_x );  		mSpinShearY->set( shear_y ); +		calcp->setVar(LLCalc::X_SHEAR, shear_x); +		calcp->setVar(LLCalc::Y_SHEAR, shear_y);  		// Taper  		F32 taper_x	= volume_params.getTaperX();  		F32 taper_y = volume_params.getTaperY();  		mSpinTaperX->set( taper_x );  		mSpinTaperY->set( taper_y ); +		calcp->setVar(LLCalc::X_TAPER, taper_x); +		calcp->setVar(LLCalc::Y_TAPER, taper_y);  		// Radius offset.  		F32 radius_offset = volume_params.getRadiusOffset(); @@ -738,10 +770,12 @@ void LLPanelObject::getState( )  			}  		}  		mSpinRadiusOffset->set( radius_offset); +		calcp->setVar(LLCalc::RADIUS_OFFSET, radius_offset);  		// Revolutions  		F32 revolutions = volume_params.getRevolutions();  		mSpinRevolutions->set( revolutions ); +		calcp->setVar(LLCalc::REVOLUTIONS, revolutions);  		// Skew  		F32 skew	= volume_params.getSkew(); @@ -766,6 +800,7 @@ void LLPanelObject::getState( )  			}  		}  		mSpinSkew->set( skew ); +		calcp->setVar(LLCalc::SKEW, skew);  	}  	// Compute control visibility, label names, and twist range. @@ -869,6 +904,8 @@ void LLPanelObject::getState( )  	case MI_RING:  		mSpinScaleX->set( scale_x );  		mSpinScaleY->set( scale_y ); +		calcp->setVar(LLCalc::X_HOLE, scale_x); +		calcp->setVar(LLCalc::Y_HOLE, scale_y);  		mSpinScaleX->setMinValue(OBJECT_MIN_HOLE_SIZE);  		mSpinScaleX->setMaxValue(OBJECT_MAX_HOLE_SIZE_X);  		mSpinScaleY->setMinValue(OBJECT_MIN_HOLE_SIZE); @@ -883,6 +920,14 @@ void LLPanelObject::getState( )  			mSpinScaleX->setMaxValue(1.f);  			mSpinScaleY->setMinValue(-1.f);  			mSpinScaleY->setMaxValue(1.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); + +			// Box/Cyl/Prism have no hole size +			calcp->setVar(LLCalc::X_HOLE, 0.f); +			calcp->setVar(LLCalc::Y_HOLE, 0.f);  		}  		break;  	} | 
