Files
SingularityViewer/indra/newview/llpanelobject.h
Beeks d49c92b6fe I got bored and put in the math functions from Imprudence.
We need something to show the list - Preferably a bit better than the popup that they use, I'm thinking maybe an expanding sidebar on the build menu?

Oh, minor changes - Texture repeats go up to 1000 now because it has numbers, and I tweaked the primitive params section so it doesn't fall off the window.

Signed-off-by: Beeks <HgDelirium@gmail.com>
2010-09-16 22:08:33 -04:00

236 lines
6.8 KiB
C++

/**
* @file llpanelobject.h
* @brief Object editing (position, scale, etc.) in the tools floater
*
* $LicenseInfo:firstyear=2004&license=viewergpl$
*
* Copyright (c) 2004-2009, Linden Research, Inc.
*
* Second Life Viewer Source Code
* The source code in this file ("Source Code") is provided by Linden Lab
* to you under the terms of the GNU General Public License, version 2.0
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
* online at
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
* and agree to abide by those obligations.
*
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
* COMPLETENESS OR PERFORMANCE.
* $/LicenseInfo$
*/
#ifndef LL_LLPANELOBJECT_H
#define LL_LLPANELOBJECT_H
#include "v3math.h"
#include "llpanel.h"
#include "llmemory.h"
#include "llvolume.h"
class LLSpinCtrl;
class LLCheckBoxCtrl;
class LLTextBox;
class LLUICtrl;
class LLButton;
class LLViewerObject;
class LLComboBox;
class LLPanelInventory;
class LLColorSwatchCtrl;
class LLTextureCtrl;
class LLInventoryItem;
class LLUUID;
class LLPanelObject : public LLPanel
{
public:
LLPanelObject(const std::string& name);
virtual ~LLPanelObject();
virtual BOOL postBuild();
virtual void draw();
virtual void clearCtrls();
void refresh();
static BOOL precommitValidate(LLUICtrl* ctrl,void* userdata);
static void onCommitLock(LLUICtrl *ctrl, void *data);
static void onCommitPosition( LLUICtrl* ctrl, void* userdata);
static void onCommitScale( LLUICtrl* ctrl, void* userdata);
static void onCommitRotation( LLUICtrl* ctrl, void* userdata);
static void onCommitPhysics( LLUICtrl* ctrl, void* userdata);
static void onCommitTemporary( LLUICtrl* ctrl, void* userdata);
static void onCommitPhantom( LLUICtrl* ctrl, void* userdata);
static void onCommitCastShadows( LLUICtrl* ctrl, void* userdata);
static void onLinkObj( void* user_data);
static void onUnlinkObj( void* user_data);
static void onCopyPos( void* user_data);
static void onPastePos( void* user_data);
static void onPastePosClip( void* user_data);
static void onCopySize( void* user_data);
static void onPasteSize( void* user_data);
static void onPasteSizeClip( void* user_data);
static void onCopyRot( void* user_data);
static void onPasteRot( void* user_data);
static void onPasteRotClip( void* user_data);
static void onCopyParams( void* user_data);
static void onPasteParams( void* user_data);
static void onCommitParametric( LLUICtrl* ctrl, void* userdata);
static void onCommitMaterial( LLUICtrl* ctrl, void* userdata);
static void onCommitSculpt( LLUICtrl* ctrl, void* userdata);
static void onCancelSculpt( LLUICtrl* ctrl, void* userdata);
static void onSelectSculpt( LLUICtrl* ctrl, void* userdata);
static BOOL onDropSculpt( LLUICtrl* ctrl, LLInventoryItem* item, void* ud);
static void onCommitSculptType( LLUICtrl *ctrl, void* userdata);
static void onClickBuildConstants(void *);
static const LLUUID& findItemID(const LLUUID& asset_id);
protected:
void getState();
void sendRotation(BOOL btn_down);
void sendScale(BOOL btn_down);
void sendPosition(BOOL btn_down);
void sendIsPhysical();
void sendIsTemporary();
void sendIsPhantom();
void sendCastShadows();
void sendSculpt();
void getVolumeParams(LLVolumeParams& volume_params);
protected:
static LLVector3 mClipboardPos;
static LLVector3 mClipboardSize;
static LLVector3 mClipboardRot;
static LLVolumeParams mClipboardVolumeParams;
static BOOL hasParamClipboard;
S32 mComboMaterialItemCount;
LLTextBox* mLabelMaterial;
LLComboBox* mComboMaterial;
// Per-object options
LLTextBox* mLabelBaseType;
LLComboBox* mComboBaseType;
LLTextBox* mLabelCut;
LLSpinCtrl* mSpinCutBegin;
LLSpinCtrl* mSpinCutEnd;
LLTextBox* mLabelHollow;
LLSpinCtrl* mSpinHollow;
LLTextBox* mLabelHoleType;
LLComboBox* mComboHoleType;
LLTextBox* mLabelTwist;
LLSpinCtrl* mSpinTwist;
LLSpinCtrl* mSpinTwistBegin;
LLSpinCtrl* mSpinScaleX;
LLSpinCtrl* mSpinScaleY;
LLTextBox* mLabelSkew;
LLSpinCtrl* mSpinSkew;
LLTextBox* mLabelShear;
LLSpinCtrl* mSpinShearX;
LLSpinCtrl* mSpinShearY;
// Advanced Path
LLSpinCtrl* mCtrlPathBegin;
LLSpinCtrl* mCtrlPathEnd;
LLTextBox* mLabelTaper;
LLSpinCtrl* mSpinTaperX;
LLSpinCtrl* mSpinTaperY;
LLTextBox* mLabelRadiusOffset;
LLSpinCtrl* mSpinRadiusOffset;
LLTextBox* mLabelRevolutions;
LLSpinCtrl* mSpinRevolutions;
LLTextBox* mLabelPosition;
LLSpinCtrl* mCtrlPosX;
LLSpinCtrl* mCtrlPosY;
LLSpinCtrl* mCtrlPosZ;
LLTextBox* mLabelSize;
LLSpinCtrl* mCtrlScaleX;
LLSpinCtrl* mCtrlScaleY;
LLSpinCtrl* mCtrlScaleZ;
LLTextBox* mLabelRotation;
LLSpinCtrl* mCtrlRotX;
LLSpinCtrl* mCtrlRotY;
LLSpinCtrl* mCtrlRotZ;
LLButton *mBtnLinkObj;
LLButton *mBtnUnlinkObj;
LLButton *mBtnCopyPos;
LLButton *mBtnPastePos;
LLButton *mBtnPastePosClip;
LLButton *mBtnCopySize;
LLButton *mBtnPasteSize;
LLButton *mBtnPasteSizeClip;
LLButton *mBtnCopyRot;
LLButton *mBtnPasteRot;
LLButton *mBtnPasteRotClip;
LLButton *mBtnCopyParams;
LLButton *mBtnPasteParams;
LLCheckBoxCtrl *mCheckLock;
LLCheckBoxCtrl *mCheckPhysics;
LLCheckBoxCtrl *mCheckTemporary;
LLCheckBoxCtrl *mCheckPhantom;
LLCheckBoxCtrl *mCheckCastShadows;
LLTextureCtrl *mCtrlSculptTexture;
LLTextBox *mLabelSculptType;
LLComboBox *mCtrlSculptType;
LLCheckBoxCtrl *mCtrlSculptMirror;
LLCheckBoxCtrl *mCtrlSculptInvert;
LLVector3 mCurEulerDegrees; // to avoid sending rotation when not changed
BOOL mIsPhysical; // to avoid sending "physical" when not changed
BOOL mIsTemporary; // to avoid sending "temporary" when not changed
BOOL mIsPhantom; // to avoid sending "phantom" when not changed
BOOL mCastShadows; // to avoid sending "cast shadows" when not changed
S32 mSelectedType; // So we know what selected type we last were
LLUUID mSculptTextureRevert; // so we can revert the sculpt texture on cancel
U8 mSculptTypeRevert; // so we can revert the sculpt type on cancel
LLPointer<LLViewerObject> mObject;
LLPointer<LLViewerObject> mRootObject;
};
#endif