Cuberite
A lightweight, fast and extensible game server for Minecraft
Public Types | Public Member Functions | Protected Attributes | Static Protected Attributes | Private Types | List of all members
cIntGenZoom< SizeX, SizeZ > Class Template Reference

Zooms the underlying value array to twice the size. More...

#include <IntGen.h>

Inheritance diagram for cIntGenZoom< SizeX, SizeZ >:
Inheritance graph
[legend]
Collaboration diagram for cIntGenZoom< SizeX, SizeZ >:
Collaboration graph
[legend]

Public Types

using Underlying = std::shared_ptr< cIntGen< m_LowerSizeX, m_LowerSizeZ > >
 
- Public Types inherited from cIntGen< SizeX, SizeZ >
using IntGenType = cIntGen< SizeX, SizeZ >
 
using Values = int[SizeX *SizeZ]
 Holds the array of values generated by this class (descendant). More...
 

Public Member Functions

 cIntGenZoom (int a_Seed, Underlying a_UnderlyingGen)
 
virtual void GetInts (int a_MinX, int a_MinZ, typename Super::Values &a_Values) override
 Generates the array of templated size into a_Values, based on given min coords. More...
 
- Public Member Functions inherited from cIntGenWithNoise< SizeX, SizeX >
 cIntGenWithNoise (int a_Seed)
 
- Public Member Functions inherited from cIntGen< SizeX, SizeZ >
virtual ~cIntGen ()
 Force a virtual destructor in all descendants. More...
 

Protected Attributes

Underlying m_UnderlyingGen
 
- Protected Attributes inherited from cIntGenWithNoise< SizeX, SizeX >
cNoise m_Noise
 

Static Protected Attributes

static const int m_LowerSizeX = (SizeX / 2) + 2
 
static const int m_LowerSizeZ = (SizeZ / 2) + 2
 

Private Types

using Super = cIntGenWithNoise< SizeX, SizeZ >
 

Additional Inherited Members

- Protected Member Functions inherited from cIntGenWithNoise< SizeX, SizeX >
int ChooseRandomOne (int a_RndX, int a_RndZ, int a_Val1, int a_Val2)
 Chooses one of a_Val1 or a_Val2, based on m_Noise and the coordinates for querying the noise. More...
 
int ChooseRandomOne (int a_RndX, int a_RndZ, int a_Val1, int a_Val2, int a_Val3, int a_Val4)
 Chooses one of a_ValN, based on m_Noise and the coordinates for querying the noise. More...
 

Detailed Description

template<int SizeX, int SizeZ = SizeX>
class cIntGenZoom< SizeX, SizeZ >

Zooms the underlying value array to twice the size.

Uses random-neighbor for the pixels in-between. This means that the zoome out image is randomly distorted. Applying zoom several times provides all the distortion that the generators need.

Definition at line 259 of file IntGen.h.

Member Typedef Documentation

◆ Super

template<int SizeX, int SizeZ = SizeX>
using cIntGenZoom< SizeX, SizeZ >::Super = cIntGenWithNoise<SizeX, SizeZ>
private

Definition at line 262 of file IntGen.h.

◆ Underlying

template<int SizeX, int SizeZ = SizeX>
using cIntGenZoom< SizeX, SizeZ >::Underlying = std::shared_ptr<cIntGen<m_LowerSizeX, m_LowerSizeZ> >

Definition at line 271 of file IntGen.h.

Constructor & Destructor Documentation

◆ cIntGenZoom()

template<int SizeX, int SizeZ = SizeX>
cIntGenZoom< SizeX, SizeZ >::cIntGenZoom ( int  a_Seed,
Underlying  a_UnderlyingGen 
)
inline

Definition at line 274 of file IntGen.h.

Member Function Documentation

◆ GetInts()

template<int SizeX, int SizeZ = SizeX>
virtual void cIntGenZoom< SizeX, SizeZ >::GetInts ( int  a_MinX,
int  a_MinZ,
typename Super::Values a_Values 
)
inlineoverridevirtual

Generates the array of templated size into a_Values, based on given min coords.

Implements cIntGen< SizeX, SizeZ >.

Definition at line 281 of file IntGen.h.

Member Data Documentation

◆ m_LowerSizeX

template<int SizeX, int SizeZ = SizeX>
const int cIntGenZoom< SizeX, SizeZ >::m_LowerSizeX = (SizeX / 2) + 2
staticprotected

Definition at line 266 of file IntGen.h.

◆ m_LowerSizeZ

template<int SizeX, int SizeZ = SizeX>
const int cIntGenZoom< SizeX, SizeZ >::m_LowerSizeZ = (SizeZ / 2) + 2
staticprotected

Definition at line 267 of file IntGen.h.

◆ m_UnderlyingGen

template<int SizeX, int SizeZ = SizeX>
Underlying cIntGenZoom< SizeX, SizeZ >::m_UnderlyingGen
protected

Definition at line 323 of file IntGen.h.


The documentation for this class was generated from the following file: