VR-Forces 4.0.4 Class Documentation
include/vrfmodel/msslCollAct.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 1999 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: msslCollAct.h,v $ $Revision: 1.23 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00014 
00015 
00016 #ifndef DtMissileCollisionActuator_H_
00017 #define DtMissileCollisionActuator_H_
00018 
00019 #include "vrfobjcore/actCmpnt.h"
00020 #include <vl/detonateInter.h>
00021 
00022 #include <vl/objectId.h>
00023 
00024 class DtMissileStateRepository;
00025 
00026 class Dt3dBoundingVolume;
00027 
00028 
00037 #include "vrfmodel/vrfmodelDefines.h"
00038 class DT_DLL_vrfmodel DtMissileCollisionActuator : public DtActuatorComponent
00039 {
00040 
00041 public:
00042 
00045    DtMissileCollisionActuator(const DtString& name, 
00046       DtVrfObject* owner,
00047       DtSimManager* simManager, 
00048       DtComponentDescriptor* desc = 0,
00049       DtReaderWriterRegistry* parentRegistry = 0);
00050 
00052    virtual ~DtMissileCollisionActuator();
00053 
00057    virtual bool init();
00058 
00061    virtual DtString type() const;
00062 
00065    virtual void tick();
00066 
00082    virtual DtVrfObject * detectCollision(double& distToImpactSqrd,
00083                                              DtVector& detonLocationOut);
00084 
00096    virtual bool checkEntityForCollision(DtVrfObject * collidee,
00097                                        const DtVector& missilePath,
00098                                        const DtVector& missileBoxCenter,
00099                                        DtVector& detonLocationOut,
00100                                        double& distToImpactSqrd);
00101 
00120    virtual bool checkForGroundImpact(double& distToImpactSqrd,
00121                                           DtVector& impactPoint,
00122                                           DtDetonationResult& result);
00123    
00128    virtual void sendDetonation(DtVrfObject *impactedEntity,
00129                                const DtVector& detonLocation);
00130 
00134    virtual void sendDetonation(DtDetonationResult result, 
00135                                const DtVector& collisionPt);
00136 
00140    static DtSimComponent * creator(const DtString& name, 
00141       DtVrfObject* owner,
00142       DtSimManager* simManager, 
00143       DtComponentDescriptor* desc = 0,
00144       DtReaderWriterRegistry* parentRegistry = 0);
00145 
00146 protected:
00149    DtMissileCollisionActuator();
00150 
00152    DtMissileCollisionActuator(const DtMissileCollisionActuator & orig);
00153 
00155    const DtMissileCollisionActuator & operator=(
00156       const DtMissileCollisionActuator & orig);
00157 
00158 protected:
00159    DtMissileStateRepository   *myMissileState;
00160    Dt3dBoundingVolume           *myCollisionBV;
00161    DtVector                   myLastPosition;
00162    DtObjectId                 myObjectId;
00163    bool                  myStartPositionInited;
00164 
00165 };
00166 
00167 #endif
00168 
00169 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)