summaryrefslogtreecommitdiff
path: root/assetFactory/modelFactoryMesh.cpp
blob: 3d4b5f31e4d3b3b2065fcea4877619085a28e5b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "modelFactoryMesh.h"

ModelFactoryMesh::ModelFactoryMesh()
{
	add_property(smoothFaceProperty);
	add_property(materialFaceProperty);
	add_property(nameFaceProperty);
	add_property(nameAdjFaceProperty);
}

void
ModelFactoryMesh::configNamedFace(const std::string & name, OpenMesh::FaceHandle handle)
{
	property(nameFaceProperty, handle) = name;
	const auto halfEdges = fh_range(handle);
	for (const auto & he : halfEdges) {
		if (auto ofh = opposite_face_handle(he); ofh.is_valid()) {
			property(nameAdjFaceProperty, he) = property(nameFaceProperty, ofh);
		}
		if (auto oheh = opposite_halfedge_handle(he); oheh.is_valid()) {
			property(nameAdjFaceProperty, oheh) = name;
		}
	}
}