00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef __SIM_SopGeometry_h__
00015 #define __SIM_SopGeometry_h__
00016
00017 #include "SIMZ_API.h"
00018 #include <SIM/SIM_Geometry.h>
00019 #include "SIMZ_Utils.h"
00020
00021
00022 class SIMZ_API SIM_SopGeometry : public SIM_Geometry
00023 {
00024 public:
00025
00026 GETSET_DATA_FUNCS_F(SIM_NAME_TIME, Time);
00027 GETSET_DATA_FUNCS_S(SIM_NAME_SOPPATH, SopPath);
00028 GETSET_DATA_FUNCS_S(SIM_NAME_PRIMGROUP, PrimGroup);
00029 GETSET_DATA_FUNCS_B(SIM_NAME_USETRANSFORM, UseTransform);
00030 GETSET_DATA_FUNCS_B(SIM_NAME_LETSOPSINTERPOLATE, LetSopsInterpolate);
00031
00032 protected:
00033 explicit SIM_SopGeometry(const SIM_DataFactory *factory);
00034 virtual ~SIM_SopGeometry();
00035
00036
00037 virtual void handleModificationSubclass(int code);
00038 virtual void interpolateSubclass(const SIM_Data *source1,
00039 const SIM_Data *source2,
00040 fpreal interp);
00041
00042 private:
00043 void updateGeometryFromOptions();
00044
00045 static const SIM_DopDescription *getSopGeometryDopDescription();
00046
00047 DECLARE_STANDARD_GETCASTTOTYPE();
00048 DECLARE_DATAFACTORY(SIM_SopGeometry,
00049 SIM_Geometry,
00050 "SOP Geometry",
00051 getSopGeometryDopDescription());
00052 };
00053
00054 #endif
00055