Luanti 5.15.0-dev
 
Loading...
Searching...
No Matches
face_position_cache.h
Go to the documentation of this file.
1// Luanti
2// SPDX-License-Identifier: LGPL-2.1-or-later
3// Copyright (C) 2015 Nerzhul, Loic Blot <loic.blot@unix-experience.fr>
4
5#pragma once
6
7#include "irr_v3d.h"
8
9#include <vector>
10#include <unordered_map>
11#include <mutex>
12
13/*
14 * This class permits caching getFacePosition call results.
15 * This reduces CPU usage and vector calls.
16 */
18public:
19 static const std::vector<v3s16> &getFacePositions(u16 d);
20
21private:
22 static const std::vector<v3s16> &generateFacePosition(u16 d);
23 static std::unordered_map<u16, std::vector<v3s16>> cache;
24 static std::mutex cache_mutex;
25};
Definition face_position_cache.h:17
static const std::vector< v3s16 > & getFacePositions(u16 d)
Definition face_position_cache.cpp:13
static const std::vector< v3s16 > & generateFacePosition(u16 d)
Definition face_position_cache.cpp:23
static std::unordered_map< u16, std::vector< v3s16 > > cache
Definition face_position_cache.h:23
static std::mutex cache_mutex
Definition face_position_cache.h:24