示例#1
0
/*!
 * Write Field data to stream
 * @param[in] str output stream
 * @param[in] field field to be written
 */
void VTKUnstructuredGrid::writeFieldData( std::fstream &str, VTKField &field ){

    if( field.usesInterface() ){
        flushData( str, field.getCodification(), field.getName() ) ;

    } else if( field.autoWrite() ) {
        field.flushData( str ) ;

    } else{ 

        if(field.getName() == "types" && homogeneousType != VTKElementType::UNDEFINED){
            uint8_t type = (uint8_t) homogeneousType ;
            for( unsigned int i=0; i<nr_cells; ++i)
                genericIO::flushBINARY(str, type );

        } else if(field.getName() == "offsets" && homogeneousType != VTKElementType::UNDEFINED){
            uint8_t     n = vtk::getNNodeInElement(homogeneousType) ;
            uint64_t    offset(0) ;
            for( unsigned int i=0; i<nr_cells; ++i){
                offset += n ;
                genericIO::flushBINARY(str, offset );
            }

        }

    }
};
示例#2
0
/*!
 * Read Field data from stream
 * @param[in] str input stream
 * @param[in] field field to be read
 */
void VTKUnstructuredGrid::readFieldData( std::fstream &str, VTKField &field ){

    if( field.usesInterface() ){
        absorbData( str, field.getCodification(), field.getName() ) ;

    } else if( field.autoWrite() ){
        field.absorbData( str ) ;

    } else {
        //dont do nothing
    }

    return;
}