Beispiel #1
0
NiTriBasedGeom * GetTriBasedGeomByHeadPart(BSFaceGenNiNode * faceNode, BGSHeadPart * headPart)
{
	for (UInt32 p = 0; p < faceNode->m_children.m_size; p++)
	{
		NiAVObject * object = faceNode->m_children.m_data[p];
		if (object && BSFixedString(object->m_name) == headPart->partName) {
			NiTriBasedGeom * geometry = object->GetAsNiTriBasedGeom();
			if (geometry) {
				return geometry;
			}
		}
	}

	return NULL;
}
Beispiel #2
0
NiTriBasedGeom * GetHeadTriBasedGeom(Actor * actor, UInt32 partType)
{
	BSFaceGenNiNode * faceNode = actor->GetFaceGenNiNode();
	TESNPC * actorBase = DYNAMIC_CAST(actor->baseForm, TESForm, TESNPC);

	if(faceNode && actorBase) {
		BGSHeadPart * facePart = actorBase->GetCurrentHeadPartByType(partType);
		if(facePart) {
			NiAVObject * headNode = faceNode->GetObjectByName(&facePart->partName.data);
			if(headNode) {
				NiTriBasedGeom * geometry = headNode->GetAsNiTriBasedGeom();
				if(geometry)
					return geometry;
			}
		}
	}

	return NULL;
}