本文整理汇总了C++中IParamBlock2::GetAColor方法的典型用法代码示例。如果您正苦于以下问题:C++ IParamBlock2::GetAColor方法的具体用法?C++ IParamBlock2::GetAColor怎么用?C++ IParamBlock2::GetAColor使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IParamBlock2
的用法示例。
在下文中一共展示了IParamBlock2::GetAColor方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: exportEffectParameters
void HwShaderExporter::exportEffectParameters (
StdMat2* material
)
{
COLLADASW::StreamWriter* streamWriter = &mDocumentExporter->getStreamWriter();
IParamBlock2 * pblock = material->GetParamBlock ( 0 );
int parameterCount = pblock->NumParams();
for ( int i = 0; i < parameterCount; i++ )
{
ParamID parameterID = pblock->IndextoID( i );
ParamType2 parameterType = pblock->GetParameterType( parameterID );
ParamDef parameterDef = pblock->GetParamDef( parameterID );
const TCHAR* paramName = parameterDef.int_name;
switch ( parameterType )
{
case TYPE_FLOAT:
{
COLLADASW::NewParam<> newParam ( streamWriter );
newParam.setParamType ( COLLADASW::ValueType::FLOAT );
int numOfValues = 1;
float paramValue = pblock->GetFloat( parameterID );
exportParam ( paramName, &newParam, ¶mValue, numOfValues );
break;
}
case TYPE_INT:
{
COLLADASW::NewParam<> newParam ( streamWriter );
newParam.setParamType ( COLLADASW::ValueType::INT );
int numOfValues = 1;
int paramValue = pblock->GetInt( parameterID );
exportParam ( paramName, &newParam, ¶mValue, numOfValues );
break;
}
case TYPE_RGBA:
case TYPE_FRGBA:
{
COLLADASW::NewParam<> newParam ( streamWriter );
newParam.setParamType ( COLLADASW::ValueType::FLOAT4 );
int numOfValues = 4;
AColor paramPoint3Value = pblock->GetAColor( parameterID );
float* paramValue = (float*)paramPoint3Value;
exportParam ( paramName, &newParam, paramValue, numOfValues );
break;
}
case TYPE_POINT3:
{
COLLADASW::NewParam<> newParam ( streamWriter );
newParam.setParamType ( COLLADASW::ValueType::FLOAT3 );
int numOfValues = 3;
Point3 paramPoint3Value = pblock->GetPoint3( parameterID );
float* paramValue = (float*)paramPoint3Value;
exportParam ( paramName, &newParam, paramValue, numOfValues );
break;
}
case TYPE_BOOL:
{
COLLADASW::NewParam<> newParam ( streamWriter );
newParam.setParamType ( COLLADASW::ValueType::BOOL );
int numOfValues = 1;
/*bool*/ int paramValue = pblock->GetInt( parameterID );
exportParam ( paramName, &newParam, ¶mValue, numOfValues );
break;
}
//TYPE_ANGLE
//TYPE_PCNT_FRAC
//TYPE_WORLD
case TYPE_STRING:
{
COLLADASW::NewParam<> newParam ( streamWriter );
const MCHAR * paramValue = pblock->GetStr( parameterID );
exportParam ( paramName, &newParam, paramValue );
break;
}
//.........这里部分代码省略.........
示例2: ExportUserAttributes
void MaxAWDExporter::ExportUserAttributes(Animatable *obj, AWDAttrElement *elem)
{
if (!opts->ExportAttributes())
return;
ICustAttribContainer *attributes = obj->GetCustAttribContainer();
if (attributes) {
int a=0;
int numAttribs=0;
numAttribs = attributes->GetNumCustAttribs();
for (a=0; a<numAttribs; a++) {
int k=0;
CustAttrib *attr = attributes->GetCustAttrib(a);
for (k=0; k<attr->NumParamBlocks(); k++) {
int p=0;
IParamBlock2 *block = attr->GetParamBlock(k);
if (block!=NULL){
char * blockName_ptr=W2A(block->GetLocalName());
if (ATTREQ(blockName_ptr,"AWDObjectSettingsParams") ){ }
// the next three should not occur yet, as we do not read Custom-properties on materials yet
else if (ATTREQ(blockName_ptr,"AWD_MaterialSettingsparams") ){ }
else if (ATTREQ(blockName_ptr,"AWD_EffectMethodsparams") ){ }
else if (ATTREQ(blockName_ptr,"AWDShadingParams") ){ }
else{
for (p=0; p<block->NumParams(); p++) {
ParamID pid = block->IndextoID(p);
Color col;
AColor acol;
Interval valid = FOREVER;
awd_uint16 len = 0;
AWD_field_type type = AWD_FIELD_FLOAT32;
AWD_field_ptr ptr;
ptr.v = NULL;
switch (block->GetParameterType(pid)) {
case TYPE_ANGLE:
case TYPE_PCNT_FRAC:
case TYPE_WORLD:
case TYPE_FLOAT:
type = AWD_FIELD_FLOAT64;
len = sizeof(awd_float64);
ptr.v = malloc(len);
*ptr.f64 = block->GetFloat(pid);
break;
case TYPE_TIMEVALUE:
case TYPE_INT:
type = AWD_FIELD_INT32;
len = sizeof(awd_int32);
ptr.v = malloc(len);
*ptr.i32 = block->GetInt(pid);
break;
case TYPE_BOOL:
type = AWD_FIELD_BOOL;
len = sizeof(awd_bool);
ptr.v = malloc(len);
*ptr.b = (0 != block->GetInt(pid));
break;
case TYPE_FILENAME:
case TYPE_STRING:
type = AWD_FIELD_STRING;
ptr.str = (char*)block->GetStr(pid);
len = strlen(ptr.str);
break;
case TYPE_RGBA:
type = AWD_FIELD_COLOR;
len = sizeof(awd_color);
col = block->GetColor(pid);
ptr.v = malloc(len);
*ptr.col = awdutil_float_color(col.r, col.g, col.b, 1.0);
break;
case TYPE_FRGBA:
type = AWD_FIELD_COLOR;
len = sizeof(awd_color);
acol = block->GetAColor(pid);
ptr.v = malloc(len);
*ptr.col = awdutil_float_color(acol.r, acol.g, acol.b, acol.a);
break;
}
if (ptr.v != NULL) {
ParamDef def = block->GetParamDef(pid);
if (ns == NULL) {
// Namespace has not yet been created; ns is a class
// variable that will be created only once and then
// reused for all user attributes.
char * ns_ptr=opts->AttributeNamespace();//dont free, as this will get freed in the opts delete
ns = new AWDNamespace(ns_ptr, strlen(ns_ptr));
awd->add_namespace(ns);
}
char * thisName=W2A(def.int_name);
elem->set_attr(ns, thisName, strlen(thisName)+1, ptr, len, type);
free(thisName);
//.........这里部分代码省略.........