HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SIM_MaskField.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  */
7 
8 #ifndef __SIM_MaskField_h__
9 #define __SIM_MaskField_h__
10 
11 #include "SIM_API.h"
12 #include <UT/UT_Noise.h>
13 #include "SIM_Noise.h"
14 
15 /// This class defines the interface for field mask functions.
17 {
18 public:
23  /// The maximum distance we are allowed to search for a point.
25 
26 protected:
27  explicit SIM_MaskField(const SIM_DataFactory *factory);
28  virtual ~SIM_MaskField();
29 
30  /// Override this function to return the actual bounds of the noise.
31  virtual void getNoiseLimitsSubclass(fpreal &min,
32  fpreal &max) const;
33  /// Override this function to implement a new 1D noise function.
34  virtual fpreal getNoiseSubclass(const UT_Vector3 &pos) const;
35  /// Override this function to implement a new 3D noise function.
36  virtual void getNoiseSubclass(const UT_Vector3 &pos,
37  UT_Vector3 &noise) const;
38 
39 private:
40  static const SIM_DopDescription *getMaskFieldDopDescription();
41 
44  SIM_Noise,
45  "Mask Field",
46  getMaskFieldDopDescription());
47 };
48 
49 #endif
#define DECLARE_STANDARD_GETCASTTOTYPE()
Definition: SIM_DataUtils.h:45
const hboost::disable_if_c< VecTraits< T >::IsVec, T >::type & min(const T &a, const T &b)
Definition: Composite.h:128
#define SIM_NAME_MAXDISTANCE
Definition: SIM_Names.h:144
#define SIM_NAME_TREATASSDF
Definition: SIM_Names.h:205
virtual void getNoiseLimitsSubclass(fpreal &min, fpreal &max) const =0
Override this function to return the actual bounds of the noise.
#define GETSET_DATA_FUNCS_F(DataName, FuncName)
const hboost::disable_if_c< VecTraits< T >::IsVec, T >::type & max(const T &a, const T &b)
Definition: Composite.h:132
#define DECLARE_DATAFACTORY(DataClass, SuperClass, Description, DopParms)
Definition: SIM_DataUtils.h:58
This class defines the interface for noise generation functions.
Definition: SIM_Noise.h:20
#define SIM_NAME_INVERT
Definition: SIM_Names.h:138
This class defines the interface for field mask functions.
Definition: SIM_MaskField.h:16
double fpreal
Definition: SYS_Types.h:263
virtual fpreal getNoiseSubclass(const UT_Vector3 &pos) const
#define SIM_NAME_SCALE
Definition: SIM_Names.h:182
#define SIM_API
Definition: SIM_API.h:10
#define SIM_NAME_OFFSET
Definition: SIM_Names.h:156
GETSET_DATA_FUNCS_B(SIM_NAME_SCALARNOISE, ScalarNoise)