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); }
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; }
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; }
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; }