本文整理汇总了C++中ParamSet::FindString方法的典型用法代码示例。如果您正苦于以下问题:C++ ParamSet::FindString方法的具体用法?C++ ParamSet::FindString怎么用?C++ ParamSet::FindString使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParamSet
的用法示例。
在下文中一共展示了ParamSet::FindString方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: empReader
NaiadFoam::NaiadFoam(const Transform *o2w, const Transform *w2o,
bool ro, const ParamSet ¶ms): Shape(o2w, w2o, ro) {
Nb::begin();
int nFoamEmps;
const string * empStr = params.FindString("emp", &nFoamEmps);
const string * bodyStr = params.FindString("body", &nFoamEmps);
for (int i = 0; i < nFoamEmps; ++i) {
Nb::EmpReader empReader(empStr[i].c_str(),"*");
const Nb::Body * body = empReader.ejectBody(bodyStr[i].c_str());
const Nb::ParticleShape & particle = body->constParticleShape();
bb = BBox(Point(particle.min().v[0],
particle.min().v[1],
particle.min().v[2]),
Point(particle.max().v[0],
particle.max().v[1],
particle.max().v[2]));
//Total amount of particles
const int64_t nParticles = particle.size();
printf("Found %i particles in %s\n", nParticles, empStr[i].c_str());
//Number of blocks
const int nBlocks = particle.constBlocks3f(0).block_count();
for (int64_t blockIdx = 0; blockIdx < nBlocks; ++blockIdx) {
boxes.push_back(new NaiadFoamBox(o2w,w2o,ro,this,particle,blockIdx));
}
}
foamPlane = new std::vector<float>(441000,0);
FoamInLowerBound = params.FindOneFloat("FoamInLowerBound",0.f);
FoamInUpperBound = params.FindOneFloat("FoamInUpperLowerBound",255.f);
FoamInGamma = params.FindOneFloat("FoamInGamma",1.f);
FoamOutLowerBound = params.FindOneFloat("FoamOutUpperLowerBound",0.f);
FoamOutUpperBound = params.FindOneFloat("FoamOutUpperLowerBound",255.f);
printf("%f %f %f %f %f\n", FoamInLowerBound, FoamInUpperBound, FoamInGamma, FoamOutLowerBound, FoamOutUpperBound);
cur = this;
}
示例2: Shape
void Context::Shape(const string &n, const ParamSet ¶ms) {
VERIFY_WORLD("Shape");
renderFarm->send("luxShape", n, params);
const u_int sIdx = shapeNo++;
u_int nItems;
const string *sn = params.FindString("name", &nItems);
if (!sn || *sn == "") {
// generate name based on shape type and declaration index
std::stringstream ss("");
ss << "#" << sIdx << " (" << n << ")";
const string sname = ss.str();
const_cast<ParamSet &>(params).AddString("name", &sname);
} else if (sn) {
const string sname = "'" + *sn + "'";
const_cast<ParamSet &>(params).AddString("name", &sname);
}
boost::shared_ptr<lux::Shape> sh(MakeShape(n, curTransform.StaticTransform(),
graphicsState->reverseOrientation, params));
if (!sh)
return;
params.ReportUnused();
// Lotus - Set the material
if (graphicsState->material)
sh->SetMaterial(graphicsState->material);
else {
boost::shared_ptr<lux::Material> m(MakeMaterial("matte",
curTransform.StaticTransform(), ParamSet()));
sh->SetMaterial(m);
}
sh->SetExterior(graphicsState->exterior);
sh->SetInterior(graphicsState->interior);
// Create primitive and add to scene or current instance
if (renderOptions->currentInstanceRefined) {
if (graphicsState->areaLight != "") {
LOG(LUX_WARNING,LUX_UNIMPLEMENT)<<"Area lights not supported with object instancing";
/* // Lotus - add a decorator to set the arealight field
boost::shared_ptr<Primitive> prim(
new AreaLightPrimitive(pr, area));
if (!prim->CanIntersect())
prim->Refine(*(renderOptions->currentInstance),
PrimitiveRefinementHints(false), prim);
else
renderOptions->currentInstance->push_back(prim);
// Add area light for primitive to light vector
renderOptions->currentLightInstance->push_back(area);*/
} /*else*/ {
renderOptions->currentInstanceSource->push_back(sh);
if (!sh->CanIntersect())
sh->Refine(*(renderOptions->currentInstanceRefined),
PrimitiveRefinementHints(false), sh);
else
renderOptions->currentInstanceRefined->push_back(sh);
}
} else if (graphicsState->areaLight != "") {
u_int lg = GetLightGroup();
AreaLight *area = MakeAreaLight(graphicsState->areaLight,
curTransform.StaticTransform(),
graphicsState->areaLightParams, sh);
if (area) {
area->group = lg;
area->SetVolume(graphicsState->exterior); //unused
}
// Lotus - add a decorator to set the arealight field
boost::shared_ptr<Primitive> pr(sh);
boost::shared_ptr<Primitive> prim(new AreaLightPrimitive(pr,
area));
renderOptions->primitives.push_back(prim);
// Add area light for primitive to light vector
renderOptions->lights.push_back(area);
} else
renderOptions->primitives.push_back(sh);
}