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 * 123 Front Street West, Suite 1401 00009 * Toronto, Ontario 00010 * Canada M5J 2M2 00011 * 416-504-9876 00012 */ 00013 00014 #ifndef __SIM_ColliderLabel_h__ 00015 #define __SIM_ColliderLabel_h__ 00016 00017 #include "SIM_API.h" 00018 #include "SIM_OptionsUser.h" 00019 #include "SIM_DataUtils.h" 00020 00021 /// This class associates a string label with an object that is used to 00022 /// help determine what SIM_Collider subclass to use when performing 00023 /// collision detection between a pair of objects. In addition to holding 00024 /// the collider label for an object, SIM_Colliders may be attached as 00025 /// subdata to this data to explicitly specify a SIM_Collider to use 00026 /// when colliding this object with another. The SIM_Collider with the 00027 /// subdata name that matches the other object's collider label is used 00028 /// as the collider for the two objects. For more information on determining 00029 /// the right SIM_Collider to use for a pair of objects, see 00030 /// SIM_Object::getCollider(). 00031 class SIM_API SIM_ColliderLabel : public SIM_Data, 00032 public SIM_OptionsUser 00033 { 00034 public: 00035 /// Control the label that helps determine the proper collider to use 00036 /// for this object. 00037 GETSET_DATA_FUNCS_S(SIM_NAME_COLLIDERLABEL, ColliderLabel); 00038 00039 protected: 00040 explicit SIM_ColliderLabel(const SIM_DataFactory *factory); 00041 virtual ~SIM_ColliderLabel(); 00042 00043 private: 00044 static const SIM_DopDescription *getColliderLabelDopDescription(); 00045 00046 DECLARE_STANDARD_GETCASTTOTYPE(); 00047 DECLARE_DATAFACTORY(SIM_ColliderLabel, 00048 SIM_Data, 00049 "Collider Label", 00050 getColliderLabelDopDescription()); 00051 }; 00052 00053 #endif 00054
1.5.9