本文整理汇总了C++中UList类的典型用法代码示例。如果您正苦于以下问题:C++ UList类的具体用法?C++ UList怎么用?C++ UList使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了UList类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetPSFonts
void PostScriptView::ConstProcs (ostream& out) {
UList* fonts = GetPSFonts();
int nfonts = Count(fonts);
out << "/IdrawDict " << (50 + nfonts) << " dict def\n";
out << "IdrawDict begin\n\n";
if (nfonts > 0) {
for (const char** line = reencodeISO; *line != nil; ++line) {
out << *line << "\n";
}
for (UList* u = fonts->First(); u != fonts->End(); u = u->Next()) {
PSFont* font = GetFont(u);
// No way to check if the X font's encoding is iso8859-1, so...
if (strncmp(font->GetPrintFont(), "Symbol", 6) != 0) {
out << "/" << font->GetPrintFont() << " reencodeISO def\n";
} else {
out << "/" << font->GetPrintFont() << " dup findfont def\n";
}
}
out << "\n";
}
out << "/none null def\n";
out << "/numGraphicParameters 17 def\n";
out << "/stringLimit 65535 def\n\n";
}
示例2: abort
void Foam::syncTools::swapBoundaryCellPositions
(
const polyMesh& mesh,
const UList<point>& cellData,
List<point>& neighbourCellData
)
{
if (cellData.size() != mesh.nCells())
{
FatalErrorInFunction
<< "Number of cell values " << cellData.size()
<< " is not equal to the number of cells in the mesh "
<< mesh.nCells() << abort(FatalError);
}
const polyBoundaryMesh& patches = mesh.boundaryMesh();
label nBnd = mesh.nFaces()-mesh.nInternalFaces();
neighbourCellData.setSize(nBnd);
forAll(patches, patchI)
{
const polyPatch& pp = patches[patchI];
const labelUList& faceCells = pp.faceCells();
forAll(faceCells, i)
{
label bFaceI = pp.start()+i-mesh.nInternalFaces();
neighbourCellData[bFaceI] = cellData[faceCells[i]];
}
}
示例3: ParentType
Foam::UnsortedMeshedSurface<Face>::UnsortedMeshedSurface
(
const Xfer< pointField >& pointLst,
const Xfer< List<Face> >& faceLst,
const UList<label>& zoneSizes,
const UList<word>& zoneNames
)
:
ParentType(pointLst, faceLst)
{
if (zoneSizes.size())
{
if (zoneNames.size())
{
setZones(zoneSizes, zoneNames);
}
else
{
setZones(zoneSizes);
}
}
else
{
setOneZone();
}
}
示例4: if
void Foam::processorLduInterface::receive
(
const Pstream::commsTypes commsType,
UList<Type>& f
) const
{
if (commsType == Pstream::blocking || commsType == Pstream::scheduled)
{
IPstream::read
(
commsType,
neighbProcNo(),
reinterpret_cast<char*>(f.begin()),
f.byteSize(),
tag()
);
}
else if (commsType == Pstream::nonBlocking)
{
memcpy(f.begin(), receiveBuf_.begin(), f.byteSize());
}
else
{
FatalErrorIn("processorLduInterface::receive")
<< "Unsupported communications type " << commsType
<< exit(FatalError);
}
}
示例5: if
bool Foam::UList<T>::operator<(const UList<T>& a) const
{
for
(
const_iterator vi = begin(), ai = a.begin();
vi < end() && ai < a.end();
vi++, ai++
)
{
if (*vi < *ai)
{
return true;
}
else if (*vi > *ai)
{
return false;
}
}
if (this->size_ < a.size_)
{
return true;
}
else
{
return false;
}
}
示例6: Sort
void Selection::Sort (GraphicView* views) {
/*
* Note: this doesn't work if there are views in the selection from more than
* one GraphicViews.
*/
Iterator i;
UList* cur;
UList* newList = new UList;
views->First(i);
while (!views->Done(i) && !_ulist->IsEmpty()) {
cur = _ulist->First();
while (cur != _ulist->End()) {
if (views->GetView(i) == View(cur)) {
_ulist->Remove(cur);
newList->Append(cur);
break;
} else {
cur = cur->Next();
}
}
views->Next(i);
}
if (!_ulist->IsEmpty()) {
cerr << "warning: selection contained spurious element(s)\n";
}
delete _ulist;
_ulist = newList;
}
示例7: point
void Foam::boundBox::calculate(const UList<point>& points, const bool doReduce)
{
if (points.empty())
{
min_ = Zero;
max_ = Zero;
if (doReduce && Pstream::parRun())
{
// Use values that get overwritten by reduce minOp, maxOp below
min_ = point(VGREAT, VGREAT, VGREAT);
max_ = point(-VGREAT, -VGREAT, -VGREAT);
}
}
else
{
min_ = points[0];
max_ = points[0];
for (label i = 1; i < points.size(); i++)
{
min_ = ::Foam::min(min_, points[i]);
max_ = ::Foam::max(max_, points[i]);
}
}
// Reduce parallel information
if (doReduce)
{
reduce(min_, minOp<point>());
reduce(max_, maxOp<point>());
}
}
示例8: abort
void Foam::AMIInterpolation::interpolateToTarget
(
const UList<Type>& fld,
const CombineOp& cop,
List<Type>& result,
const UList<Type>& defaultValues
) const
{
if (fld.size() != srcAddress_.size())
{
FatalErrorInFunction
<< "Supplied field size is not equal to source patch size" << nl
<< " source patch = " << srcAddress_.size() << nl
<< " target patch = " << tgtAddress_.size() << nl
<< " supplied field = " << fld.size()
<< abort(FatalError);
}
if (lowWeightCorrection_ > 0)
{
if (defaultValues.size() != tgtAddress_.size())
{
FatalErrorInFunction
<< "Employing default values when sum of weights falls below "
<< lowWeightCorrection_
<< " but supplied default field size is not equal to target "
<< "patch size" << nl
<< " default values = " << defaultValues.size() << nl
<< " target patch = " << tgtAddress_.size() << nl
<< abort(FatalError);
}
}
result.setSize(tgtAddress_.size());
if (singlePatchProc_ == -1)
{
const mapDistribute& map = srcMapPtr_();
List<Type> work(fld);
map.distribute(work);
forAll(result, facei)
{
if (tgtWeightsSum_[facei] < lowWeightCorrection_)
{
result[facei] = defaultValues[facei];
}
else
{
const labelList& faces = tgtAddress_[facei];
const scalarList& weights = tgtWeights_[facei];
forAll(faces, i)
{
cop(result[facei], facei, work[faces[i]], weights[i]);
}
}
}
}
示例9: boundBox
// Construct as the bounding box of the given pointField
Foam::treeBoundBox::treeBoundBox
(
const UList<point>& points,
const UList<label>& meshPoints
)
:
boundBox()
{
if (points.empty() || meshPoints.empty())
{
WarningIn
(
"treeBoundBox::treeBoundBox"
"(const UList<point>&, const UList<label>&)"
) << "cannot find bounding box for zero-sized pointField"
<< "returning zero" << endl;
return;
}
min() = points[meshPoints[0]];
max() = points[meshPoints[0]];
for (label i = 1; i < meshPoints.size(); i++)
{
min() = ::Foam::min(min(), points[meshPoints[i]]);
max() = ::Foam::max(max(), points[meshPoints[i]]);
}
}
示例10: forAll
void Foam::fileFormats::OFSsurfaceFormatCore::writeHeader
(
Ostream& os,
const pointField& pointLst,
const UList<surfZone>& zoneLst
)
{
// just emit some information until we get a nice IOobject
IOobject::writeBanner(os)
<< "// OpenFOAM Surface Format - written "
<< clock::dateTime().c_str() << nl
<< "// ~~~~~~~~~~~~~~~~~~~~~~~" << nl << nl
<< "// surfZones:" << nl;
// treat a single zone as being unzoned
if (zoneLst.size() <= 1)
{
os << "0" << token::BEGIN_LIST << token::END_LIST << nl << nl;
}
else
{
os << zoneLst.size() << nl << token::BEGIN_LIST << incrIndent << nl;
forAll(zoneLst, zoneI)
{
zoneLst[zoneI].writeDict(os);
}
os << decrIndent << token::END_LIST << nl << nl;
}
示例11: sumProd
scalar sumProd(const UList<scalar>& f1, const UList<scalar>& f2)
{
if (f1.size() && (f1.size() == f2.size()))
{
scalar SumProd = 0.0;
TFOR_ALL_S_OP_F_OP_F(scalar, SumProd, +=, scalar, f1, *, scalar, f2)
return SumProd;
}
示例12: Count
static int Count (UList* list) {
int i = 0;
for (UList* u = list->First(); u != list->End(); u = u->Next()) {
++i;
}
return i;
}
示例13: if
void Foam::processorLduInterface::send
(
const Pstream::commsTypes commsType,
const UList<Type>& f
) const
{
label nBytes = f.byteSize();
if
(
commsType == Pstream::commsTypes::blocking
|| commsType == Pstream::commsTypes::scheduled
)
{
OPstream::write
(
commsType,
neighbProcNo(),
reinterpret_cast<const char*>(f.begin()),
nBytes,
tag(),
comm()
);
}
else if (commsType == Pstream::commsTypes::nonBlocking)
{
resizeBuf(receiveBuf_, nBytes);
IPstream::read
(
commsType,
neighbProcNo(),
receiveBuf_.begin(),
nBytes,
tag(),
comm()
);
resizeBuf(sendBuf_, nBytes);
memcpy(sendBuf_.begin(), f.begin(), nBytes);
OPstream::write
(
commsType,
neighbProcNo(),
sendBuf_.begin(),
nBytes,
tag(),
comm()
);
}
else
{
FatalErrorInFunction
<< "Unsupported communications type " << int(commsType)
<< exit(FatalError);
}
}
示例14: Uncollected
static boolean Uncollected (const char* name, UList* fonts) {
for (UList* u = fonts->First(); u != fonts->End(); u = u->Next()) {
PSFont* font = (PSFont*) (*u)();
if (strcmp(font->GetPrintFont(), name) == 0) {
return false;
}
}
return true;
}
示例15: FindView
OverlayView* OverlayComp::FindView (Viewer* viewer) {
if (!_views) return nil;
for (UList* u = _views->First(); u != _views->End(); u = u->Next()) {
ComponentView* compview = View(u);
if (compview->IsA(OVERLAY_VIEW) &&
((OverlayView*)compview)->GetViewer() == viewer)
return (OverlayView*)compview;
}
return nil;
}