Mudbox/brush.h Source File

brush.h
Go to the documentation of this file.
1 
2 //**************************************************************************/
3 // Copyright (c) 2008 Autodesk, Inc.
4 // All rights reserved.
5 //
6 // Use of this software is subject to the terms of the Autodesk license
7 // agreement provided at the time of installation or download, or which
8 // otherwise accompanies this software in either electronic or hard copy form.
9 //
10 //**************************************************************************/
11 // DESCRIPTION:
12 // CREATED: August 2009
13 //**************************************************************************/
14 
15 #ifndef __MUDBOXSDK_BRUSH_H__
16 #define __MUDBOXSDK_BRUSH_H__
17 
18 #include <QtCore/QHash>
19 #include <QtCore/QSharedPointer>
20 #include <QtCore/QCoreApplication>
21 #include <Mudbox/mudboxVersions.h>
22 
23 namespace mudbox {
24 
27 {
28 public:
29  typedef enum
30  {
34  SelectTools
35  } PredefinedCategory;
36 
37 public:
40  BrushConfiguration( const ClassDesc *pClass, unsigned int iID, const QString& sStringID, const QString& sDisplayName, const QString& sCategory, const QString& sCategoryTr, const QString& sToolTip, int version = INTRODUCED_IN_MUDBOX_2013_OR_EARLIER );
41  BrushConfiguration( const ClassDesc *pClass, unsigned int iID, const QString& sStringID, const QString& sDisplayName, PredefinedCategory nCategory, const QString& sToolTip, int version = INTRODUCED_IN_MUDBOX_2013_OR_EARLIER );
44  unsigned int ID( void ) const;
47  virtual QString Name( void ) const;
49  virtual QString StringID( void ) const;
51  virtual QString DisplayName( void ) const;
53  virtual void SetDisplayName( const QString & sDisplayName );
55  virtual QString ToolTip( void ) const;
57  virtual int Version( void ) const;
59  virtual const ClassDesc *OperationClass( void ) const;
61  virtual QString Category() const;
63  virtual QString DisplayCategory() const;
65  virtual void Serialize( Stream& s );
67  virtual QString Icon( void );
68 
69 private:
70  const ClassDesc *m_pClass;
71  unsigned int m_iID;
72  QString m_sStringID, m_sToolTip, m_sCategory;
73  QString m_sDisplayName, m_sCategoryTr;
74  Action *m_pAction;
75  int m_iVersion;
76 };
77 
80 {
97 };
98 
101 {
103  MirrorConfiguration( void );
104  MirrorConfiguration( const MirrorConfiguration &v );
106  enum MirrorMode MirrorMode( void ) const;
108  void SetMirrorMode( enum MirrorMode mode );
110  const Store<mudbox::Vector> &MirrorPlaneNormals( void ) const { return m_aMirrorPlaneNormals; };
112  const Store<mudbox::Vector> &MirrorPlanePositions( void ) const { return m_aMirrorPlanePositions; };
114  bool IsMirrorLocal( void ) const { return m_bMirrorLocal; };
116  int MirrorPlanes( void ) const { return m_iMirrorPlanes; };
120  Matrix TransformationMatrix(
121  const SurfacePoint *pSourceLocation,
122  bool bNormalizeLocalFrame = false
125  ) const;
128  Vector Transform(
129  const Vector &cSource,
130  float fW,
131  const SurfacePoint *pSourceLocation
132  ) const;
135 
136  inline bool operator ==( const MirrorConfiguration & ) const throw() { return false; };
137  inline bool operator !=( const MirrorConfiguration &v ) const throw() { return !operator ==( v ); };
138 
140  virtual void Serialize( Stream& s );
141 
142 private:
144  Matrix AxisTransformationMatrix(
145  const SurfacePoint *pSourceLocation
146  ) const;
152  Matrix TangentTransformationMatrix(
153  const SurfacePoint *pSourceLocation,
154  bool bNormalizeLocalFrame = false
157  ) const;
158 
159  bool m_bMirrorLocal;
160  int m_iMirrorPlanes;
161  Store<mudbox::Vector> m_aMirrorPlaneNormals;
162  Store<mudbox::Vector> m_aMirrorPlanePositions;
163 
164  friend class BrushOperation;
165 };
166 
168 
169 MBDLL_DECL AttributeWidget *CreateNewMirrorConfigurationWidget( QWidget *pParent, int iWidth, amirrorcfg *pAttribute );
170 
171 template <> inline
172 AttributeWidget *amirrorcfg::CreateEditorWidget( QWidget *pParent, int iWidth ) { return CreateNewMirrorConfigurationWidget( pParent, iWidth, this ); };
173 
174 template <> inline
175 Attribute::AttributeType amirrorcfg::Type( void ) const { return typeUnknown; };
176 
177 template <> inline
178 QString amirrorcfg::AsString( bool /*bLocalized*/ ) const { return QString::number(m_cValue.MirrorMode()); };
179 
180 template <> inline
181 void amirrorcfg::SetFromString( const QString &mode, bool /*bInternal*/, bool /*bLocalized*/ ) { m_cValue.SetMirrorMode(MirrorMode(mode.toInt())); };
182 
183 
186 {
188  {
189  m_bActive = false;
190  m_bOrientToStroke = true;
191  m_bStretch = false;
192  m_bFlipX = m_bFlipY = m_bRandomize = m_bRandomizeFlipX = m_bRandomizeFlipY = false;
193  m_fRotation = m_fRandomizeScale = m_fRandomizeStrength = 0.0f;
194  m_fRandomizeRotation = 0.35f;
195  m_fRandomizePositionX = m_fRandomizePositionY = 0.4f;
196  }
197 
198  void Serialize( Stream &s );
199 
200  inline bool operator ==( const StampConfiguration & ) const throw() { return false; };
201  inline bool operator !=( const StampConfiguration &v ) const throw() { return !operator ==( v ); };
202 
203  QString m_sFileName;
204  bool m_bActive;
205  bool m_bOrientToStroke, m_bStretch;
206  bool m_bFlipX, m_bFlipY;
207  float m_fRotation;
208  bool m_bRandomize, m_bRandomizeFlipX, m_bRandomizeFlipY;
209  float m_fRandomizeScale, m_fRandomizeRotation, m_fRandomizePositionX, m_fRandomizePositionY, m_fRandomizeStrength;
210 };
211 
213 
214 MBDLL_DECL AttributeWidget *CreateNewStampConfigurationWidget( QWidget *pParent, int iWidth, astampcfg *pAttribute );
215 
216 template <> inline
217 AttributeWidget *astampcfg::CreateEditorWidget( QWidget *pParent, int iWidth ) { return CreateNewStampConfigurationWidget( pParent, iWidth, this ); };
218 
219 template <> inline
220 Attribute::AttributeType astampcfg::Type( void ) const { return typeUnknown; };
221 
222 template<> inline
223 QString astampcfg::AsString( bool /*bLocalized*/ ) const
224 {
225  return QString("%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13")
226  .arg(m_cValue.m_bActive)
227  .arg(m_cValue.m_bOrientToStroke)
228  .arg(m_cValue.m_bStretch)
229  .arg(m_cValue.m_bFlipX)
230  .arg(m_cValue.m_bFlipY)
231  .arg(m_cValue.m_fRotation)
232  .arg(m_cValue.m_bRandomize)
233  .arg(m_cValue.m_bRandomizeFlipX)
234  .arg(m_cValue.m_bRandomizeFlipY)
235  .arg(m_cValue.m_fRandomizeScale)
236  .arg(m_cValue.m_fRandomizeRotation)
237  .arg(m_cValue.m_fRandomizePositionX)
238  .arg(m_cValue.m_fRandomizePositionY)
239  .arg(m_cValue.m_fRandomizeStrength);
240 };
241 
242 template<> inline
243 void astampcfg::SetFromString( const QString &s , bool /*bInternal*/, bool /*bLocalized*/ )
244 {
245  m_cValue.m_bActive = s.section( ' ', 0,0 ) == "1" ? true : false;
246  m_cValue.m_bOrientToStroke = s.section( ' ', 1,1 ) == "1" ? true : false;
247  m_cValue.m_bStretch = s.section( ' ', 2,2) == "1" ? true : false;
248  m_cValue.m_bFlipX = s.section( ' ', 3,3 ) == "1" ? true : false;
249  m_cValue.m_bFlipY = s.section( ' ', 4,4 ) == "1" ? true : false;
250  m_cValue.m_fRotation = s.section( ' ', 5,5 ).toFloat();
251  m_cValue.m_bRandomize = s.section( ' ', 6,6 ) == "1" ? true : false;
252  m_cValue.m_bRandomizeFlipX = s.section( ' ', 7,7 ) == "1" ? true : false;
253  m_cValue.m_bRandomizeFlipY = s.section( ' ', 8,8 ) == "1" ? true : false;
254  m_cValue.m_fRandomizeScale = s.section( ' ', 9,9 ).toFloat();
255  m_cValue.m_fRandomizeRotation = s.section( ' ', 10,10 ).toFloat();
256  m_cValue.m_fRandomizePositionX = s.section( ' ', 11,11 ).toFloat();
257  m_cValue.m_fRandomizePositionY = s.section( ' ', 12,12 ).toFloat();
258  m_cValue.m_fRandomizeStrength =s.section( ' ', 13,13 ).toFloat();
259 };
260 
268 {
271 public:
272 
275  {
276  eFalloffHybrid = 0,
278  eFalloffVolume
279  };
280 
283  {
296  eDirYZ
297  };
298 
300  enum Modifier
301  {
305  eModNoEffect
306  };
307 
310  {
311  eTriggerPrimary, // primary button was used (by default left mouse button)
312  eTriggerSecondary, // secondary button was used (by default middle mouse button)
313  eTriggerTertiary // tertiary button was used (by default left+middle mouse button)
314  };
315 
317  enum MaskType
318  {
319  eMaskAny = -1,
322  eMaskTypeCount
323  };
324 
328  {
334  eStampSizingDiameter
335  };
336 
339  {
341  {
344  eBehaviorAttribute
345  };
346 
347  BrushBehavior( void ) { m_eType = eBehaviorNone; m_sTarget = ""; m_iHotkey = 0; };
348  BrushBehavior( BehaviorType type, QString target, int iHotkey ) : m_eType( type ), m_sTarget( target ), m_iHotkey( iHotkey ) {};
349 
350  BehaviorType m_eType;
353  };
354 
356  {
357  bool IsValid( void ) { return m_pSurfacePoint != 0; };
358 
359  const SurfacePoint *m_pSurfacePoint;
360  float m_fSize;
361  float m_fStrength;
363  Vector m_vPreviousPositions[2];
364  unsigned int m_iSide;
365  };
366 
368  BrushOperation( void );
369 
371  virtual QString StringID( const ClassDesc *pClass = 0 ) const;
373  virtual QString DisplayName( void ) const;
374 
376  virtual void OnNodeEvent( const Attribute &cAttribute, NodeEventType eType );
377 
379  virtual bool IsScreenSpace( void ) const;
381  virtual float BrushSize( void ) const;
383  virtual float BrushStrength( void ) const;
385  virtual void SetBrushSize( float fSize );
387  virtual void SetBrushStrength( float fStrength );
389  virtual float EffectiveBrushSize( void ) const;
391  virtual float EffectiveBrushStrength( void ) const;
393  virtual float BrushSizeBias( void ) const;
395  virtual float BrushStrengthBias( void ) const;
397  virtual float MaxBrushSize( void ) const;
399  virtual float MaxBrushStrength( void ) const;
400 
402  virtual bool UsesStrokeSmoothing( void ) const;
404  virtual float StrokeSmoothingDistance( void ) const;
406  virtual void SetStrokeSmoothing( bool bEnable, float fDistance );
408  virtual bool HasCustomCursor( void );
409 
411  virtual bool UsesSteadyStroke( void ) const;
413  virtual float SteadyStrokeDistance( void ) const;
415  virtual void SetSteadyStroke( bool bEnable, float fDistance );
416 
418  virtual enum StampSizingMode StampSizingMode( void ) const;
420  virtual void SetStampSizingMode( enum StampSizingMode eMode );
421 
423  virtual const NURBSCurve *Falloff( void ) const;
425  virtual void SetFalloff( NURBSCurve *pCurve );
427  virtual const Store<float> &FalloffData( void ) const;
429  inline float FalloffValue( float fValue ) const
430  {
431  return FalloffData()[int(fValue*(FalloffData().ItemCount()-1))];
432  };
434  virtual bool UsesFalloffBasedOnFacingAngle( void ) const;
436  virtual void SetFalloffBasedOnFacingAngle( bool bEnable );
437 
439  void SetFalloffType( FalloffType eType );
441  FalloffType GetFalloffType() const;
442 
444  virtual bool UsesStampRandomize( void ) const;
446  virtual void SetStampRandomize( bool bEnable );
447 
449  virtual bool IsMaskEnabled( MaskType type = eMaskAny ) const;
451  virtual const Image *MaskImage( MaskType type = eMaskAny ) const;
453  virtual Matrix MaskMatrix( MaskType type = eMaskAny ) const;
455  virtual bool IsMaskInverted( MaskType type = eMaskAny ) const;
457  virtual float MaskFactor( MaskType type = eMaskAny ) const;
459  virtual bool IsMaskTiled( MaskType type = eMaskAny ) const;
461  virtual QString MaskName( MaskType type = eMaskAny ) const;
463  virtual bool MaskBuildUp( MaskType type = eMaskAny ) const;
465  virtual const Image *MaskOpacityImage( MaskType type = eMaskAny ) const;
467  virtual float MaskOffset( MaskType type = eMaskAny ) const;
469  virtual void OnMaskChanged( MaskType type = eMaskAny );
470 
472  virtual float BuildUpRate( void ) const;
474  virtual bool PatchesAtRelease( void ) const;
476  virtual bool PressureControlsBrushSize( void ) const;
478  virtual bool PressureControlsBrushStrength( void ) const;
480  virtual bool IsInverted( void ) const;
482  virtual bool IsOrientedToSurface( void ) const;
484  virtual void SetOrientedToSurface( bool bOriented );
486  virtual bool IsStrokeOnCurveEnabled( void ) const;
487 
489  Direction Direction( void ) const;
491  virtual void SetDirectionVector( const Vector &vDirection ) const;
493  Vector PreviousPatchPosition( void ) const;
494 
496  virtual void BeginStroke( Mesh *pMesh, Modifier eModifier, TriggerType eTriggerType );
498  virtual void EndStroke( void );
500  virtual void MouseMove( float fXPosition, float fYPosition, float fXDelta, float fYDelta, AxisAlignedBoundingBox &cDirtyWorldArea, float fPressure );
502  virtual void AddPatch( const SurfacePoint *pPoint, const Vector &vPatchCenter, float fSize, float fPressure, float fStrength, AxisAlignedBoundingBox &cDirtyWorldArea );
504  virtual void Flood( Mesh *pTarget, float fStrength = 1.0f, bool bFromCamera = false );
506  void SetPatchParameters( const SurfacePoint *pS, float fSize, float fStrength, Vector vMove );
507 
509  float EffectiveBrushSize( void );
511  float EffectiveBrushStrength( void );
512 
514  virtual void SetActiveConfiguration( BrushConfiguration *config );
516  virtual void SetActiveConfiguration( const QString &sName );
518  virtual BrushConfiguration *ActiveConfiguration( void ) const;
520  virtual void ResetBrushConfiguration(void);
521 
523  static void AddConfiguration( BrushConfiguration *config );
525  static unsigned int ConfigurationCount( void );
527  static BrushConfiguration *Configuration( unsigned int iIndex );
529  static void ClearConfigurations( void );
530 
532  const StampConfiguration &StampConfig( void ) const;
534  void SetStampConfig( StampConfiguration &newConfig );
536  void SetStamp( bool bEnable, const QString &sFileName = "" );
537 
539  void SetBrushSizeScale( float fScale );
541  void SetBrushStrengthScale( float fScale );
542 
544  bool UsesGlobalBrushSize( void ) const;
545 
548  Modifier CurrentModifier( void ) const;
549 
551  const MirrorConfiguration &MirrorConfig( void ) const;
553  virtual void SetMirrorConfig( MirrorConfiguration newConfig );
554 
559  virtual bool IsConfigurationInited( BrushConfiguration *config ) const;
562  virtual void StoreConfiguration( BrushConfiguration *config );
566  virtual void RestoreConfiguration( BrushConfiguration *config );
568  static void SerializeConfigurationStates( Stream &s );
569 
571  virtual QString OverlayIcon( void );
573  virtual QPointF OverlayOffset( void );
574 
576  virtual bool ExecuteAndInvert( void );
578  virtual void Serialize( Stream &s );
580  virtual BrushOperation &operator =( const BrushOperation &op );
581 
584  virtual bool CanLockLayer( void ) const;
585 
588  virtual bool CustomPicker( void );
589 
592  virtual Node *AttributeHolderNode( void );
593 
595  virtual void SetFalloffIndex( int iIndex );
596 
598  virtual int FalloffIndex( void ) const;
599 
601  virtual unsigned int AlternateBehaviorCount( void ) const;
602 
604  virtual const BrushBehavior &AlternateBehavior( unsigned int iIndex ) const;
605 
607  virtual bool IsSnapToCurve( void ) const;
608 
610  virtual float SnapDistance( void ) const;
611 
613  bool StrokeInterrupted( void ) const;
614 
616  virtual bool ShowBrushInStroke( void ) const;
617 
619  virtual void SetConstrainToSurface( bool bCts );
620 
622  virtual bool ConstrainToSurface() const;
623 
624 protected:
629  afloatr m_fNormalBrushSize, m_fNormalBrushStrength;
630  afloatr m_fScreenBrushSize, m_fScreenBrushStrength;
631  afloatr m_fMaxBrushSize, m_fMaxBrushStrength;
632  afloatr m_fBrushSizeBias, m_fBrushStrengthBias;
637  astampcfg m_cStampCfg;
638  amirrorcfg m_cMirrorCfg;
644  aptr<NURBSCurve> m_pFalloffCurve;
647 
654 
655  BrushBehavior m_cAlternateBehavior1, m_cAlternateBehavior2;
656 
658 
660 
662 
664 
665 private:
667  static Store<BrushConfiguration *> s_aConfigurations;
668 };
669 
670 #define MB_ADD_CONFIG( classname, id, name, nametr, category, tooltip ) \
671  mudbox::BrushOperation::AddConfiguration( new BrushConfiguration( classname::StaticClass(), id, name, nametr, category, tooltip ) );
672 
673 #define MB_ADD_CONFIG2( classname, id, name, nametr, category, categoryTr, tooltip ) \
674  mudbox::BrushOperation::AddConfiguration( new BrushConfiguration( classname::StaticClass(), id, name, nametr, category, categoryTr, tooltip ) );
675 
676 #define MB_ADD_CONFIG3( classname, id, name, nametr, category, categoryTr, tooltip, version ) \
677  mudbox::BrushOperation::AddConfiguration( new BrushConfiguration( classname::StaticClass(), id, name, nametr, category, categoryTr, tooltip, version ) );
678 
679 }; // end of namespace mudbox
680 
681 #endif
GLuint GLuint GLsizei GLenum type
Definition: GLee.h:872
AttributeInstance< MirrorConfiguration > amirrorcfg
Definition: brush.h:167
abool m_bOrientToSurface
Definition: brush.h:628
acurveptr m_cFalloff
Definition: brush.h:642
unsigned int(APIENTRYP PFNGLXGETAGPOFFSETMESAPROC)(const void *pointer)
Definition: GLee.h:10762
virtual void OnNodeEvent(const Attribute &cAttribute, NodeEventType cType)
This function is called if an event occurs with any of the attributes of the node.
GLint mode
Definition: GLee.h:4479
Container class for stamp related properties and functions.
Definition: brush.h:185
Stamp resized with the 2 points defining the radius (starting point is the center) ...
Definition: brush.h:332
virtual QString DisplayName(void) const
Returns the display name of the node.
aptr< NURBSCurve > m_pFalloffCurve
Definition: brush.h:644
Represents a 3D vector or point with S23E8 floating point elements.
Definition: math.h:35
This class represents an action which can be triggered by the user.
Definition: interface.h:539
No mirror.
Definition: brush.h:82
A Mesh is a collection of vertices organized into faces, and optional Texture Coordinate information...
Definition: mesh.h:452
This attribute represents a float value which has a minimum and a maximum value.
Definition: node.h:1020
Direction
Values for the brush direction property.
Definition: brush.h:282
abool m_bScreenSpace
ATTRIBUTES:
Definition: brush.h:626
QString arg(qlonglong a, int fieldwidth=0, int base=10, const QChar &fillChar=QLatin1Char(' ')) const Q_REQUIRED_RESULT
This class can be used to define configurations for different brush behaviours of the same class...
Definition: brush.h:26
int MirrorPlanes(void) const
Returns the number of mirroring planes.
Definition: brush.h:116
The structure contains information about mirroring of the operation.
Definition: brush.h:100
MBDLL_DECL AttributeWidget * CreateNewStampConfigurationWidget(QWidget *pParent, int iWidth, astampcfg *pAttribute)
MirrorMode
Possible values for the brush mirror attribute.
Definition: brush.h:79
amirrorcfg m_cMirrorCfg
Definition: brush.h:638
MBDLL_DECL AttributeWidget * CreateNewMirrorConfigurationWidget(QWidget *pParent, int iWidth, amirrorcfg *pAttribute)
Represents a bounding box whose axes are aligned with the coordinate system.
Definition: math.h:838
Describes a location somewhere on the surface of a Mesh.
Definition: mesh.h:340
This is the base class for most classes in the Mudbox SDK.
Definition: node.h:740
NodeEventType
Possible event types when Node::OnNodeEvent is called.
Definition: node.h:148
afloatr m_fMaxBrushStrength
Definition: brush.h:631
BrushBehavior m_cAlternateBehavior2
Definition: brush.h:655
const Store< mudbox::Vector > & MirrorPlanePositions(void) const
Returns the mirror plane positions.
Definition: brush.h:112
StampSizingMode
Values for stamp resizing mode.
Definition: brush.h:327
abool m_bConstrainToSurface
Definition: brush.h:661
PatchParameters m_cPatchParameters
Definition: brush.h:648
bool operator==(const Attribute &cA, const AttributeInstance< type > &cB)
This operator compares the two attributes and NOT their values.
Definition: node.h:577
float FalloffValue(float fValue) const
Returns the falloff value in the specified curve position.
Definition: brush.h:429
Modifier m_eModifier
Definition: brush.h:649
int toInt(bool *ok=0, int base=10) const
Mirror on global Y axis.
Definition: brush.h:86
This class represents a 4x4 transformation matrix.
Definition: math.h:1122
afloatr m_fNormalBrushStrength
Definition: brush.h:629
float m_fBrushStrengthScale
Definition: brush.h:652
Category
Set's the category your program should be listed in in the mixer.
This structure represents and describes a class.
Definition: node.h:22
FalloffType
Values for the falloff type property.
Definition: brush.h:274
Mirror on global X axis.
Definition: brush.h:84
Mirror on local Z axis.
Definition: brush.h:94
acheckablefloat m_fSnapToCurve
Definition: brush.h:657
This class represents an event receiver/triggerer point.
Definition: node.h:999
Modifier
Definition: qnamespace.h:141
bool operator!=(const QByteArray &a1, const QByteArray &a2)
Definition: qbytearray.h:533
const GLdouble * v
Definition: GLee.h:1174
Mirror using topology symmmetry.
Definition: brush.h:96
MaskType
Values for mask types that can be add to the brush effect as a multiplier.
Definition: brush.h:317
#define INTRODUCED_IN_MUDBOX_2013_OR_EARLIER
Used to insert expanded category item.
Definition: node.h:379
aevent m_cFloodFromCamera
Definition: brush.h:640
afloatr m_fBrushStrengthBias
Definition: brush.h:632
acheckablefloat m_fSteadyStroke
Definition: brush.h:634
Modifier
Values for the brush effect modifier.
Definition: brush.h:300
virtual QString StringID(const ClassDesc *pClass=0) const
Returns the string id of the node.
float m_fBrushSizeScale
Definition: brush.h:651
Class: ConvolutionKernel.
Definition: array.h:15
This is an abstract base structure for all attributes.
Definition: node.h:181
QString section(QChar sep, int start, int end=-1, SectionFlags flags=SectionDefault) const
Definition: qstring.h:781
The base class of all operations.
Definition: operation.h:26
TriggerType
This value represents how the user triggered the brush.
Definition: brush.h:309
bool IsMirrorLocal(void) const
Returns if the mirroring is local.
Definition: brush.h:114
static QString number(int, int base=10)
Mirror on local Y axis.
Definition: brush.h:92
TriggerType m_eTriggerType
Definition: brush.h:650
bool m_bStrokeInterrupted
Definition: brush.h:659
Streams are used to read information from a file, or to write it to a file.
Definition: stream.h:39
#define DECLARE_CLASS
This macro should be used in declaration of classes which are inherited from the Node class (or any d...
Definition: node.h:91
Mirror on local X axis.
Definition: brush.h:90
AttributeInstance< StampConfiguration > astampcfg
Definition: brush.h:212
This attribute is very similar to the aint type but on the user interface it will be displayed as a c...
Definition: node.h:1071
afloatr m_fScreenBrushStrength
Definition: brush.h:630
astampcfg m_cStampCfg
Definition: brush.h:637
Mirror on global Z axis.
Definition: brush.h:88
GLXFBConfig config
Definition: GLee.h:10233
virtual void Serialize(Stream &s)
Serializes the node.
GLdouble s
Definition: GLee.h:1173
The BrushOperation class is the base class for brush functionality.
Definition: brush.h:267
const Store< mudbox::Vector > & MirrorPlaneNormals(void) const
Returns the mirror plane normals.
Definition: brush.h:110
This is the base image type defining the interface to images.
Definition: image.h:1504
GLclampf f
Definition: GLee.h:9303
#define Q_DECLARE_TR_FUNCTIONS(context)
#define MBDLL_DECL
Definition: dllinterface.h:35
float toFloat(bool *ok=0) const
acheckablefloat m_fStrokeSmoothing
Definition: brush.h:633
Tool behaviour structure for storing alternate brushing modes.
Definition: brush.h:338
AttributeWidget * CreateEditorWidget(QWidget *pParent, int iWidth)
Definition: node.h:449
AttributeCheckableFloatArray m_aFalloffBasedonFacingAngle
Definition: brush.h:645
BrushConfiguration * m_pActiveConfiguration
Definition: brush.h:653