00001 /* 00002 * PROPRIETARY INFORMATION. This software is proprietary to 00003 * Side Effects Software Inc., and is not to be reproduced, 00004 * transmitted, or disclosed in any way without written permission. 00005 * 00006 * Produced by: 00007 * Side Effects Software Inc. 00008 * 477 Richmond Street West, Suite 1001 00009 * Toronto, Ontario 00010 * Canada M5V 3E7 00011 * 416-504-9876 00012 */ 00013 00014 #ifndef __SIM_PositionComposite_h__ 00015 #define __SIM_PositionComposite_h__ 00016 00017 #include "SIM_API.h" 00018 #include "SIM_Position.h" 00019 #include "SIM_OptionsUser.h" 00020 00021 /// This is the simplest implementation for standard positional data. 00022 /// Positional data is not exactly the same as a transform in that it 00023 /// does not permit scales, and the rotation is always applied before 00024 /// the translation. 00025 class SIM_API SIM_PositionComposite : public SIM_Position, 00026 public SIM_OptionsUser 00027 { 00028 public: 00029 /// Control the operation to use when compositing our position subdata. 00030 GETSET_DATA_FUNCS_S(SIM_NAME_POSCOMPOSITEOP, PosCompositeOp); 00031 00032 protected: 00033 explicit SIM_PositionComposite(const SIM_DataFactory *factory); 00034 virtual ~SIM_PositionComposite(); 00035 00036 /// Gets a transform matrix from our position and rotation data. 00037 virtual void getTransformSubclass(UT_DMatrix4 &xform) const; 00038 00039 private: 00040 static const SIM_DopDescription *getPositionCompositeDopDescription(); 00041 00042 DECLARE_STANDARD_GETCASTTOTYPE(); 00043 DECLARE_DATAFACTORY(SIM_PositionComposite, 00044 SIM_Position, 00045 "Position Composite", 00046 getPositionCompositeDopDescription()); 00047 }; 00048 00049 #endif 00050
1.5.9