示例#1
0
char HAdaptiveField::load(AdaptiveField * fld)
{
    int nc = 1;
    readIntAttr(".ncells", &nc);

    float originSpan[4];
    readFloatAttr(".origin_span", originSpan);

    int ml = 7;
    readIntAttr(".max_level", &ml);

    fld->setBounding(originSpan);
    fld->setMaxLevel(ml);

    BaseBuffer dhash;
    dhash.create(nc * 16);
    readCharData(".cellHash", nc*16, dhash.data());

    IOCellHash * src = (IOCellHash *)dhash.data();
    std::cout<<"\n hadaptive field add n cells "<<nc;
    unsigned i = 0;
    for(; i<nc; i++) {
        fld->addCell(src->code, src->level, src->visited, src->index);
        src++;
    }
    std::cout<<"\n hadaptive field done load";
    return HField::load(fld);
}
示例#2
0
void HAnimationCurve::loadKeys(AAnimationCurve * curve, int n)
{
	if(n<1) return;
	AAnimationKey * data = new AAnimationKey[n];
	readCharData(".key_data", n * sizeof(AAnimationKey), (char *)data);
	int i=0;
	for(;i<n;i++) curve->addKey(data[i]);
	delete[] data;
}
示例#3
0
文件: HMesh.cpp 项目: spinos/aphid
char HMesh::loadFaceTag(BaseMesh * mesh, const std::string & tagName, const std::string & dataName)
{
	char * g = mesh->perFaceTag(tagName);
	if(hasNamedData(dataName.c_str())) {
		readCharData(dataName.c_str(),  mesh->getNumFaces(), g);
	}
	else {
		std::cout<<"WARNING: reset face tag "<<tagName;
		for(unsigned i =0; i < mesh->getNumFaces(); i++) g[i] = 1;
	}
	return 1;
}
示例#4
0
char HNumericBundle::load(ABundleAttribute * d)
{
	int nt = 0;
	readIntAttr(".bundle_num_typ", &nt);
	
	int sz = 0;
	readIntAttr(".bundle_sz", &sz);
	
	ANumericAttribute::NumericAttributeType dt = ANumericAttribute::TUnkownNumeric;
	if( nt == ANumericAttribute::TByteNumeric ) {
		dt = ANumericAttribute::TByteNumeric;
	}
	else if( nt == ANumericAttribute::TShortNumeric ) {
		dt = ANumericAttribute::TShortNumeric;
	}
	else if( nt == ANumericAttribute::TIntNumeric ) {
		dt = ANumericAttribute::TIntNumeric;
	}
	else if( nt == ANumericAttribute::TFloatNumeric ) {
		dt = ANumericAttribute::TIntNumeric;
	}
	else if( nt == ANumericAttribute::TDoubleNumeric ) {
		dt = ANumericAttribute::TDoubleNumeric;
	}
	else if( nt == ANumericAttribute::TBooleanNumeric ) {
		dt = ANumericAttribute::TBooleanNumeric;
	}
	
	if(dt == ANumericAttribute::TUnkownNumeric)
	    return 0;
	
	d->create(sz, dt);
	
	int l = d->dataLength();
	readCharData(".raw", l, d->value() );
	
	std::string lnm;
	readStringAttr(".longname", lnm);
	
	d->setLongName(lnm);
	d->setShortName(lastName());

    return 1;
}