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_ColliderNone_h__ 00015 #define __SIM_ColliderNone_h__ 00016 00017 #include "SIM_API.h" 00018 #include "SIM_Collider.h" 00019 00020 /// This class implements a collider that doesn't actually detect collisions. 00021 /// Use this collider as a place holder when a collider is required but 00022 /// no actual collision detection is needed. 00023 class SIM_API SIM_ColliderNone : public SIM_Collider 00024 { 00025 protected: 00026 /// This SIM_ColliderNone constructor. 00027 explicit SIM_ColliderNone(const SIM_DataFactory *factory); 00028 /// This SIM_ColliderNone destructor. 00029 virtual ~SIM_ColliderNone(); 00030 00031 /// Required override of the collision detection function. 00032 /// This implementation does nothing. 00033 virtual bool collideObjectsSubclass(SIM_Engine &engine, 00034 SIM_Object &object, 00035 SIM_Object &affector, 00036 const SIM_Time &starttime, 00037 const SIM_Time &endtime, 00038 SIM_ImpactApplyType impactapplytype, 00039 int impactflags) const; 00040 /// There is no point in interpolating the affector, since we 00041 /// never even look at it. So return false here. 00042 virtual bool getAffectorInterpolatedToEndTimeSubclass() const; 00043 00044 private: 00045 static const SIM_DopDescription *getColliderNoneDopDescription(); 00046 00047 DECLARE_STANDARD_GETCASTTOTYPE(); 00048 DECLARE_DATAFACTORY(SIM_ColliderNone, 00049 SIM_Collider, 00050 "No Collider", 00051 getColliderNoneDopDescription()); 00052 }; 00053 00054 #endif 00055
1.5.9