light: add FacesUsingVert

This commit is contained in:
Eric Wasylishen 2017-11-19 23:47:29 -07:00
parent 84b493d7d2
commit 501fb9ee40
2 changed files with 11 additions and 0 deletions

View File

@ -46,6 +46,7 @@ const bsp2_dface_t *Face_EdgeIndexSmoothed(const mbsp_t *bsp, const bsp2_dface_t
/// a directed edge can be used by more than one face, e.g. two cube touching just along an edge /// a directed edge can be used by more than one face, e.g. two cube touching just along an edge
using edgeToFaceMap_t = std::map<std::pair<int,int>, std::vector<const bsp2_dface_t *>>; using edgeToFaceMap_t = std::map<std::pair<int,int>, std::vector<const bsp2_dface_t *>>;
std::vector<const bsp2_dface_t *> FacesUsingVert(int vertnum);
const edgeToFaceMap_t &GetEdgeToFaceMap(); const edgeToFaceMap_t &GetEdgeToFaceMap();
class face_cache_t { class face_cache_t {

View File

@ -76,6 +76,16 @@ static map<int, vector<const bsp2_dface_t *>> planesToFaces;
static edgeToFaceMap_t EdgeToFaceMap; static edgeToFaceMap_t EdgeToFaceMap;
static vector<face_cache_t> FaceCache; static vector<face_cache_t> FaceCache;
vector<const bsp2_dface_t *> FacesUsingVert(int vertnum)
{
const auto &vertsToFaces_const = vertsToFaces;
auto it = vertsToFaces_const.find(vertnum);
if (it != vertsToFaces_const.end())
return it->second;
return {};
}
const edgeToFaceMap_t &GetEdgeToFaceMap() const edgeToFaceMap_t &GetEdgeToFaceMap()
{ {
Q_assert(s_builtPhongCaches); Q_assert(s_builtPhongCaches);