本文整理汇总了C++中Matrix44f::V方法的典型用法代码示例。如果您正苦于以下问题:C++ Matrix44f::V方法的具体用法?C++ Matrix44f::V怎么用?C++ Matrix44f::V使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Matrix44f
的用法示例。
在下文中一共展示了Matrix44f::V方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: addQDomElement
//添加元素
void FilterParameter::addQDomElement(FilterParameterSet &par, QDomElement &np)
{
QString name=np.attribute("name");
QString type=np.attribute("type");
qDebug(" Reading Param with name %s : %s",qPrintable(name),qPrintable(type));
if(type=="Bool") { par.addBool(name,np.attribute("value")!=QString("false")); return; }
if(type=="Int") { par.addInt(name,np.attribute("value").toInt()); return; }
if(type=="Float") { par.addFloat(name,np.attribute("value").toDouble()); return; }
if(type=="String") { par.addString(name,np.attribute("value")); return; }
if(type=="AbsPerc") { par.addAbsPerc(name,np.attribute("value").toFloat(),np.attribute("min").toFloat(),np.attribute("max").toFloat()); return; }
if(type=="Color") { par.addColor(name,QColor::QColor(np.attribute("rgb").toUInt())); return; }
if(type=="Matrix44")
{
Matrix44f mm;
for(int i=0;i<16;++i)
mm.V()[i]=np.attribute(QString("val")+QString::number(i)).toDouble();
par.addMatrix44(name,mm);
return;
}
if(type=="Enum")
{
QStringList list = QStringList::QStringList();
for(QDomElement ns = np.firstChildElement("EnumString"); !ns.isNull(); ns = ns.nextSiblingElement("EnumString")){
list<<ns.attribute("value");
}
par.addEnum(name,np.attribute("value").toInt(),list);
return;
}
if(type == MeshPointerName()) { par.addMesh(name, np.attribute(ValueName()).toInt()); return; }
if(type == FloatListName())
{
QList<float> values;
for(QDomElement listItem = np.firstChildElement(ItemName());
!listItem.isNull();
listItem = listItem.nextSiblingElement(ItemName()))
{
values.append(listItem.attribute(ValueName()).toFloat());
}
par.addFloatList(name,values);
return;
}
if(type == DynamicFloatName()) { par.addDynamicFloat(name, np.attribute(ValueName()).toFloat(), np.attribute(MinName()).toFloat(), np.attribute(MaxName()).toFloat(), np.attribute(MaskName()).toInt()); return; }
if(type == OpenFileNameName()) { par.addOpenFileName(name, np.attribute(ValueName())); return; }
if(type == SaveFileNameName()) { par.addSaveFileName(name, np.attribute(ValueName())); return; }
if(type=="Point3f")
{
Point3f val;
val[0]=np.attribute("x").toFloat();
val[1]=np.attribute("y").toFloat();
val[2]=np.attribute("z").toFloat();
par.addPoint3f(name, val);
return;
}
assert(0); // we are trying to parse an unknown xml element
}
示例2: p
void FilterParameterSet::addMatrix44 (QString name, Matrix44f defaultVal, QString desc, QString tooltip)
{
assert(!hasParameter(desc));
FilterParameter p(name,desc,tooltip);
QList<QVariant> matrixVals;
for(int i=0;i<16;++i)
matrixVals.append(defaultVal.V()[i]);
p.fieldVal=matrixVals;
p.fieldType=FilterParameter::PARMATRIX;
paramList.push_back(p);
}
示例3:
//对matrix类型参数的操作
Matrix44f FilterParameterSet::getMatrix44(QString name) const
{
const FilterParameter *p=findParameter(name);
assert(p);
assert(p->fieldType==FilterParameter::PARMATRIX);
assert(p->fieldVal.type()==QVariant::List);
Matrix44f matrix;
QList<QVariant> matrixVals = p->fieldVal.toList();
assert(matrixVals.size()==16);
for(int i=0;i<16;++i)
matrix.V()[i]=matrixVals[i].toDouble();
return matrix;
}
示例4: create
bool RichParameterFactory::create( const QDomElement& np,RichParameter** par )
{
QString name=np.attribute("name");
QString type=np.attribute("type");
QString desc=np.attribute("description");
QString tooltip=np.attribute("tooltip");
qDebug(" Reading Param with name %s : %s",qPrintable(name),qPrintable(type));
bool corrconv = false;
if(type=="RichBool")
{
QString val = np.attribute("value").toLower();
if ((val != QString("true")) && (val != QString("false")))
return false;
*par = new RichBool(name,np.attribute("value")!=QString("false"),desc,tooltip);
return true;
}
if(type=="RichInt")
{
int val = np.attribute("value").toInt(&corrconv);
if (!corrconv)
return false;
*par = new RichInt(name,val,desc,tooltip);
return true;
}
if(type=="RichFloat")
{
float val = np.attribute("value").toFloat(&corrconv);
if (!corrconv)
return false;
*par = new RichFloat(name,val,desc,tooltip);
return true;
}
if(type=="RichString")
{
*par = new RichString(name,np.attribute("value"),desc,tooltip);
return true;
}
if(type=="RichAbsPerc")
{
float val = np.attribute("value").toFloat(&corrconv);
if ((!corrconv) && (val >= 0.0f) && (val <= 100.0f))
return false;
float min = np.attribute("min").toFloat(&corrconv);
if (!corrconv)
return false;
float max = np.attribute("max").toFloat(&corrconv);
if (!corrconv)
return false;
*par = new RichAbsPerc(name,val,min,max,desc,tooltip);
return true;
}
if(type=="RichColor")
{
unsigned int r = np.attribute("r").toUInt(&corrconv);
if ((!corrconv) && (r <= 255))
return false;
unsigned int g = np.attribute("g").toUInt(&corrconv);
if ((!corrconv) && (g <= 255))
return false;
unsigned int b = np.attribute("b").toUInt(&corrconv);
if ((!corrconv) && (b <= 255))
return false;
unsigned int a = np.attribute("a").toUInt(&corrconv);
if ((!corrconv) && (a <= 255))
return false;
QColor col(r,g,b,a);
*par= new RichColor(name,col,desc,tooltip);
return true;
}
if(type=="RichMatrix44f")
{
Matrix44f mm;
for(int i=0;i<16;++i)
{
float val = np.attribute(QString("val")+QString::number(i)).toFloat(&corrconv);
if (!corrconv)
return false;
mm.V()[i]=val;
}
*par = new RichMatrix44f(name,mm,desc,tooltip);
return true;
}
if(type=="RichEnum")
{
QStringList list;
int enum_card = np.attribute(QString("enum_cardinality")).toUInt(&corrconv);
if (!corrconv)
return false;
for(int i=0;i<enum_card;++i)
//.........这里部分代码省略.........