本文整理汇总了C++中Geometry::SetWeights方法的典型用法代码示例。如果您正苦于以下问题:C++ Geometry::SetWeights方法的具体用法?C++ Geometry::SetWeights怎么用?C++ Geometry::SetWeights使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Geometry
的用法示例。
在下文中一共展示了Geometry::SetWeights方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CreateModelPart
ModelPart* AssimpModelImporter::CreateModelPart(aiMesh* mesh) const {
vector<Vector3f> positions = ExtractPositions(mesh);
vector<Vector3f> normals = ExtractNormals(mesh);
vector<Vector2f> texCoords = ExtractTexCoords(mesh, 0);
vector<Vector4i> joints;
vector<Vector4f> weights;
vector<ModelPartBone> bones;
ExtractJointsAndWeights(mesh, joints, weights, bones);
vector<U32> indices = ExtractIndices(mesh);
Geometry* geometry = new Geometry();
geometry->SetPositions(begin(positions), end(positions));
geometry->SetNormals(begin(normals), end(normals));
geometry->SetTexCoords(begin(texCoords), end(texCoords));
geometry->SetJoints(begin(joints), end(joints));
geometry->SetWeights(begin(weights), end(weights));
geometry->SetIndices(begin(indices), end(indices), D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
VertexData* vertexData = nullptr;
if (scene->HasAnimations()) {
vertexData = new VertexData(P0N0T0A0Builder(geometry));
} else {
vertexData = new VertexData(P0N0T0Builder(geometry));
}
string meshName = mesh->mName.C_Str();
if (meshName.empty()) {
meshName = FindNodeName(FindMeshIndex(mesh));
}
ModelPart* modelPart = new ModelPart(meshName, vertexData, GetMaterialByName(meshName), geometry->GetTriangles(), bones);
return modelPart;
}