本文整理汇总了C++中FilterParameterSet::getMesh方法的典型用法代码示例。如果您正苦于以下问题:C++ FilterParameterSet::getMesh方法的具体用法?C++ FilterParameterSet::getMesh怎么用?C++ FilterParameterSet::getMesh使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FilterParameterSet
的用法示例。
在下文中一共展示了FilterParameterSet::getMesh方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: applyFilter
bool FilterPerceptualMetric::applyFilter(QAction *action, MeshDocument &md, FilterParameterSet & par, vcg::CallBackPos *cb)
{
switch(ID(action))
{
case FP_ROUGHNESS_MULTISCALE :
{
MeshModel* mesh0 = par.getMesh("ReferenceMesh"); // reference mesh
MeshModel* mesh1 = par.getMesh("InputMesh"); // the processed mesh
double globalimpact = PerceptualMetrics<CMeshO>::roughnessMultiscale(mesh0->cm, mesh1->cm);
Log(0,"This metric is not implemented yet!!");
}
break;
case FP_ROUGHNESS_SMOOTHING :
{
MeshModel* mesh0 = par.getMesh("ReferenceMesh"); // reference mesh
MeshModel* mesh1 = par.getMesh("InputMesh"); // the processed mesh
double globalimpact = PerceptualMetrics<CMeshO>::roughnessSmoothing(mesh0->cm, mesh1->cm);
Log(0,"This metric is not implemented yet!!");
}
break;
case FP_STRAIN_ENERGY :
{
MeshModel* mesh0 = par.getMesh("ReferenceMesh"); // reference mesh
MeshModel* mesh1 = par.getMesh("InputMesh"); // the processed mesh
double globalimpact = PerceptualMetrics<CMeshO>::strainEnergy(mesh0->cm, mesh1->cm);
Log(0,"Perceptual Distance: %f",globalimpact);
}
break;
default : assert(0);
}
return true;
}
示例2: applyFilter
bool FilterFeatureAlignment::applyFilter(QAction *filter, MeshDocument &md, FilterParameterSet & par, vcg::CallBackPos * cb)
{
glLog=log; //assign log to a global variable. needed to write the log from everywhere in the code
//define needed typedef MeshType
typedef CMeshO MeshType;
//declare variables for parameters
int featureType, from, to, step, trials;
MeshModel *mFix, *mMov, *currMesh;
//read parameters
currMesh = md.mm(); //get current mesh from document
if(par.hasParameter("mFix")) mFix = par.getMesh("mFix"); else mFix = currMesh;
if(par.hasParameter("mMov")) mMov = par.getMesh("mMov"); else mMov = currMesh;
if(par.hasParameter("featureType")) featureType = par.getEnum("featureType"); else featureType = -1;
if(par.hasParameter("trials")) trials = par.getInt("trials"); else trials = 100;
if(par.hasParameter("from")) from = par.getInt("from"); else from = 1000;
if(par.hasParameter("to")) to = par.getInt("to"); else to = 5000;
if(par.hasParameter("step")) step = par.getInt("step"); else step = 1000;
switch(ID(filter))
{
case AF_COMPUTE_FEATURE:
{
switch(featureType){
case 0:{
typedef SmoothCurvatureFeature<MeshType, 6> FeatureType; //define needed typedef FeatureType
FeatureType::Parameters param;
FeatureType::SetupParameters(param);
return ComputeFeatureOperation<MeshType,FeatureType>(*currMesh, param, cb);
}
case 1:{
typedef APSSCurvatureFeature<MeshType, 3> FeatureType; //define needed typedef FeatureType
FeatureType::Parameters param;
FeatureType::SetupParameters(param);
return ComputeFeatureOperation<MeshType,FeatureType>(*currMesh, param, cb);
}
case 2:{
typedef FeatureRGB<MeshType, 3> FeatureType; //define needed typedef FeatureType
FeatureType::Parameters param;
FeatureType::SetupParameters(param);
return ComputeFeatureOperation<MeshType,FeatureType>(*currMesh, param, cb);
}
default: assert(0);
} //end switch(ftype)
assert(0);
} //end case AF_COMPUTE_FEATURE
case AF_EXTRACTION:
{
switch(featureType){
case 0:{
typedef SmoothCurvatureFeature<MeshType, 6> FeatureType; //define needed typedef FeatureType
typedef FeatureAlignment<MeshType, FeatureType> AlignerType; //define the Aligner class
AlignerType::Parameters alignerParam(mFix->cm, mMov->cm);
setAlignmentParameters<AlignerType>(mFix->cm, mMov->cm, par, alignerParam);
bool ok = ExtractionOperation<AlignerType>(*currMesh, alignerParam, cb);
return ok;
}
case 1:{
typedef FeatureRGB<MeshType, 3> FeatureType; //define needed typedef FeatureType
typedef FeatureAlignment<MeshType, FeatureType> AlignerType; //define the Aligner class
AlignerType::Parameters alignerParam(mFix->cm, mMov->cm);
setAlignmentParameters<AlignerType>(mFix->cm, mMov->cm, par, alignerParam);
bool ok = ExtractionOperation<AlignerType>(*currMesh, alignerParam, cb);
return ok;
}
default: assert(0);
} //end switch(ftype)
assert(0);
} //end case AF_EXTRACTION
case AF_MATCHING :
{
switch(featureType)
{
case 0:{
typedef SmoothCurvatureFeature<MeshType, 6> FeatureType; //define needed typedef FeatureType
typedef FeatureAlignment<MeshType, FeatureType> AlignerType; //define the Aligner class
typedef AlignerType::Result ResultType;
AlignerType::Parameters alignerParam(mFix->cm, mMov->cm);
setAlignmentParameters<AlignerType>(mFix->cm, mMov->cm, par, alignerParam);
ResultType res = MatchingOperation<AlignerType>(*mFix, *mMov, alignerParam, cb);
return logResult<AlignerType>(ID(filter), res, errorMessage);
}
case 1:{
typedef FeatureRGB<MeshType, 3> FeatureType; //define needed typedef FeatureType
typedef FeatureAlignment<MeshType, FeatureType> AlignerType; //define the Aligner class
typedef AlignerType::Result ResultType;
AlignerType::Parameters alignerParam(mFix->cm, mMov->cm);
setAlignmentParameters<AlignerType>(mFix->cm, mMov->cm, par, alignerParam);
ResultType res = MatchingOperation<AlignerType>(*mFix, *mMov, alignerParam, cb);
return logResult<AlignerType>(ID(filter), res, errorMessage);
}
default: assert(0);
} //end switch(ftype)
assert(0);
} //end case AF_MATCHING
case AF_RIGID_TRANSFORMATION :
{
switch(featureType)
{
//.........这里部分代码省略.........