afxMooring.h

Engine/source/afx/ce/afxMooring.h

More...

Classes:

Detailed Description

  1
  2
  3//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~~//
  4// Arcane-FX for MIT Licensed Open Source version of Torque 3D from GarageGames
  5// Copyright (C) 2015 Faust Logic, Inc.
  6//
  7// Permission is hereby granted, free of charge, to any person obtaining a copy
  8// of this software and associated documentation files (the "Software"), to
  9// deal in the Software without restriction, including without limitation the
 10// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 11// sell copies of the Software, and to permit persons to whom the Software is
 12// furnished to do so, subject to the following conditions:
 13//
 14// The above copyright notice and this permission notice shall be included in
 15// all copies or substantial portions of the Software.
 16//
 17// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 18// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 19// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 20// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 21// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 23// IN THE SOFTWARE.
 24//
 25//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~~//
 26
 27#ifndef _AFX_MOORING_H_
 28#define _AFX_MOORING_H_
 29
 30#include "renderInstance/renderPassManager.h"
 31
 32#include "afx/afxEffectDefs.h"
 33
 34class afxMooringData : public GameBaseData, public afxEffectDefs
 35{
 36  typedef GameBaseData  Parent;
 37
 38public:
 39  U8            networking;
 40  bool          track_pos_only;
 41  bool          display_axis_marker;
 42
 43public:
 44  /*C*/         afxMooringData();
 45  /*C*/         afxMooringData(const afxMooringData&, bool = false);
 46
 47  virtual bool  onAdd();
 48  virtual void  packData(BitStream*);
 49  virtual void  unpackData(BitStream*);
 50
 51  virtual bool  allowSubstitutions() const { return true; }
 52
 53  static void   initPersistFields();
 54
 55  DECLARE_CONOBJECT(afxMooringData);
 56  DECLARE_CATEGORY("AFX");
 57};
 58
 59//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~~//
 60// afxMooring
 61
 62class afxMooring : public GameBase, public afxEffectDefs
 63{
 64  typedef GameBase Parent;
 65
 66private:
 67  afxMooringData*       mDataBlock;
 68  U32                   chor_id;
 69  bool                  hookup_with_chor;
 70  StringTableEntry      ghost_cons_name;
 71
 72  GFXStateBlockRef      axis_sb;
 73  void                  _renderAxisLines(ObjectRenderInst*, SceneRenderState*, BaseMatInstance*);
 74
 75protected:
 76   enum MaskBits 
 77   {
 78      PositionMask = Parent::NextFreeMask,
 79       NextFreeMask = Parent::NextFreeMask << 1
 80   };
 81
 82public:
 83  /*C*/                 afxMooring();
 84  /*C*/                 afxMooring(U32 networking, U32 chor_id, StringTableEntry cons_name);
 85  /*D*/                 ~afxMooring();
 86
 87  virtual bool          onNewDataBlock(GameBaseData* dptr, bool reload);
 88  virtual void          advanceTime(F32 dt);
 89  virtual bool          onAdd();
 90  virtual void          onRemove();
 91  virtual U32           packUpdate(NetConnection*, U32, BitStream*);
 92  virtual void          unpackUpdate(NetConnection*, BitStream*);
 93  virtual void          setTransform(const MatrixF&);
 94
 95  virtual void          prepRenderImage(SceneRenderState*);
 96
 97  DECLARE_CONOBJECT(afxMooring);
 98  DECLARE_CATEGORY("AFX");
 99};
100
101//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~//~~~~~~~~~~~~~~~~~~~~~//
102
103#endif // _AFX_MOORING_H_
104