Wang Tiling
A Simple Wang Tiling Generator
WangTiler.h
Go to the documentation of this file.
1
3
4// MIT License
5//
6// Copyright (c) 2020 Ian Parberry
7//
8// Permission is hereby granted, free of charge, to any person obtaining a copy
9// of this software and associated documentation files (the "Software"), to
10// deal in the Software without restriction, including without limitation the
11// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
12// sell copies of the Software, and to permit persons to whom the Software is
13// furnished to do so, subject to the following conditions:
14//
15// The above copyright notice and this permission notice shall be included in
16// all copies or substantial portions of the Software.
17//
18// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
24// IN THE SOFTWARE.
25
26#ifndef __WANGTILER_H__
27#define __WANGTILER_H__
28
29#include "Windows.h"
30#include <random>
31
36
38 private:
39 UINT** m_nTile = nullptr;
40
41 size_t m_nWidth = 0;
42 size_t m_nHeight = 0;
43
44 std::default_random_engine m_stdRandom;
45
46 UINT Match(UINT x, UINT y);
47
48 public:
49 CWangTiler(size_t w, size_t h);
50 ~CWangTiler();
51
52 void Generate();
53
54 const size_t GetWidth() const;
55 const size_t GetHeight() const;
56
57 const size_t operator()(size_t i, size_t j) const;
58}; //CWangTiler
59
60#endif //__WANGTILER_H__
Wang tiler.
Definition: WangTiler.h:37
void Generate()
Generate tiling.
Definition: WangTiler.cpp:72
const size_t GetHeight() const
Get height in tiles.
Definition: WangTiler.cpp:107
const size_t GetWidth() const
Get width in tiles.
Definition: WangTiler.cpp:100
UINT ** m_nTile
Array of tile indices.
Definition: WangTiler.h:39
~CWangTiler()
Destructor.
Definition: WangTiler.cpp:52
std::default_random_engine m_stdRandom
Pseudo-random number generator.
Definition: WangTiler.h:44
UINT Match(UINT x, UINT y)
Choose random tile.
Definition: WangTiler.cpp:64
const size_t operator()(size_t i, size_t j) const
Get tile index.
Definition: WangTiler.cpp:93
size_t m_nHeight
Array height in tiles.
Definition: WangTiler.h:42
size_t m_nWidth
Array width in tiles.
Definition: WangTiler.h:41
CWangTiler(size_t w, size_t h)
Constructor.
Definition: WangTiler.cpp:37