00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef __SIM_SlicePlane_h__
00016 #define __SIM_SlicePlane_h__
00017
00018 #include "SIM_API.h"
00019 #include "SIM_Slice.h"
00020 #include "SIM_OptionsUser.h"
00021
00022 class SIM_API SIM_SlicePlane : public SIM_Slice,
00023 public SIM_OptionsUser
00024 {
00025 public:
00026
00027 GETSET_DATA_FUNCS_V3("dir", SliceDirection);
00028
00029 GETSET_DATA_FUNCS_V3(SIM_NAME_POSITION, SlicePosition);
00030
00031 protected:
00032 explicit SIM_SlicePlane(const SIM_DataFactory *factory);
00033 virtual ~SIM_SlicePlane();
00034
00035
00036
00037
00038
00039 virtual fpreal getSliceBoundaryDistSubclass(const UT_Vector3 &pos) const;
00040
00041
00042 virtual UT_Vector3 getCenterSubclass() const { return myPos; }
00043
00044 virtual SIM_Guide *createGuideObjectSubclass() const;
00045
00046 virtual void buildGuideGeometrySubclass(const SIM_RootData &root,
00047 const SIM_Options &options,
00048 const GU_DetailHandle &gdh,
00049 UT_DMatrix4 *xform,
00050 const SIM_Time &t) const;
00051
00052
00053
00054 virtual void optionChangedSubclass(const char *name);
00055
00056 private:
00057 static const SIM_DopDescription *getSlicePlaneDopDescription();
00058
00059 UT_Vector3 myDir, myPos;
00060 fpreal myOffset;
00061
00062 DECLARE_STANDARD_GETCASTTOTYPE();
00063 DECLARE_DATAFACTORY(SIM_SlicePlane,
00064 SIM_Slice,
00065 "Slice by Plane",
00066 getSlicePlaneDopDescription());
00067 };
00068
00069 #endif
00070