Free Electron
Habitat.h
Go to the documentation of this file.
1 /* Copyright (C) 2003-2021 Free Electron Organization
2  Any use of this software requires a license. If a valid license
3  was not distributed with this file, visit freeelectron.org. */
4 
5 /** @file */
6 
7 #ifndef __terrain_Habitat_h__
8 #define __terrain_Habitat_h__
9 namespace fe
10 {
11 namespace ext
12 {
13 
14 /**************************************************************************//**
15  @brief A place to make a home
16 
17  @ingroup terrain
18 *//***************************************************************************/
19 class FE_DL_EXPORT Habitat: virtual public StrataI
20 {
21  public:
22 virtual void addStratum(sp<StratumI> spStratumI)
23  { m_layerList.append(spStratumI); }
24 virtual void removeStratum(sp<StratumI> spStratumI)
25  { m_layerList.remove(spStratumI); }
26 virtual U32 numStratum(void) { return m_layerList.size(); }
27 virtual sp<StratumI> stratum(U32 index) { return m_layerList[index]; }
28 
29 virtual void setTime(Real time);
30 
31 virtual void calcInfluence(SpatialVector& rForce,
32  Real radius,SpatialVector center,
33  SpatialVector velocity);
34 virtual void impact(SpatialVector& center,SpatialVector& velocity,
35  Real mass,Real radius,Real deltaT);
36 
37  private:
38  List< sp<StratumI> > m_layerList;
39 };
40 
41 } /* namespace ext */
42 } /* namespace fe */
43 
44 #endif /* __terrain_Habitat_h__ */
Layered environment delimited by surfaces.
Definition: StrataI.h:21
Fully Bidirectional Doubly-Linked List.
Definition: List.h:496
A place to make a home.
Definition: Habitat.h:19
kernel
Definition: namespace.dox:3