VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
diGuyConfigurationWidget.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2021 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #if !defined(Q_MOC_RUN)
15 #include "ui_diGuyConfigurationWidgetUi.h"
16 #endif
17 
18 #include <diguyCharacterTypeMapFieldValues.h>
19 
20 #include <QtWidgets/QWidget>
21 #include <QtCore/QString>
22 #include <QtCore/QHash>
23 
24 #include <vector>
25 
26 
28 class QListWidget;
33 class DtDiGuyInformation;
34 
35 
49 { Q_OBJECT;
50 public:
51 
53  DtDiGuyConfigurationWidget( makVrv::DtDe& de, QWidget* parent = 0, const Qt::WindowFlags& flags = 0 );
54 
56  virtual ~DtDiGuyConfigurationWidget();
57 
59  virtual bool init();
61  virtual void setUpCharacterTypes();
64  virtual void setAppearancesFromCharacter( const QString& characterType );
67  virtual void setUpRandomAppearancesMap( DtRwNLengthStringVector* randomList, bool checkToSelect = true );
70  virtual void setHandItemsFromCharacter( const QString& characterType );
72  virtual void setUpRandomHandItemsMap( DtRwNLengthStringVector* randomList, bool checkToSelect = true );
75  virtual void setHeadsFromCharacterTypeAndAppearance( const QString& characterType, const QString& appearance );
77  virtual void setUpRandomHeadsMap( DtRwNLengthStringVector* randomList, bool checkToSelect = true );
79  virtual void setUpAnimationsFromCharacter( const QString& character );
80 
83  virtual void setUseRandomAppearances( bool random );
84  virtual bool useRandomAppearances();
85 
86  virtual void setUseRandomHandItems( bool random );
87  virtual bool useRandomHandItems();
88 
89  virtual void setUseRandomHeads( bool random );
90  virtual bool useRandomHeads();
91 
93  virtual void setCurrentCharacter( const QString& characterType );
94  virtual DtString getCurrentCharacter();
95 
100  virtual void setCurrentAppearance( const QString& appearance, bool forceUpdate = false, bool emitChange = true );
102  virtual QString getCurrentAppearance();
104  virtual DtString randomAppearance() const;
105 
109  virtual void setCurrentHandItem( const QString& handItem, bool forceUpdate = false, bool emitChange = true );
111  virtual QString getCurrentHandItem();
113  virtual DtString randomHandItem() const;
114 
118  virtual void setCurrentHead( const QString& head, bool forceUpdate = false, bool emitChange = true );
120  virtual QString getCurrentHead();
122  virtual DtString randomHead() const;
123 
124  virtual void setCurrentAnimation( const QString& action );
125  virtual DtString getCurrentAnimation();
126  virtual AlternateNamesList& getTaskableAnimationList();
127 
130  virtual bool randomAppearancesChanged();
131  virtual void setRandomAppearancesChanged( bool b );
132 
135  virtual void getRandomAppearances( DtRwNLengthStringVector* randomList, bool getAll = false );
136 
139  virtual bool randomHandItemsChanged();
140  virtual void setRandomHandItemsChanged( bool b );
141 
143  virtual void getRandomHandItems( DtRwNLengthStringVector* randomList, bool getAll = false );
144 
147  virtual bool randomHeadsChanged();
148  virtual void setRandomHeadsChanged( bool b );
149 
151  virtual void getRandomHeads( DtRwNLengthStringVector* randomList, bool getAll = false );
152 
154  virtual bool blockSignals( bool block );
155  virtual void preserveCurrentRandomValues( bool preserve );
156 
157 protected:
158 
160 
162  virtual int findIndexFromString( const QString& name, const AlternateNamesList* list );
165  virtual DtString getCurrentOrRandomValue( QComboBox* box, QHash<QString, bool>* map, bool* retWasRandom = NULL );
168  virtual DtString getAllowedRandomValue( const QHash<QString,bool>* map ) const;
169  virtual bool isAllowedRandomValue( const QString& value, const QHash<QString,bool>* map );
172  virtual void mergeInOldMap( QHash<QString,bool>* currentMap, const QHash<QString,bool>* oldMap );
173 
174 signals:
175 
176  void characterChanged();
177  void appearanceChanged();
178  void handItemChanged();
179  void headChanged();
180  void defaultAnimationChanged();
181  void randomAppearanceListChanged();
182  void randomHandItemListChanged();
183  void randomHeadListChanged();
184  void appearancesReset();
185  void handItemsReset();
186  void headsReset();
187  void animationsReset();
188  void generateAll();
189  void changeDiGuyData( const DtDiGuyInformation& );
190 
191 public slots:
192 
194  virtual void setDiGuyCharString( int );
195  virtual void setDiGuyCharToolTip( int );
196 
199  virtual void newCharacterTypeSelected( int typeIndex );
201  virtual void newAppearanceSelected( const QString& appearance );
204  virtual void updateRandomAppearancesMap( QListWidget* list );
206  virtual void newHandItemSelected( const QString& );
207  virtual void updateRandomHandItemsMap( QListWidget* );
209  virtual void newHeadSelected( const QString& );
210  virtual void updateRandomHeadsMap( QListWidget* );
211  virtual void setDiGuyAnimationString( int );
212  virtual void setDiGuyAnimationToolTip( int );
213  virtual void updateDefaultAnimation( int );
214 
216  virtual void createRandomAppearancesDialog();
218  virtual void closedRandomAppearancesDialog();
219 
220  virtual void createRandomHandItemsDialog();
222  virtual void closedRandomHandItemsDialog();
223 
224  virtual void createRandomHeadsDialog();
225  virtual void closedRandomHeadsDialog();
226 
228  virtual void createAppearanceFilterDialog();
229 
231  virtual void filterBoxPopulated( const diguyCharacterTypeMapFieldValues& fieldValues );
232 
234  virtual void filterItemSelected( diguyCharacterTypeMapField field, QString& value );
235 
237  virtual void reRandomizeCharacter();
238 
240  virtual DtString firstUsableFrom( const QHash<QString,bool>& ) const;
241 
242  virtual void resetCharacterTypes();
243 
244 private:
245 
248 
250  DtDiGuyConfigurationWidget& operator = ( const DtDiGuyConfigurationWidget& orig );
251 
252 public:
253 
255  Ui::DIGuyConfigurationWidgetUi myUiImpl;
256 
257 protected:
258 
259  static QString sQStringRandom;
260 
266 
271 
274 
276  QHash<QString,bool> myRandomAppearancesMap;
277 
280  QHash<QString,bool> myRandomHandItemsMap;
281 
284  QHash<QString,bool> myRandomHeadsMap;
288  //Just the taskable animations
295 
297  diguyCharacterTypeMapFieldValues myTypeMapFieldValues;
298 
301 
304 
307 
309 
311 
312 };
bool myPreserveCurrentRandomValues
Definition: diGuyConfigurationWidget.h:294
Definition: diGuyRandomHeadsDialog.h:20
Ui::DIGuyConfigurationWidgetUi myUiImpl
The code generated from the underlying .ui file.
Definition: diGuyConfigurationWidget.h:255
DtDiGuyDescriptionComboBox * myCharactersBox
Replaces the &quot;Character Type&quot; Qt combo box (found in .ui file)
Definition: diGuyConfigurationWidget.h:293
bool myRandomHandItemsChanged
Definition: diGuyConfigurationWidget.h:279
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
QString myLastHeadSelected
Definition: diGuyConfigurationWidget.h:270
DtString myCurrentHandItem
Definition: diGuyConfigurationWidget.h:264
DtDiGuyRandomHandItemsDialog * myRandomHandItemsDialog
Holds pointer to dialog while it exists, otherwise NULL.
Definition: diGuyConfigurationWidget.h:303
bool myUseRandomHandItems
Definition: diGuyConfigurationWidget.h:278
QHash< QString, bool > myRandomAppearancesMap
The keys are appearances. The value indicates whether the appearance is checked or not...
Definition: diGuyConfigurationWidget.h:276
std::vector< AlternateNamesPair > AlternateNamesList
Definition: diGuyCharacterData.h:29
Definition: diGuyRandomHandItemsDialog.h:20
bool myUseRandomAppearances
Definition: diGuyConfigurationWidget.h:272
const AlternateNamesList * myCharacterTypesList
Used to match DI-Guy names to user-friendly names.
Definition: diGuyConfigurationWidget.h:286
Contains the DtDiGuyCharacterData class declaration.
QString myLastAppearanceSelected
These can be &quot;random&quot;. They indicate the last selections made in the dropdowns.
Definition: diGuyConfigurationWidget.h:268
makVrv::DtDe & myDe
Definition: diGuyConfigurationWidget.h:308
DtDiGuyRandomAppearancesDialog * myRandomAppearancesDialog
Holds pointer to dialog while it exists, otherwise NULL.
Definition: diGuyConfigurationWidget.h:300
bool myRandomAppearancesChanged
Definition: diGuyConfigurationWidget.h:273
bool myUseRandomHeads
Definition: diGuyConfigurationWidget.h:282
QHash< QString, bool > myRandomHandItemsMap
Definition: diGuyConfigurationWidget.h:280
DtString myCurrentAppearance
Definition: diGuyConfigurationWidget.h:263
DtString myCurrentHead
Definition: diGuyConfigurationWidget.h:265
AlternateNamesList myTaskableAnimationsList
Definition: diGuyConfigurationWidget.h:289
bool myIsRandom
Definition: diGuyConfigurationWidget.h:310
DtString myCurrentCharacterType
These will always have specific values or be empty (&quot;&quot;). They won&#39;t be &quot;random&quot;.
Definition: diGuyConfigurationWidget.h:262
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Definition: diGuyRandomAppearancesDialog.h:32
QHash< QString, bool > myRandomHeadsMap
Definition: diGuyConfigurationWidget.h:284
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
Contains information about the current DI-Guy character instance and some of its available options...
Definition: diGuyInformation.h:22
QString myLastHandItemSelected
Definition: diGuyConfigurationWidget.h:269
This class manages the dialog box that appears when the user modifies a DI-Guy entity in the Simulati...
Definition: diGuyConfigurationWidget.h:48
const AlternateNamesList * myAnimationsList
Definition: diGuyConfigurationWidget.h:287
DtDiGuyRandomHeadsDialog * myRandomHeadDialog
Holds pointer to dialog while it exists, otherwise NULL.
Definition: diGuyConfigurationWidget.h:306
diguyCharacterTypeMapFieldValues myTypeMapFieldValues
Current type map field filters specified in each combo.
Definition: diGuyConfigurationWidget.h:297
Definition: diGuyDescriptionComboBox.h:16
#define DT_DLL_simulationObjectEditorimpl
This file is used to determine how to build.
Definition: simulationObjectEditorImplDefines.h:33
static QString sQStringRandom
Definition: diGuyConfigurationWidget.h:259
DtDiGuyDescriptionComboBox * myAnimationsBox
Replaces the &quot;Default Animation&quot; Qt combo box (found in .ui file)
Definition: diGuyConfigurationWidget.h:291
bool myRandomHeadsChanged
Definition: diGuyConfigurationWidget.h:283

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)