/** If the DataOutputStream parameter is NULL, write to the _records member variable. Otherwise, write to the specified DataOutputStream. */ void FltExportVisitor::writeComment( const osg::Node& node, DataOutputStream* dos ) { if (dos==NULL) dos = _records; // Write all descriptions as Comment records. unsigned int nd = node.getNumDescriptions(); unsigned int idx=0; while( idx < nd ) { const std::string& com = node.getDescription( idx ); unsigned int iLen = com.length() + 5; if (iLen > 0xffff) { // short overrun std::string warning( "fltexp: writeComment: Descriptions too long, resorts in short overrun. Skipping." ); _fltOpt->getWriteResult().warn( warning ); OSG_WARN << warning << std::endl; continue; } uint16 length( (uint16)iLen ); dos->writeInt16( (int16) COMMENT_OP ); dos->writeInt16( length ); dos->writeString( com ); idx++; } }