本文整理汇总了C++中Property::GetSize方法的典型用法代码示例。如果您正苦于以下问题:C++ Property::GetSize方法的具体用法?C++ Property::GetSize怎么用?C++ Property::GetSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Property
的用法示例。
在下文中一共展示了Property::GetSize方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: runtime_error
ExtMesh *Scene::CreateInlinedMesh(const string &shapeName, const string &propName, const Properties &props) {
// The mesh definition is in-lined
u_int pointsSize;
Point *points;
if (props.IsDefined(propName + ".vertices")) {
Property prop = props.Get(propName + ".vertices");
if ((prop.GetSize() == 0) || (prop.GetSize() % 3 != 0))
throw runtime_error("Wrong shape vertex list length: " + shapeName);
pointsSize = prop.GetSize() / 3;
points = TriangleMesh::AllocVerticesBuffer(pointsSize);
for (u_int i = 0; i < pointsSize; ++i) {
const u_int index = i * 3;
points[i] = Point(prop.Get<float>(index), prop.Get<float>(index + 1), prop.Get<float>(index + 2));
}
} else
throw runtime_error("Missing shape vertex list: " + shapeName);
u_int trisSize;
Triangle *tris;
if (props.IsDefined(propName + ".faces")) {
Property prop = props.Get(propName + ".faces");
if ((prop.GetSize() == 0) || (prop.GetSize() % 3 != 0))
throw runtime_error("Wrong shape face list length: " + shapeName);
trisSize = prop.GetSize() / 3;
tris = TriangleMesh::AllocTrianglesBuffer(trisSize);
for (u_int i = 0; i < trisSize; ++i) {
const u_int index = i * 3;
tris[i] = Triangle(prop.Get<u_int>(index), prop.Get<u_int>(index + 1), prop.Get<u_int>(index + 2));
}
} else {
delete[] points;
throw runtime_error("Missing shape face list: " + shapeName);
}
Normal *normals = NULL;
if (props.IsDefined(propName + ".normals")) {
Property prop = props.Get(propName + ".normals");
if ((prop.GetSize() == 0) || (prop.GetSize() / 3 != pointsSize))
throw runtime_error("Wrong shape normal list length: " + shapeName);
normals = new Normal[pointsSize];
for (u_int i = 0; i < pointsSize; ++i) {
const u_int index = i * 3;
normals[i] = Normal(prop.Get<float>(index), prop.Get<float>(index + 1), prop.Get<float>(index + 2));
}
}
UV *uvs = NULL;
if (props.IsDefined(propName + ".uvs")) {
Property prop = props.Get(propName + ".uvs");
if ((prop.GetSize() == 0) || (prop.GetSize() / 2 != pointsSize))
throw runtime_error("Wrong shape uv list length: " + shapeName);
uvs = new UV[pointsSize];
for (u_int i = 0; i < pointsSize; ++i) {
const u_int index = i * 2;
uvs[i] = UV(prop.Get<float>(index), prop.Get<float>(index + 1));
}
}
return new ExtTriangleMesh(pointsSize, trisSize, points, tris, normals, uvs);
}