VR-Forces 4.0.4 Class Documentation
include/vrfmodel/fallingFromSkyActuator.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2011 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: fallingFromSkyActuator.h,v $ $Revision: 1.1 $ $State: Exp $
00007 ** Created: 5/3/11 MEM
00008 *******************************************************************************/
00009 
00012 
00014 #pragma once
00015 
00016 #include <vlpi/disEnums.h>
00017 #include "vrfobjcore/actCmpnt.h"
00018 #include <matrix/LibMatrix.h>
00019 
00020 class DtString;
00021 class DtSimManager;
00022 class DtVrfMovingObjectStateRepository;
00023 class DtFallingFromSkyActuatorDescriptor;
00024 
00025 
00036 #include "vrfmodel/vrfmodelDefines.h"
00037 class DT_DLL_vrfmodel DtFallingFromSkyActuatorComponent : public DtActuatorComponent
00038 {
00039 
00040 public:
00041 
00044    DtFallingFromSkyActuatorComponent(const DtString& name, 
00045       DtVrfObject* owner,
00046       DtSimManager* simManager, 
00047       DtComponentDescriptor* desc = 0,
00048       DtReaderWriterRegistry* parentRegistry = 0);
00049 
00050 
00054    virtual ~DtFallingFromSkyActuatorComponent();
00055 
00058    virtual bool init();
00059 
00062    virtual DtString type() const;
00063 
00066    virtual void tick();
00067 
00071    static DtSimComponent * creator(const DtString& name, 
00072       DtVrfObject* owner,
00073       DtSimManager* simManager, 
00074       DtComponentDescriptor* desc = 0,
00075       DtReaderWriterRegistry* parentRegistry = 0);
00076 
00077 
00078 protected:
00079 
00082    virtual void calculateOrientation(const DtDcm&
00083       oldLocalOrientation, const DtVector& newBodyRotationRates,
00084       DtDcm& newLocalOrientation);
00085 
00088    virtual void fallFromSky();
00089 
00091    void integrate(const DtVector& oldLocalPosition, 
00092       const DtVector& oldRelativeVelocity, 
00093       const DtVector& newRelativeAcceleration, DtVector& newLocalPosition, 
00094       DtVector& newRelativeVelocity);
00095 
00096    virtual void updateRepository(const DtVector& newLocalPosition,
00097       const DtVector& newRelativeVelocity, 
00098       const DtVector& newRelativeAcceleration, 
00099       const DtDcm& newLocalOrientation, const DtVector& newBodyRotationRates,
00100       bool isOnGround);
00101 
00102 protected:
00103    
00105    DtFallingFromSkyActuatorComponent();
00106 
00108    DtFallingFromSkyActuatorComponent(const DtFallingFromSkyActuatorComponent & orig);
00109 
00111    const DtFallingFromSkyActuatorComponent & operator=(const 
00112       DtFallingFromSkyActuatorComponent & orig);
00113 
00114 protected:
00115 
00116    DtVrfMovingObjectStateRepository * myState;
00117    DtFallingFromSkyActuatorDescriptor * myFallingFromSkyActuatorDescriptor;
00118 
00119    bool           myFirstTick;
00120 };
00121 

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)