Free Electron
SurfaceStrata.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_SurfaceStrata_h__
8 #define __terrain_SurfaceStrata_h__
9 namespace fe
10 {
11 namespace ext
12 {
13 
14 /**************************************************************************//**
15  @brief Surface Layer
16 
17  @ingroup terrain
18 *//***************************************************************************/
19 class FE_DL_EXPORT SurfaceStrata: public SurfaceTriangles,
20  public Initialize<SurfaceStrata>
21 {
22  public:
23  SurfaceStrata(void);
24 virtual ~SurfaceStrata(void) {}
25 
26 void initialize(void);
27 
28  //* As Protectable
29 virtual Protectable* clone(Protectable* pInstance=NULL);
30 
31  //* As SurfaceI
32 virtual SpatialTransform sample(Vector2 a_uv) const;
33 
34  //* As DrawableI
35 virtual void draw(sp<DrawI> a_spDrawI,const Color* color) const;
36 
37  private:
38 
39 virtual void cache(void);
40 
41  sp<StratumDrawI> m_spStratumDrawI;
42  sp<StrataI> m_spStrataI;
43 };
44 
45 } /* namespace ext */
46 } /* namespace fe */
47 
48 #endif /* __terrain_SurfaceStrata_h__ */
Discrete Triangle Surface.
Definition: SurfaceTriangles.h:20
Surface Layer.
Definition: SurfaceStrata.h:19
Base class providing protection counting for cp<>
Definition: Protectable.h:28
kernel
Definition: namespace.dox:3
Per-class participation in the Initialized <> mechanism.
Definition: Initialized.h:117
Special vector for color (RGBA)
Definition: Color.h:21