You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
678 lines
19 KiB
678 lines
19 KiB
//========= Copyright (c) 1996-2005, Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//
|
|
//=============================================================================//
|
|
//
|
|
// Half-Life Model Viewer (c) 1999 by Mete Ciragan
|
|
//
|
|
// file: ControlPanel.h
|
|
// last modified: May 29 programs and associated files contained in this
|
|
// distribution were developed by Mete Ciragan. The programs
|
|
// are not in the public domain, but they are freely
|
|
// distributable without licensing fees. These programs are
|
|
// provided without guarantee or warrantee expressed or
|
|
// implied.
|
|
//
|
|
// version: 1.2
|
|
//
|
|
// email: [email protected]
|
|
// web: http://www.swissquake.ch/chumbalum-soft/
|
|
//
|
|
#ifndef INCLUDED_CONTROLPANEL
|
|
#define INCLUDED_CONTROLPANEL
|
|
|
|
|
|
|
|
#ifndef INCLUDED_MXWINDOW
|
|
#include <mxtk/mxWindow.h>
|
|
#endif
|
|
|
|
|
|
#define IDC_TAB 1901
|
|
#define IDC_RENDERMODE 2001
|
|
#define IDC_GROUND 2003
|
|
#define IDC_MOVEMENT 2004
|
|
#define IDC_BACKGROUND 2005
|
|
#define IDC_HITBOXES 2006
|
|
#define IDC_BONES 2007
|
|
#define IDC_ATTACHMENTS 2008
|
|
#define IDC_PHYSICSMODEL 2009
|
|
#define IDC_PHYSICSHIGHLIGHT 2010
|
|
#define IDC_LODCHOICE 2011
|
|
#define IDC_AUTOLOD 2012
|
|
#define IDC_LODSWITCH 2013
|
|
#define IDC_SOFTWARESKIN 2014
|
|
#define IDC_OVERBRIGHT2 2015
|
|
#define IDC_RENDER_FOV 2016
|
|
#define IDC_SEQUENCEBOXES 2017
|
|
#define IDC_RUNIK 2018
|
|
#define IDC_HEADTURN 2019
|
|
#define IDC_NORMALS 2020
|
|
#define IDC_TANGENTFRAME 2021
|
|
#define IDC_NORMALMAP 2022
|
|
#define IDC_SPECULAR 2023
|
|
#define IDC_SHADOW 2024
|
|
#define IDC_ILLUMPOSITION 2025
|
|
#define IDC_OVERLAY_WIREFRAME 2026
|
|
#define IDC_PLAYSOUNDS 2027
|
|
#define IDC_MESSAGES 2028
|
|
#define IDC_SHADERS 2029
|
|
#define IDC_SHOWORIGINAXIS 2030
|
|
#define IDC_ORIGINAXISLENGTH 2031
|
|
#define IDC_DISPLACEMENTMAP 2032
|
|
#define IDC_EYELOOK 2033
|
|
#define IDC_INCLUDEDMODELS 2034
|
|
#define IDC_DRAWHITBOXSET 2035
|
|
#define IDC_DRAWHITBOXNUMBER 2036
|
|
#define IDC_MATERIALVARMATS 2037
|
|
#define IDC_MATERIALVARPARAMS 2038
|
|
#define IDC_ROLL_BODYGROUPS 2039
|
|
#define IDC_EXPLORE_TO_VMT 2040
|
|
#define IDC_BONEWEIGHTINDEX 2041
|
|
|
|
#define IDC_MATVARSLIDERMATRIX 2050
|
|
#define IDC_MATVAREDIT 2051
|
|
#define IDC_MATVARCOLORPICKER 2052
|
|
#define IDC_MATVARSLIDERFLOAT 2053
|
|
#ifdef MATERIAL_SCRIPT_SAVE_FEATURE
|
|
#define IDC_MATVARSAVE 2054
|
|
#endif
|
|
#define IDC_MATVARLOAD 2055
|
|
#define IDC_MATVARCOPYTOCLIPBOARD 2056
|
|
|
|
#define MAX_SEQUENCES 5
|
|
#define IDC_SEQUENCE0 3000
|
|
#define IDC_SEQUENCE1 3001
|
|
#define IDC_SEQUENCE2 3002
|
|
#define IDC_SEQUENCE3 3003
|
|
#define IDC_SEQUENCE4 3004
|
|
|
|
#define IDC_SEQUENCESCALE0 3005
|
|
#define IDC_SEQUENCESCALE1 3006
|
|
#define IDC_SEQUENCESCALE2 3007
|
|
#define IDC_SEQUENCESCALE3 3008
|
|
#define IDC_SEQUENCESCALE4 3009
|
|
|
|
#define IDC_FRAMESELECTION0 3010
|
|
#define IDC_FRAMESELECTION1 3011
|
|
#define IDC_FRAMESELECTION2 3012
|
|
#define IDC_FRAMESELECTION3 3013
|
|
#define IDC_FRAMESELECTION4 3014
|
|
|
|
#define IDC_SEQUENCEFILTER0 3020
|
|
#define IDC_SEQUENCEFILTER1 3021
|
|
#define IDC_SEQUENCEFILTER2 3022
|
|
#define IDC_SEQUENCEFILTER3 3023
|
|
#define IDC_SEQUENCEFILTER4 3024
|
|
|
|
#define NUM_POSEPARAMETERS 8
|
|
#define IDC_POSEPARAMETER_SCALE 3100
|
|
#define IDC_POSEPARAMETER 3120
|
|
#define IDC_POSEPARAMETER_VALUE 3140
|
|
|
|
#define IDC_SPEEDSCALE 3201
|
|
#define IDC_FORCEFRAME 3202
|
|
#define IDC_BLENDSEQUENCECHANGES 3203
|
|
#define IDC_BLENDNOW 3204
|
|
#define IDC_BLENDTIME 3205
|
|
#define IDC_ACTIVITY_MODIFIERS 3206
|
|
#define IDC_ANIMATEWEAPONS 3207
|
|
|
|
#define IDC_BODYPART 4001
|
|
#define IDC_SUBMODEL 4002
|
|
#define IDC_CONTROLLER 4003
|
|
#define IDC_CONTROLLERVALUE 4004
|
|
#define IDC_SKINS 4005
|
|
#define IDC_MATERIALS 4006
|
|
#define IDC_BODYGROUPPRESET 4007
|
|
|
|
#define IDC_BONE_NAMES 4999
|
|
#define IDC_BONE_BONELIST 5000
|
|
#define IDC_BONE_GENERATEQC 5001
|
|
#define IDC_BONE_HIGHLIGHT_BONE 5002
|
|
#define IDC_BONE_HITBOXLIST 5003
|
|
#define IDC_BONE_SURFACEPROP 5004
|
|
#define IDC_BONE_HIGHLIGHT_HITBOX 5005
|
|
#define IDC_BONE_ADD_HITBOX 5006
|
|
#define IDC_BONE_DELETE_HITBOX 5007
|
|
#define IDC_BONE_APPLY_TO_CHILDREN 5008
|
|
#define IDC_BONE_SHOW_DEFAULT_POSE 5009
|
|
#define IDC_BONE_HITBOX_ORIGINX 5010
|
|
#define IDC_BONE_HITBOX_ORIGINY 5011
|
|
#define IDC_BONE_HITBOX_ORIGINZ 5012
|
|
#define IDC_BONE_HITBOX_SIZEX 5013
|
|
#define IDC_BONE_HITBOX_SIZEY 5014
|
|
#define IDC_BONE_HITBOX_SIZEZ 5015
|
|
#define IDC_BONE_HITBOX_GROUP 5016
|
|
#define IDC_BONE_UPDATE_HITBOX 5017
|
|
#define IDC_BONE_USE_AUTOGENERATED_HITBOXES 5018
|
|
#define IDC_BONE_HITBOXSET 5019
|
|
#define IDC_BONE_HITBOXADDSET 5020
|
|
#define IDC_BONE_HITBOXDELETESET 5021
|
|
#define IDC_BONE_HITBOXSETNAME 5022
|
|
#define IDC_BONE_HITBOXSETNAME_EDIT 5023
|
|
#define IDC_BONE_HITBOX_EDITMODE 5024
|
|
|
|
// This range is reserved for the attachment window.
|
|
#define IDC_ATTACHMENT_WINDOW_FIRST 5024
|
|
#define IDC_ATTACHMENT_WINDOW_LAST 5100
|
|
#define IDC_BONE_HITBOX_NAME 5101
|
|
#define IDC_BONE_SAVE_HITBOXES 5102
|
|
#define IDC_BONE_LOAD_HITBOXES 5103
|
|
|
|
#define IDC_FLEX 7001
|
|
#define IDC_FLEXDEFAULTS 7002
|
|
#define IDC_FLEXRANDOM 7003
|
|
#define IDC_FLEXZERO 7004
|
|
#define IDC_FLEXONE 7005
|
|
#define IDC_FLEXSCALE 7101
|
|
|
|
#define NUM_FLEX_SLIDERS 48
|
|
|
|
#define IDC_PHYS_FIRST 7501
|
|
#define IDC_PHYS_BONE 7501
|
|
#define IDC_PHYS_CON_LINK_LIMITS 7502
|
|
#define IDC_PHYS_MATERIAL 7503
|
|
#define IDC_PHYS_CON_MIN 7504
|
|
#define IDC_PHYS_CON_MAX 7505
|
|
#define IDC_PHYS_CON_TEST 7506
|
|
#define IDC_PHYS_P_MASSBIAS 7507
|
|
#define IDC_PHYS_CON_FRICTION 7508
|
|
//#define IDC_PHYS_P_ELASTICITY 7509
|
|
#define IDC_PHYS_P_INERTIA 7510
|
|
#define IDC_PHYS_P_DAMPING 7511
|
|
#define IDC_PHYS_P_ROT_DAMPING 7512
|
|
#define IDC_PHYS_MASS 7513
|
|
#define IDC_PHYS_QCFILE 7514
|
|
#define IDC_PHYS_CON_AXIS_X 7515
|
|
#define IDC_PHYS_CON_AXIS_Y 7516
|
|
#define IDC_PHYS_CON_AXIS_Z 7517
|
|
#define IDC_PHYS_CON_TYPE_FREE 7518
|
|
#define IDC_PHYS_CON_TYPE_FIXED 7519
|
|
#define IDC_PHYS_CON_TYPE_LIMIT 7520
|
|
#define IDC_PHYS_LAST 7599
|
|
|
|
#define IDC_SOFT_FIRST 7600
|
|
#define IDC_SOFT_MASS 7600
|
|
#define IDC_SOFT_BONE 7601
|
|
#define IDC_SOFT_CON_AXIS_X 7603
|
|
#define IDC_SOFT_CON_AXIS_Y 7604
|
|
#define IDC_SOFT_CON_AXIS_Z 7605
|
|
#define IDC_SOFT_SIMULATE 7606
|
|
#define IDC_SOFT_SHOW_POLYGONS 7610
|
|
#define IDC_SOFT_SHOW_EDGES 7611
|
|
#define IDC_SOFT_SHOW_BASES 7612
|
|
#define IDC_SOFT_SHOW_WIND 7613
|
|
#define IDC_SOFT_SHOW_INDICES 7614
|
|
#define IDC_SOFT_ITERATIONS 7615
|
|
#define IDC_SOFT_WIND_YAW 7616
|
|
#define IDC_SOFT_WIND_STRENGTH 7617
|
|
#define IDC_SOFT_SURFACE_STRETCH 7618
|
|
#define IDC_SOFT_THREAD_STRETCH 7619
|
|
#define IDC_SOFT_SIMD 7620
|
|
#define IDC_SOFT_GRAVITY 7621
|
|
#define IDC_SOFT_VELOCITY_DAMPING 7622
|
|
#define IDC_SOFT_SHOW_COLLISION 7623
|
|
#define IDC_SOFT_LAST 7699
|
|
|
|
#define MAX_ANIMS 4
|
|
#define IDC_ANIMX 8020 // through 8023 ( MAX_ANIMS )
|
|
#define IDC_ANIMY 8030 // through 8033 ( MAX_ANIMS )
|
|
|
|
#define IDC_IKRULE_CHAIN 9000
|
|
#define IDC_IKRULE_CHOICE 9001
|
|
#define IDC_IKRULE_TOUCH 9002
|
|
#define IDC_IKRULE_ATTACHMENT 9003
|
|
#define IDC_IKRULE_RANGE_TOGGLE 9004
|
|
#define IDC_IKRULE_RANGE_START 9005
|
|
#define IDC_IKRULE_RANGE_PEAK 9006
|
|
#define IDC_IKRULE_RANGE_TAIL 9007
|
|
#define IDC_IKRULE_RANGE_END 9008
|
|
#define IDC_IKRULE_RANGE_START_NOW 9009
|
|
#define IDC_IKRULE_RANGE_PEAK_NOW 9010
|
|
#define IDC_IKRULE_RANGE_TAIL_NOW 9011
|
|
#define IDC_IKRULE_RANGE_END_NOW 9012
|
|
#define IDC_IKRULE_CONTACT_TOGGLE 9013
|
|
#define IDC_IKRULE_CONTACT_FRAME_NOW 9014
|
|
#define IDC_IKRULE_CONTACT_FRAME 9015
|
|
#define IDC_IKRULE_USING 9016
|
|
#define IDC_IKRULE_QC_STRING 9017
|
|
|
|
#define IDC_SUBMODEL_LOADMERGEDMODEL 9018
|
|
#define IDC_SUBMODEL_UNLOADMERGEDMODEL 9019
|
|
#define IDC_SUBMODEL_UNLOADALLMERGEDMODELS 9020
|
|
#define IDC_SUBMODEL_LOADMERGEDMODEL_STEAM 9021
|
|
#define IDC_SUBMODEL_UPDATE_SELECTION 9022
|
|
#define IDC_SUBMODEL_UPDATE_BONESELECTION 9023
|
|
|
|
#define IDC_COMPILE_UPDATE_QCPATHSELECTION 9024
|
|
#define IDC_COMPILE_REMOVEFROMLIST 9025
|
|
#define IDC_COMPILE_CALLSTUDIOMDL 9026
|
|
#define IDC_COMPILE_OPENLOGFILE 9027
|
|
#define IDC_COMPILE_EXPLORETOQC 9028
|
|
#define IDC_COMPILE_LOADMODELFILE 9029
|
|
#define IDC_COMPILE_SELECTEDTOGGLE 9030
|
|
|
|
#define IDC_EVENT_SOUND_FRAME_NOW 6000
|
|
#define IDC_EVENT_SOUND_FRAME 6001
|
|
#define IDC_EVENT_SOUND_NAME 6002
|
|
#define IDC_EVENT_QC_STRING 6003
|
|
|
|
|
|
class mxTab;
|
|
class mxChoice;
|
|
class mxCheckBox;
|
|
class mxSlider;
|
|
class mxLineEdit;
|
|
class mxLineEdit2;
|
|
class mxLabel;
|
|
class mxListBox;
|
|
class mxButton;
|
|
class mxRadioButton;
|
|
class MatSysWindow;
|
|
class TextureWindow;
|
|
class CBoneControlWindow;
|
|
class CAttachmentsWindow;
|
|
class CStudioHdr;
|
|
|
|
|
|
// Return codes from loadModel.
|
|
enum LoadModelResult_t
|
|
{
|
|
LoadModel_Success = 0,
|
|
LoadModel_LoadFail,
|
|
LoadModel_NoModel,
|
|
LoadModel_PostLoadFail,
|
|
};
|
|
|
|
|
|
class ControlPanel : public mxWindow
|
|
{
|
|
mxWindow *wRender;
|
|
mxTab *tab;
|
|
mxChoice *cRenderMode;
|
|
mxChoice *cHighlightBone;
|
|
mxChoice *cDrawHitBoxSet;
|
|
mxChoice *cDrawHitBoxNumber;
|
|
|
|
mxCheckBox *cbGround;
|
|
mxCheckBox *cbHitBoxes;
|
|
mxCheckBox *cbSequenceBoxes;
|
|
mxCheckBox *cbShadow;
|
|
mxCheckBox *cbMovement;
|
|
mxCheckBox *cbBackground;
|
|
mxCheckBox *cbSoftwareSkin;
|
|
mxCheckBox *cbOverbright2;
|
|
mxCheckBox *cbAttachments;
|
|
mxCheckBox *cbBones;
|
|
mxCheckBox *cbNormals;
|
|
mxCheckBox *cbNormalMap;
|
|
mxCheckBox *cbDisplacementMap;
|
|
// mxCheckBox *cbParallaxMap;
|
|
mxCheckBox *cbTangentFrame;
|
|
mxCheckBox *cbOverlayWireframe;
|
|
mxCheckBox *cbSpecular;
|
|
mxCheckBox *cbRunIK;
|
|
mxCheckBox *cbEnableHead;
|
|
mxCheckBox *cbIllumPosition;
|
|
mxCheckBox *cbPlaySounds;
|
|
mxCheckBox *cbShowOriginAxis;
|
|
mxSlider *leOriginAxisLength;
|
|
mxChoice *cIncludedModels;
|
|
|
|
mxChoice *cbBoneWeightInspectIndex;
|
|
mxLabel *lblBoneWeightInspectValues;
|
|
|
|
mxChoice *cLODChoice;
|
|
mxCheckBox *cbAutoLOD;
|
|
mxLineEdit *leLODSwitch;
|
|
mxLabel *lLODMetric;
|
|
mxChoice *cSequence[MAX_SEQUENCES];
|
|
mxLabel *laFilters;
|
|
mxLineEdit *leSequenceFilter[MAX_SEQUENCES];
|
|
mxSlider *slSequence[MAX_SEQUENCES];
|
|
int m_iLastSequenceCount;
|
|
int *iSelectionToSequence[MAX_SEQUENCES]; // selection to sequence
|
|
int *iSequenceToSelection[MAX_SEQUENCES]; // sequence to selection
|
|
mxLabel *laGroundSpeed;
|
|
mxSlider *slSpeedScale;
|
|
mxLabel *laFPS;
|
|
mxLabel *laBlendAmount;
|
|
|
|
mxChoice *cPoseParameter[NUM_POSEPARAMETERS];
|
|
mxSlider *slPoseParameter[NUM_POSEPARAMETERS];
|
|
mxLineEdit *lePoseParameter[NUM_POSEPARAMETERS];
|
|
mxLineEdit *leFOV;
|
|
|
|
mxSlider *slBlendTime;
|
|
mxLabel *laBlendTime;
|
|
mxChoice *cActivityModifiers;
|
|
mxSlider *slForceFrame;
|
|
mxLabel *lForcedFrame;
|
|
mxRadioButton *rbFrameSelection[MAX_SEQUENCES];
|
|
mxChoice *cBodypart, *cController, *cSubmodel, *cBodyGroupPreset;
|
|
mxSlider *slController;
|
|
mxChoice *cSkin;
|
|
mxChoice *cMaterials;
|
|
mxLabel *lModelInfo1, *lModelInfo2, *lModelInfo3, *lModelInfo4;
|
|
//mxChoice *cTextures;
|
|
//mxCheckBox *cbChrome;
|
|
//mxLabel *lTexSize;
|
|
//mxLineEdit *leWidth, *leHeight;
|
|
|
|
mxLineEdit *leMeshScale, *leBoneScale;
|
|
|
|
MatSysWindow *d_MatSysWindow;
|
|
TextureWindow *d_textureWindow;
|
|
|
|
mxChoice *cFlex[NUM_FLEX_SLIDERS];
|
|
mxSlider *slFlexScale[NUM_FLEX_SLIDERS];
|
|
|
|
mxChoice *cPhysicsBone;
|
|
mxChoice *cSoftbodyCtrl;
|
|
mxCheckBox *cbSoftbodyPolygons;
|
|
mxCheckBox *cbSoftbodyWind;
|
|
mxCheckBox *cbSoftbodyIndices;
|
|
mxCheckBox *cbSoftbodyCollision;
|
|
mxCheckBox *cbSoftbodyEdges;
|
|
mxCheckBox *cbSoftbodyBases;
|
|
mxCheckBox *cbSoftbodyEnableSimd;
|
|
mxCheckBox *cbSoftbodySimulate;
|
|
mxRadioButton *rbConstraintAxis[ 3 ];
|
|
mxRadioButton *rbSoftbodyAxis[ 3 ];
|
|
mxSlider *slPhysicsFriction;
|
|
mxLabel *lPhysicsFriction;
|
|
mxLabel *leSoftbodyIterations;
|
|
mxSlider *slSoftbodyIterations;
|
|
mxSlider *slSoftbodyWindYaw;
|
|
mxSlider *slSoftbodyWindStrength;
|
|
mxSlider *slSoftbodyGravity;
|
|
mxSlider *slSoftbodyVelocityDamping;
|
|
mxSlider *slSoftbodySurfaceStretch;
|
|
mxSlider *slSoftbodyThreadStretch;
|
|
|
|
mxSlider *slPhysicsConMin;
|
|
mxLabel *lPhysicsConMin;
|
|
mxCheckBox *cbLinked; // links min/max sliders
|
|
|
|
mxSlider *slPhysicsConMax;
|
|
mxLabel *lPhysicsConMax;
|
|
mxSlider *slPhysicsConTest;
|
|
mxLineEdit *leMass;
|
|
|
|
mxSlider *slPhysicsParamMassBias;
|
|
mxLabel *lPhysicsParamMassBias;
|
|
mxSlider *slPhysicsParamFriction;
|
|
mxLabel *lPhysicsParamFriction;
|
|
mxSlider *slPhysicsParamElasticity;
|
|
mxLabel *lPhysicsParamElasticity;
|
|
mxSlider *slPhysicsParamInertia;
|
|
mxLabel *lPhysicsParamInertia;
|
|
mxSlider *slPhysicsParamDamping;
|
|
mxLabel *lPhysicsParamDamping;
|
|
mxSlider *slPhysicsParamRotDamping;
|
|
mxLabel *lPhysicsParamRotDamping;
|
|
mxLabel *lPhysicsMaterial;
|
|
|
|
mxChoice *cIKChain;
|
|
mxChoice *cIKType;
|
|
mxLabel *lIKTouch;
|
|
mxChoice *cIKTouch;
|
|
mxLabel *lIKAttachment;
|
|
mxLineEdit *leIKAttachment;
|
|
mxCheckBox *cbIKRangeToggle;
|
|
mxLineEdit2 *leIKRangeStart;
|
|
mxLineEdit2 *leIKRangePeak;
|
|
mxLineEdit2 *leIKRangeTail;
|
|
mxLineEdit2 *leIKRangeEnd;
|
|
mxCheckBox *cbIKContactToggle;
|
|
mxLineEdit2 *leIKContactFrame;
|
|
mxChoice *cIKUsing;
|
|
mxLineEdit2 *leIKQCString;
|
|
|
|
mxLineEdit2 *leEventSoundFrame;
|
|
mxListBox *lbEventSoundName;
|
|
mxLineEdit2 *leEventQCString;
|
|
mxListBox *lbEventHistory;
|
|
mxLabel *lEventSequence;
|
|
float m_lastEventCycle;
|
|
|
|
CBoneControlWindow* m_pBoneWindow;
|
|
CAttachmentsWindow* m_pAttachmentsWindow;
|
|
mxListBox *cMessageList;
|
|
mxListBox *cShaderUsed;
|
|
mxButton *m_bRandomizeWeaponModuleSlots;
|
|
|
|
mxButton *m_bExploreToMaterial;
|
|
|
|
int m_iSavedSequences[MAX_SEQUENCES];
|
|
float m_flSavedWeights[MAX_SEQUENCES];
|
|
|
|
mxListBox *cMaterialList;
|
|
mxListBox *cMaterialParamList;
|
|
mxLineEdit2 *leMaterialParamText;
|
|
mxButton *bMaterialParamColor;
|
|
mxCheckBox *cbMaterialParamMultiEdit;
|
|
|
|
#ifdef MATERIAL_SCRIPT_SAVE_FEATURE
|
|
mxButton *bMaterialParamSave;
|
|
mxLineEdit2 *leMaterialParamSavePath;
|
|
mxCheckBox *cbMaterialParamSaveRun;
|
|
mxLineEdit2 *leMaterialParamSaveRun;
|
|
#endif
|
|
mxButton *bMaterialParamLoad;
|
|
mxButton *bMaterialParamCopyToClipboard;
|
|
|
|
mxSlider *slMaterialParamMatrixSliderScaleX;
|
|
mxSlider *slMaterialParamMatrixSliderScaleY;
|
|
mxSlider *slMaterialParamMatrixSliderRotation;
|
|
mxSlider *slMaterialParamMatrixSliderTranslateX;
|
|
mxSlider *slMaterialParamMatrixSliderTranslateY;
|
|
mxSlider *slMaterialParamFloat;
|
|
|
|
mxLabel *lblMatrixScaleX;
|
|
mxLabel *lblMatrixScaleY;
|
|
mxLabel *lblMatrixRotation;
|
|
mxLabel *lblMatrixTranslateX;
|
|
mxLabel *lblMatrixTranslateY;
|
|
|
|
mxListBox *cSubmodelList;
|
|
|
|
mxButton *bSubmodelAdd;
|
|
mxButton *bSubmodelAddSteam;
|
|
mxButton *bSubmodelRemoveAll;
|
|
mxButton *bSubmodelRemoveSelected;
|
|
|
|
mxChoice *cSubmodelAttachTo;
|
|
mxChoice *cSubmodelLocalAttachOrigin;
|
|
|
|
mxListBox *cCompileRecentQCpaths;
|
|
mxLabel *lblFullQCPath;
|
|
mxButton *bCompileQCRemoveFromList;
|
|
mxButton *bCompileQCCompile;
|
|
mxButton *bCompileQCLoadModel;
|
|
mxButton *bCompileQCShowCompileOutput;
|
|
mxButton *bCompileQCBrowseToQC;
|
|
mxButton *bCompileQCWhenSelected;
|
|
bool bCompileSelectedToggle;
|
|
mxLabel *lblCompileWarningOrError;
|
|
mxListBox *cCompileQCOutput;
|
|
|
|
int nCompileLastUpdateTick;
|
|
|
|
public:
|
|
// CREATORS
|
|
ControlPanel( mxWindow *parent );
|
|
virtual ~ControlPanel ();
|
|
|
|
virtual void OnDelete();
|
|
|
|
// MANIPULATORS
|
|
int handleEvent( mxEvent *event );
|
|
|
|
int handlePhysicsEvent( mxEvent *event );
|
|
int handleSoftbodyEvent( mxEvent *event );
|
|
void UpdateConstraintSliders( int clamp );
|
|
void setupPhysics( void );
|
|
void setupPhysicsBone( int boneIndex );
|
|
void setupPhysicsAxis( int boneIndex, int axis );
|
|
int getPhysicsAxis( void );
|
|
void setPhysicsAxis( int axisIndex );
|
|
int getSoftbodyAxis( void );
|
|
void setSoftbodyAxis( int axisIndex );
|
|
void writePhysicsData( void );
|
|
void handlePhysicsKey( mxEvent *event );
|
|
// void readPhysicsMaterials( mxChoice *pList );
|
|
|
|
void dumpModelInfo ();
|
|
LoadModelResult_t loadModel( const char *filename );
|
|
LoadModelResult_t loadModel( const char *filename, int slot );
|
|
void OnLoadModel( void );
|
|
|
|
void resetControlPanel( void );
|
|
void setRenderMode( int mode );
|
|
void setShowGround( bool b );
|
|
void setShowMovement( bool b );
|
|
void setShowBackground( bool b );
|
|
void setShowNormals( bool b );
|
|
void setShowTangentFrame( bool b );
|
|
void setOverlayWireframe( bool b );
|
|
void setDisplacementMapping( bool b );
|
|
void setShowShadow( bool b );
|
|
void setShowHitBoxes( bool b );
|
|
void setShowBones( bool b );
|
|
void setShowAttachments( bool b );
|
|
void setHighlightBone( int index );
|
|
void setLOD( int index, bool setLODchoice, bool force );
|
|
void setAutoLOD( bool b );
|
|
void setSoftwareSkin( bool b );
|
|
void setOverbright( bool b );
|
|
void setLODMetric( float metric );
|
|
void setPolycount( int polycount );
|
|
void setTransparent( bool isTransparent );
|
|
void updatePoseParameters( void );
|
|
void setFOV( float fov );
|
|
void setPlaySounds( bool b );
|
|
void setShowOriginAxis( bool b );
|
|
void setOriginAxisLength( float originAxisLength );
|
|
|
|
void updateSequenceSizes( int tabWidth );
|
|
void initSequenceChoices( int iOnlyInitSlot = -1 );
|
|
void setSequence( int nSequence );
|
|
void showActivityModifiers( int sequence );
|
|
void GetSequenceFilter( int sequenceSlot, char *pszFilterBuf, int iBufSize );
|
|
void updateGroundSpeed( void );
|
|
void setOverlaySequence( int num, int nSequence, float weight );
|
|
void updateTransitionAmount();
|
|
void startBlending( void );
|
|
void setSpeedScale ( float scale );
|
|
void updateSpeedScale( void );
|
|
void setBlend( int index, float value );
|
|
|
|
int getFrameSelection( void );
|
|
void setFrame( float frame );
|
|
void updateFrameSelection( void );
|
|
void updateFrameSlider( void );
|
|
void UpdateEventHistory( void );
|
|
|
|
void initBodypartChoices();
|
|
void setBodypart( int index );
|
|
void setSubmodel( int index );
|
|
|
|
void initBoneControllers();
|
|
void setBoneController( int index );
|
|
void setBoneControllerValue (int index, float value);
|
|
|
|
void initSkinChoices();
|
|
void initMaterialChoices();
|
|
|
|
void setModelInfo();
|
|
|
|
void initPhysicsBones();
|
|
|
|
void initIncludedModels();
|
|
|
|
void initLODs();
|
|
|
|
void centerView();
|
|
void UpdateMaterialList ();
|
|
void centerVerts();
|
|
void viewmodelView();
|
|
void cs_gunsidemodelView();
|
|
void dotaView();
|
|
|
|
void fullscreen();
|
|
|
|
void setMatSysWindow( MatSysWindow *window ) { d_MatSysWindow = window; }
|
|
|
|
void ConvertFlexData();
|
|
void MapExtraFlexes( int nSlot );
|
|
void initFlexes();
|
|
|
|
int GetCurrentHitboxSet( void );
|
|
|
|
void BuildIKRuleQCString();
|
|
void UpdateIKRuleWindow();
|
|
|
|
void BuildEventQCString();
|
|
|
|
void CreateSortedSequenceList( CStudioHdr* hdr, int *pSequence );
|
|
void SetFrameSlider( float flFrame );
|
|
|
|
int GetSequenceForSelection( int sequenceSlot, int selection );
|
|
int SetSequenceForSelection( int sequenceSlot, int selection, int sequence );
|
|
|
|
int GetSelectionForSequence( int sequenceSlot, int sequence );
|
|
int SetSelectionForSequence( int sequenceSlot, int sequence, int selection );
|
|
|
|
void SaveSelectedSequences( void );
|
|
void RestoreSelectedSequences( void );
|
|
|
|
void UpdateMaterialVars( void );
|
|
|
|
void setCameraOrigin( float flX, float flY, float flZ );
|
|
void setCameraAngles( float flX, float flY, float flZ );
|
|
void setLightAngles( float flX, float flY, float flZ );
|
|
|
|
void setMaterialVar( const char *p_szMatParameterName, const char *p_szMatParameterValue );
|
|
|
|
void UpdateSubmodelWindow( void );
|
|
void UpdateSubmodelSelection( void );
|
|
|
|
void redrawMatSysWin( void );
|
|
|
|
public:
|
|
// Sets up the main tabs
|
|
void SetupRenderWindow( mxTab* pTab );
|
|
void SetupSequenceWindow( mxTab* pTab );
|
|
void SetupBoneControlWindow( mxTab* pTab );
|
|
void SetupBodyWindow( mxTab* pTab );
|
|
void SetupFlexWindow( mxTab* pTab );
|
|
void SetupPhysicsWindow( mxTab* pTab );
|
|
void SetupSoftbodyWindow( mxTab* pTab );
|
|
void SetupAttachmentsWindow( mxTab *pTab );
|
|
void SetupIKRuleWindow( mxTab *pTab );
|
|
void SetupEventWindow( mxTab *pTab );
|
|
void SetupMatVarWindow( mxTab *pTab );
|
|
void SetupSubmodelWindow( mxTab *pTab );
|
|
void SetupCompileWindow( mxTab *pTab );
|
|
bool m_bVMTInfoLoaded;
|
|
|
|
void AddQCRecordPath( const char* szPath, bool bCompileWhenLoaded = false );
|
|
void UpdateQCPathPanel( bool bUpdateList = true, int nForceSelection = -1 );
|
|
void CompileTimerUpdate( void );
|
|
void CompileSelectedIndex( void );
|
|
|
|
void UpdateBoneWeightInspect( void );
|
|
|
|
};
|
|
|
|
|
|
extern ControlPanel *g_ControlPanel;
|
|
|
|
|
|
|
|
#endif // INCLUDED_CONTROLPANEL
|