本文整理汇总了C++中Batch::addVertex方法的典型用法代码示例。如果您正苦于以下问题:C++ Batch::addVertex方法的具体用法?C++ Batch::addVertex怎么用?C++ Batch::addVertex使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Batch
的用法示例。
在下文中一共展示了Batch::addVertex方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: model
Model* DAEFile::model(unsigned int label) {
domCOLLADA::domSceneRef scene = root->getScene();
domVisual_scene* vscene = daeSafeCast<domVisual_scene>(scene->getInstance_visual_scene()->getUrl().getElement());
Model* model = new Model(label);
domNode_Array nodeArray = vscene->getNode_array();
size_t nodeCount = nodeArray.getCount();
for (int nodei = 0; nodei < nodeCount; nodei++) {
domNodeRef domNode = nodeArray.get(nodei);
DAENode node = DAENode(domNode);
Batch* batch = new Batch();
batch->setScale(node.scale());
if (!node.geometry().material().hasTexture()) {
glm::vec4 diffuse = node.geometry().material().diffuse();
batch->setDiffuse(diffuse.r, diffuse.g, diffuse.b, diffuse.a);
} else {
batch->setTexture(node.geometry().material().diffuseTexture().filename());
}
DAEGeometry::VertexList vertices = node.geometry().vertices();
for (DAEGeometry::VertexList::iterator i = vertices.begin(); i != vertices.end(); ++i) {
batch->addVertex((*i).x, (*i).y, (*i).z);
}
DAEGeometry::VertexList normals = node.geometry().normals();
for (DAEGeometry::VertexList::iterator i = normals.begin(); i != normals.end(); ++i) {
batch->addNormal((*i).x, (*i).y, (*i).z);
}
DAEGeometry::VertexList texels = node.geometry().texels();
for (DAEGeometry::VertexList::iterator i = texels.begin(); i != texels.end(); ++i) {
batch->addTexel((*i).s, (*i).t);
}
batch->finalize();
model->addBatch(batch);
}
return model;
};