本文整理汇总了C++中TupleList::resize方法的典型用法代码示例。如果您正苦于以下问题:C++ TupleList::resize方法的具体用法?C++ TupleList::resize怎么用?C++ TupleList::resize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TupleList
的用法示例。
在下文中一共展示了TupleList::resize方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: read_all_faces
ErrorCode ReadCCMIO::read_all_faces(CCMIOID topologyID, TupleList &vert_map,
TupleList &face_map
#ifndef TUPLE_LIST
,SenseList &sense_map
#endif
, Range *new_faces)
{
CCMIOSize_t index = CCMIOSIZEC(0);
CCMIOID faceID;
ErrorCode rval;
// get total # internal/bdy faces, size the face map accordingly
int nint_faces = 0, nbdy_faces = 0;
CCMIOSize_t nf;
CCMIOError error = kCCMIONoErr;
while (kCCMIONoErr == CCMIONextEntity(NULL, topologyID, kCCMIOBoundaryFaces, &index,
&faceID))
{
CCMIOEntitySize(&error, faceID, &nf, NULL);
nbdy_faces = nbdy_faces + nf;
}
CCMIOGetEntity(&error, topologyID, kCCMIOInternalFaces, 0, &faceID);
CCMIOEntitySize(&error, faceID, &nf, NULL);
nint_faces = nint_faces + nf;
#ifdef TUPLE_LIST
face_map.resize(2*nint_faces + nbdy_faces);
#endif
// get multiple blocks of bdy faces
index = CCMIOSIZEC(0);
while (kCCMIONoErr == CCMIONextEntity(NULL, topologyID, kCCMIOBoundaryFaces, &index,
&faceID))
{
rval = read_faces(faceID, kCCMIOBoundaryFaces, vert_map, face_map
#ifndef TUPLE_LIST
, sense_map
#endif
, new_faces);
CHKERR(rval, "Trouble reading boundary faces.");
}
// now get internal faces
CCMIOGetEntity(&error, topologyID, kCCMIOInternalFaces, 0, &faceID);
rval = read_faces(faceID, kCCMIOInternalFaces, vert_map,face_map
#ifndef TUPLE_LIST
, sense_map
#endif
, new_faces);
CHKERR(rval, "Trouble reading internal faces.");
return rval;
}
示例2: read_vertices
ErrorCode ReadCCMIO::read_vertices(CCMIOSize_t /* proc */, CCMIOID /* processorID */, CCMIOID verticesID,
CCMIOID /* topologyID */,
Range *verts, TupleList &vert_map)
{
CCMIOError error = kCCMIONoErr;
// pre-read the number of vertices, so we can pre-allocate & read directly in
CCMIOSize_t nverts = CCMIOSIZEC(0);
CCMIOEntitySize(&error, verticesID, &nverts, NULL);
CHKCCMERR(error, "Couldn't get number of vertices.");
// get # dimensions
CCMIOSize_t dims;
float scale;
CCMIOReadVerticesf(&error, verticesID, &dims, NULL, NULL, NULL, CCMIOINDEXC(0), CCMIOINDEXC(1));
CHKCCMERR(error, "Couldn't get number of dimensions.");
// allocate vertex space
EntityHandle node_handle = 0;
std::vector<double*> arrays;
readMeshIface->get_node_coords(3, GETINT32(nverts), MB_START_ID, node_handle, arrays);
// read vertex coords
CCMIOID mapID;
std::vector<double> tmp_coords(GETINT32(dims)*GETINT32(nverts));
CCMIOReadVerticesd(&error, verticesID, &dims, &scale, &mapID, &tmp_coords[0],
CCMIOINDEXC(0), CCMIOINDEXC(0+nverts));
CHKCCMERR(error, "Trouble reading vertex coordinates.");
// copy interleaved coords into moab blocked coordinate space
int i = 0, threei = 0;
for (; i < nverts; i++) {
arrays[0][i] = tmp_coords[threei++];
arrays[1][i] = tmp_coords[threei++];
if (3 == GETINT32(dims)) arrays[2][i] = tmp_coords[threei++];
else arrays[2][i] = 0.0;
}
// scale, if necessary
if (1.0 != scale) {
for(i = 0; i < nverts; i++) {
arrays[0][i] *= scale;
arrays[1][i] *= scale;
if (3 == GETINT32(dims)) arrays[2][i] *= scale;
}
}
// read gids for vertices
std::vector<int> gids(GETINT32(nverts));
CCMIOReadMap(&error, mapID, &gids[0], CCMIOINDEXC(kCCMIOStart), CCMIOINDEXC(kCCMIOEnd));
CHKCCMERR(error, "Trouble reading vertex global ids.");
// put new vertex handles into range, and set gids for them
Range new_verts(node_handle, node_handle+nverts-1);
ErrorCode rval = mbImpl->tag_set_data(mGlobalIdTag, new_verts, &gids[0]);
CHKERR(rval, "Couldn't set gids on vertices.");
// pack vert_map with global ids and handles for these vertices
#ifdef TUPLE_LIST
vert_map.resize(GETINT32(nverts));
for (i = 0; i < GETINT32(nverts); i++) {
vert_map.push_back(NULL, &gids[i], &node_handle, NULL);
#else
for (i = 0; i < GETINT32(nverts); i++) {
(vert_map[gids[i]]).push_back(node_handle);
#endif
node_handle += 1;
}
if (verts) verts->merge(new_verts);
return MB_SUCCESS;
}
ErrorCode ReadCCMIO::get_processors(CCMIOID stateID,
CCMIOID &processorID, CCMIOID &verticesID,
CCMIOID &topologyID, CCMIOID &solutionID,
std::vector<CCMIOSize_t> &procs,
bool & /* has_solution */)
{
CCMIOSize_t proc = CCMIOSIZEC(0);
CCMIOError error = kCCMIONoErr;
CCMIONextEntity(&error, stateID, kCCMIOProcessor, &proc, &processorID);
CHKCCMERR(error, NULL);
if (CCMIOReadProcessor(NULL, processorID, &verticesID,
&topologyID, NULL, &solutionID) != kCCMIONoErr) {
// Maybe no solution; try again
CCMIOReadProcessor(&error, processorID, &verticesID,
&topologyID, NULL, NULL);
hasSolution = false;
}
CHKCCMERR(error, NULL);
procs.push_back(proc);
return MB_SUCCESS;
}