HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SIM_SopVectorField.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  * NAME: SIM_SopVectorField.h ( SIMZ Library, C++)
7  *
8  * COMMENTS:
9  */
10 
11 #ifndef __SIM_SopVectorField_h__
12 #define __SIM_SopVectorField_h__
13 
14 #include "SIMZ_API.h"
15 #include <OP/OP_Version.h>
16 #include <SIM/SIM_VectorField.h>
17 #include <SIM/SIM_OptionsUser.h>
18 #include "SIMZ_Utils.h"
19 
20 // This SIM_VectorField implementation gets geometry from a SOP.
22 {
23 public:
24  // Access functions for our specific data.
25  GETSET_DATA_FUNCS_B("usesopdimensions", UseSopDimensions);
26  GETSET_DATA_FUNCS_B("sopresizeonly", SopResizeOnly);
29  GETSET_DATA_FUNCS_V3("primnum", PrimNumber);
30  GETSET_DATA_FUNCS_V3("scalevalue", ScaleValues);
33 
34 protected:
35  explicit SIM_SopVectorField(const SIM_DataFactory *factory);
36  ~SIM_SopVectorField() override;
37 
38  // Method for accessing the geometry.
39  void handleModificationSubclass(int code) override;
40  void interpolateSubclass(const SIM_Data *source1,
41  const SIM_Data *source2,
42  fpreal interp) override;
43 
44 private:
45  void updateFieldFromOptions();
46 
47  static const SIM_DopDescription *getSopVectorFieldDopDescription();
48 
52  "SOP Vector Field",
53  getSopVectorFieldDopDescription());
54 };
55 
56 #endif
57 
#define SIMZ_API
Definition: SIMZ_API.h:10
#define DECLARE_STANDARD_GETCASTTOTYPE()
Definition: SIM_DataUtils.h:50
GETSET_DATA_FUNCS_F("divsize", RawDivisionSize)
#define DECLARE_DATAFACTORY(DataClass, SuperClass, Description, DopParms)
Definition: SIM_DataUtils.h:63
GETSET_DATA_FUNCS_B(SIM_NAME_TWOD, TwoDField)
virtual void interpolateSubclass(const SIM_Data *source1, const SIM_Data *source2, fpreal interp)
virtual void handleModificationSubclass(int code)
#define SIM_NAME_USETRANSFORM
Definition: SIMZ_Utils.h:34
fpreal64 fpreal
Definition: SYS_Types.h:277
#define SIM_NAME_TIME
Definition: SIMZ_Utils.h:32
#define SIM_NAME_LETSOPSINTERPOLATE
Definition: SIMZ_Utils.h:35
GETSET_DATA_FUNCS_S(SIM_NAME_POSITIONPATH, PositionPath)
This class holds a three dimensional vector field.
GETSET_DATA_FUNCS_V3(SIM_NAME_DIV, RawDivisions)
#define SIM_NAME_SOPPATH
Definition: SIMZ_Utils.h:31