declare namespace feng3d.war3 { /** * war3的mdl文件解析 * @author warden_feng 2014-6-14 */ class MdlParser { /** 字符串数据 */ private _textData; private static VERSION_TOKEN; private static COMMENT_TOKEN; private static MODEL; private static SEQUENCES; private static GLOBALSEQUENCES; private static TEXTURES; private static MATERIALS; private static GEOSET; private static GEOSETANIM; private static BONE; private static HELPER; /** 当前解析位置 */ private _parseIndex; /** 是否文件尾 */ private _reachedEOF; /** 当前解析行号 */ private _line; /** 当前行的字符位置 */ private _charLineIndex; constructor(); proceedParsing(_textData: string, onParseComplete?: (war3Model: War3Model) => void): void; /** * 获取骨骼深度 * @param bone * @param bones * @return */ private getBoneDepth(bone, bones); /** * 解析版本号 */ private parseVersion(); /** * 解析模型数据统计结果 */ private parseModel(); /** * 解析动作序列 */ private parseSequences(); /** * 解析全局序列 */ private parseGlobalsequences(); /** * 解析纹理列表 */ private parseTextures(); /** * 解析材质 */ private parseMaterials(); private parseGeoset(); /** * 解析骨骼动画 */ private parseBone(); /** * 解析骨骼动画 */ private parseHelper(); /** * 解析骨骼角度 */ private parseBoneScaling(boneScaling); /** * 解析骨骼角度 */ private parseBoneTranslation(boneTranslation); /** * 解析骨骼角度 */ private parseBoneRotation(boneRotation); /** * 解析多边形动画 */ private parseGeosetanim(); /** * 解析顶点 */ private parseVertices(); /** * 解析法线 */ private parseNormals(); /** * 解析纹理坐标 */ private parseTVertices(); /** * 解析顶点分组 */ private parseVertexGroup(); /** * 解析面 */ private parseFaces(); /** * 解顶点分组 */ private parseGroups(); /** * 解析纹理 */ private parseBitmap(); /** * 解析材质 */ private parseMaterial(); /** * 解析材质层 */ private parseLayer(); /** * 解析动作信息 */ private parseAnim(); /** * 解析几何体动作信息 */ private parseAnim1(); /** * 解析骨骼轴心坐标 */ private parsePivotPoints(); /** * 解析3d向量 */ private parseVector3D(); /** * 解析四元素 */ private parseVector3D4(); /** * 解析2d坐标 */ private parsePoint(); /** * 解析间隔 */ private parseInterval(); /** * 解析带双引号的字符串 */ private parseLiteralString(); /** * 读取下个Number */ private getNextNumber(); /** * 读取下个字符 */ private getNextChar(); /** * 读取下个int */ private getNextInt(); /** * 获取下个关键字 */ private getNextToken(); /** * 跳过块 * @return 跳过的内容 */ private jumpChunk(); /** * 返回到上个字符位置 */ private putBack(); /** * 跳过空白 */ private skipWhiteSpace(); /** * 忽略该行 */ private ignoreLine(); private check(key); /** * 抛出一个文件尾过早结束文件时遇到错误 */ private sendEOFError(); /** * 遇到了一个意想不到的令牌时将抛出一个错误。 * @param expected 发生错误的标记 */ private sendParseError(expected); /** * 发生未知关键字错误 */ private sendUnknownKeywordError(keyword); } }