1,优化URL报错,2,更新OFD组件 3,美化Excel 4,文本方法关闭字节流 5,新增多种类型文件预览 (#419)
1,优化URL报错 2,更新OFD组件 3,美化Excel 4,文本方法关闭字节流 5,新增xmind、eml、epub、"obj", "3ds", "stl", "ply", "off", "3dm", "fbx", "dae", "wrl", "3mf", "ifc","glb","o3dv","gltf","stp","bim","fcstd","step","iges","brep"格式 Co-authored-by: gaoxiongzaq <admin@cxcp.com>
@@ -237,6 +237,15 @@ ofd 类型文件支持版本,本次版本重要功能均由社区开发贡献
|
||||
1. 新增spring boot profile,支持多环境配置
|
||||
1. 引入pdf.js预览doc等文件,支持doc标题生成pdf预览菜单,支持手机端预览
|
||||
|
||||
|
||||
### 关于引用
|
||||
ofd 引用于 [ofdview ](https://gitee.com/cnofd/ofdview ) 开源协议 Apache-2.0
|
||||
CAD 引用于 aspose-cad 测试版本 商用请自行购买
|
||||
xmind 引用于 [ xmind-embed-viewer](https://github.com/xmindltd/xmind-embed-viewer) 开源协议 MIT
|
||||
epub 引用于 [ epub.js](https://github.com/futurepress/epub.js) 开源协议 BSD许可证
|
||||
压缩包 引用于 [sevenzipjbinding](https://github.com/borisbrodski/sevenzipjbinding )开源协议LGPL
|
||||
3D 引用于 [Online3DViewer](https://github.com/kovacsv/Online3DViewer )开源协议MIT
|
||||
|
||||
### 使用登记
|
||||
如果这个项目解决了你的实际问题,可在 https://gitee.com/kekingcn/file-online-preview/issues/IGSBV
|
||||
登记下,如果节省了你的三方预览服务费用,也愿意支持下的话,可点击下方【捐助】请作者喝杯咖啡,也是非常感谢
|
||||
|
||||
5
pom.xml
@@ -11,7 +11,7 @@
|
||||
<properties>
|
||||
<java.version>1.8</java.version>
|
||||
|
||||
<jodconverter.version>4.4.4</jodconverter.version>
|
||||
<jodconverter.version>4.4.5</jodconverter.version>
|
||||
<spring.boot.version>2.4.2</spring.boot.version>
|
||||
<poi.version>5.2.2</poi.version>
|
||||
<xdocreport.version>1.0.6</xdocreport.version>
|
||||
@@ -19,7 +19,6 @@
|
||||
<junrar.version>7.4.1</junrar.version>
|
||||
<redisson.version>3.2.0</redisson.version>
|
||||
<sevenzipjbinding.version>16.02-2.01</sevenzipjbinding.version>
|
||||
<tukaani.version>1.8</tukaani.version>
|
||||
<jchardet.version>1.0</jchardet.version>
|
||||
<antlr.version>2.7.7</antlr.version>
|
||||
<concurrentlinkedhashmap.version>1.4.2</concurrentlinkedhashmap.version>
|
||||
@@ -38,7 +37,7 @@
|
||||
<commons-cli.version>1.2</commons-cli.version>
|
||||
<commons-net.version>3.6</commons-net.version>
|
||||
<commons-lang3.version>3.7</commons-lang3.version>
|
||||
<commons-compress.version>1.21</commons-compress.version>
|
||||
|
||||
|
||||
<maven.compiler.source>${java.version}</maven.compiler.source>
|
||||
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||
|
||||
@@ -112,25 +112,12 @@
|
||||
<artifactId>redisson</artifactId>
|
||||
<version>${redisson.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- 解压(apache) -->
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-compress</artifactId>
|
||||
<version>${commons-compress.version}</version>
|
||||
</dependency>
|
||||
<!-- 解压(rar)-->
|
||||
<dependency>
|
||||
<groupId>com.github.junrar</groupId>
|
||||
<artifactId>junrar</artifactId>
|
||||
<version>${junrar.version}</version>
|
||||
</dependency>
|
||||
<!-- 解压(7z)-->
|
||||
<dependency>
|
||||
<groupId>org.tukaani</groupId>
|
||||
<artifactId>xz</artifactId>
|
||||
<version>${tukaani.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.sourceforge.jchardet</groupId>
|
||||
<artifactId>jchardet</artifactId>
|
||||
@@ -200,14 +187,6 @@
|
||||
<scope>system</scope>
|
||||
<systemPath>${pom.basedir}/lib/aspose-cad-19.9.jar</systemPath>
|
||||
</dependency>
|
||||
<!-- 编码识别 -->
|
||||
<dependency>
|
||||
<groupId>cpdetector</groupId>
|
||||
<artifactId>cpdetector</artifactId>
|
||||
<version>1.04</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${pom.basedir}/lib/cpdetector-1.04.jar</systemPath>
|
||||
</dependency>
|
||||
<!-- url 规范化 -->
|
||||
<dependency>
|
||||
<groupId>io.mola.galimatias</groupId>
|
||||
|
||||
@@ -25,11 +25,19 @@ public enum FileType {
|
||||
CAD("cadFilePreviewImpl"),
|
||||
TIFF("tiffFilePreviewImpl"),
|
||||
OFD("ofdFilePreviewImpl"),
|
||||
SVG("svgFilePreviewImpl");
|
||||
EML("emlFilePreviewImpl"),
|
||||
Online3D("online3DFilePreviewImpl"),
|
||||
XMIND("xmindFilePreviewImpl"),
|
||||
SVG("svgFilePreviewImpl"),
|
||||
Epub("epubFilePreviewImpl");
|
||||
|
||||
private static final String[] OFFICE_TYPES = {"docx", "wps", "doc", "docm", "xls", "xlsx", "csv" ,"xlsm", "ppt", "pptx", "vsd", "rtf", "odt", "wmf", "emf", "dps", "et", "ods", "ots", "tsv", "odp", "otp", "sxi", "ott", "vsdx", "fodt", "fods", "xltx","tga","psd"};
|
||||
private static final String[] PICTURE_TYPES = {"jpg", "jpeg", "png", "gif", "bmp", "ico", "jfif", "webp"};
|
||||
private static final String[] ARCHIVE_TYPES = {"rar", "zip", "jar", "7-zip", "tar", "gzip", "7z"};
|
||||
private static final String[] Online3D_TYPES = {"obj", "3ds", "stl", "ply", "off", "3dm", "fbx", "dae", "wrl", "3mf", "ifc","glb","o3dv","gltf","stp","bim","fcstd","step","iges","brep"};
|
||||
private static final String[] EML_TYPES = {"eml"};
|
||||
private static final String[] XMIND_TYPES = {"xmind"};
|
||||
private static final String[] Epub_TYPES = {"epub"};
|
||||
private static final String[] TIFF_TYPES = {"tif", "tiff"};
|
||||
private static final String[] OFD_TYPES = {"ofd"};
|
||||
private static final String[] SVG_TYPES = {"svg"};
|
||||
@@ -74,6 +82,18 @@ public enum FileType {
|
||||
for (String svg : SVG_TYPES) {
|
||||
FILE_TYPE_MAPPER.put(svg, FileType.SVG);
|
||||
}
|
||||
for (String epub : Epub_TYPES) {
|
||||
FILE_TYPE_MAPPER.put(epub, FileType.Epub);
|
||||
}
|
||||
for (String eml : EML_TYPES) {
|
||||
FILE_TYPE_MAPPER.put(eml, FileType.EML);
|
||||
}
|
||||
for (String xmind : XMIND_TYPES) {
|
||||
FILE_TYPE_MAPPER.put(xmind, FileType.XMIND);
|
||||
}
|
||||
for (String online3D : Online3D_TYPES) {
|
||||
FILE_TYPE_MAPPER.put(online3D, FileType.Online3D);
|
||||
}
|
||||
FILE_TYPE_MAPPER.put("md", FileType.MARKDOWN);
|
||||
FILE_TYPE_MAPPER.put("xml", FileType.XML);
|
||||
FILE_TYPE_MAPPER.put("pdf", FileType.PDF);
|
||||
|
||||
@@ -112,7 +112,7 @@ public class CompressFileReader {
|
||||
//去除字符串中的空格 制表符 换行 回车
|
||||
Pattern p = Pattern.compile("\\s*|\t*|\r*|\n*");
|
||||
Matcher m = p.matcher(strName);
|
||||
String after = m.replaceAll("");
|
||||
String after = m.replaceAll("").replaceAll("\\+", "").replaceAll("#", "").replaceAll("&", "");
|
||||
//去除字符串中的标点符号
|
||||
String temp = after.replaceAll("\\p{P}", "");
|
||||
//处理之后转换成字符数组
|
||||
|
||||
@@ -151,7 +151,7 @@ public class FileHandlerService {
|
||||
// 添加sheet控制头
|
||||
sb.append("<script src=\"js/jquery-3.6.1.min.js\" type=\"text/javascript\"></script>");
|
||||
sb.append("<script src=\"js/excel.header.js\" type=\"text/javascript\"></script>");
|
||||
sb.append("<link rel=\"stylesheet\" href=\"bootstrap/css/bootstrap.min.css\">");
|
||||
sb.append("<link rel=\"stylesheet\" href=\"bootstrap/css/xlsx.css\">");
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -273,10 +273,16 @@ public class FileHandlerService {
|
||||
if (url.contains("?fileKey=")) {
|
||||
attribute.setSkipDownLoad(true);
|
||||
}
|
||||
String urlStrr = url.toLowerCase(); //转换为小写对比
|
||||
boolean wjl = WebUtils.kuayu("&fullfilename=", urlStrr); //判断是否启用文件流
|
||||
if(wjl){
|
||||
url = url.substring(0,url.lastIndexOf("&")); //删除添加的文件流内容
|
||||
}
|
||||
url = WebUtils.encodeUrlFileName(url);
|
||||
fileName = KkFileUtils.htmlEscape(fileName); //文件名处理
|
||||
attribute.setType(type);
|
||||
attribute.setName(fileName);
|
||||
attribute.setSuffix(suffix);
|
||||
url = WebUtils.encodeUrlFileName(url);
|
||||
attribute.setUrl(url);
|
||||
if (req != null) {
|
||||
String officePreviewType = req.getParameter("officePreviewType");
|
||||
|
||||
@@ -18,6 +18,10 @@ public interface FilePreview {
|
||||
String TIFF_FILE_PREVIEW_PAGE = "tiff";
|
||||
String OFD_FILE_PREVIEW_PAGE = "ofd";
|
||||
String SVG_FILE_PREVIEW_PAGE = "svg";
|
||||
String Online3D_FILE_PAGE = "online3D";
|
||||
String EpubFilePreviewImpl = "epub";
|
||||
String XMIND_FILE_PREVIEW_PAGE = "xmind";
|
||||
String EML_FILE_PREVIEW_PAGE = "eml";
|
||||
String OFFICE_PICTURE_FILE_PREVIEW_PAGE = "officePicture";
|
||||
String TXT_FILE_PREVIEW_PAGE = "txt";
|
||||
String CODE_FILE_PREVIEW_PAGE = "code";
|
||||
|
||||
@@ -31,8 +31,7 @@ public class CompressFilePreviewImpl implements FilePreview {
|
||||
@Override
|
||||
public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
|
||||
String fileName=fileAttribute.getName();
|
||||
String suffix=fileAttribute.getSuffix();
|
||||
String fileTree = null;
|
||||
String fileTree;
|
||||
// 判断文件名是否存在(redis缓存读取)
|
||||
if (!StringUtils.hasText(fileHandlerService.getConvertedFile(fileName)) || !ConfigConstants.isCacheEnabled()) {
|
||||
ReturnResponse<String> response = DownloadUtils.downLoad(fileAttribute, fileName);
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package cn.keking.service.impl;
|
||||
|
||||
import cn.keking.model.FileAttribute;
|
||||
import cn.keking.service.FilePreview;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.ui.Model;
|
||||
|
||||
/**
|
||||
* EML 文件处理
|
||||
*/
|
||||
@Service
|
||||
public class EmlFilePreviewImpl implements FilePreview {
|
||||
|
||||
private final PictureFilePreviewImpl pictureFilePreview;
|
||||
|
||||
public EmlFilePreviewImpl(PictureFilePreviewImpl pictureFilePreview) {
|
||||
this.pictureFilePreview = pictureFilePreview;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
|
||||
pictureFilePreview.filePreviewHandle(url,model,fileAttribute);
|
||||
return EML_FILE_PREVIEW_PAGE;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package cn.keking.service.impl;
|
||||
|
||||
import cn.keking.model.FileAttribute;
|
||||
import cn.keking.service.FilePreview;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.ui.Model;
|
||||
|
||||
/**
|
||||
* svg 图片文件处理
|
||||
* @author kl (http://kailing.pub)
|
||||
* @since 2021/2/8
|
||||
*/
|
||||
@Service
|
||||
public class EpubFilePreviewImpl implements FilePreview {
|
||||
|
||||
private final PictureFilePreviewImpl pictureFilePreview;
|
||||
|
||||
public EpubFilePreviewImpl(PictureFilePreviewImpl pictureFilePreview) {
|
||||
this.pictureFilePreview = pictureFilePreview;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
|
||||
pictureFilePreview.filePreviewHandle(url,model,fileAttribute);
|
||||
return EpubFilePreviewImpl;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package cn.keking.service.impl;
|
||||
|
||||
import cn.keking.model.FileAttribute;
|
||||
import cn.keking.service.FilePreview;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.ui.Model;
|
||||
|
||||
/**
|
||||
* Created by kl on 2018/1/17.
|
||||
* Content :图片文件处理
|
||||
*/
|
||||
@Service
|
||||
public class Online3DFilePreviewImpl implements FilePreview {
|
||||
|
||||
private final PictureFilePreviewImpl pictureFilePreview;
|
||||
|
||||
public Online3DFilePreviewImpl(PictureFilePreviewImpl pictureFilePreview) {
|
||||
this.pictureFilePreview = pictureFilePreview;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
|
||||
pictureFilePreview.filePreviewHandle(url,model,fileAttribute);
|
||||
return Online3D_FILE_PAGE;
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import cn.keking.service.FileHandlerService;
|
||||
import cn.keking.service.FilePreview;
|
||||
import cn.keking.utils.DownloadUtils;
|
||||
import cn.keking.utils.EncodingDetects;
|
||||
import cn.keking.utils.KkFileUtils;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.ui.Model;
|
||||
@@ -14,8 +15,6 @@ import org.springframework.web.util.HtmlUtils;
|
||||
|
||||
import java.io.*;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
/**
|
||||
* Created by kl on 2018/1/17.
|
||||
@@ -46,7 +45,7 @@ public class SimTextFilePreviewImpl implements FilePreview {
|
||||
fileHandlerService.addConvertedFile(fileName, filePath); //加入缓存
|
||||
}
|
||||
try {
|
||||
String fileData = HtmlUtils.htmlEscape(textData(filePath));
|
||||
String fileData = HtmlUtils.htmlEscape(textData(filePath,fileName));
|
||||
model.addAttribute("textData", Base64.encodeBase64String(fileData.getBytes()));
|
||||
} catch (IOException e) {
|
||||
return otherFilePreview.notSupportedFile(model, fileAttribute, e.getLocalizedMessage());
|
||||
@@ -55,7 +54,7 @@ public class SimTextFilePreviewImpl implements FilePreview {
|
||||
}
|
||||
String fileData = null;
|
||||
try {
|
||||
fileData = HtmlUtils.htmlEscape(textData(filePath));
|
||||
fileData = HtmlUtils.htmlEscape(textData(filePath,fileName));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -63,8 +62,11 @@ public class SimTextFilePreviewImpl implements FilePreview {
|
||||
return TXT_FILE_PREVIEW_PAGE;
|
||||
}
|
||||
|
||||
private String textData(String filePath) throws IOException {
|
||||
private String textData(String filePath,String fileName) throws IOException {
|
||||
File file = new File(filePath);
|
||||
if (KkFileUtils.isIllegalFileName(fileName)) {
|
||||
return null;
|
||||
}
|
||||
if (!file.exists() || file.length() == 0) {
|
||||
return "";
|
||||
} else {
|
||||
@@ -72,15 +74,14 @@ public class SimTextFilePreviewImpl implements FilePreview {
|
||||
if ("ASCII".equals(charset)) {
|
||||
charset = StandardCharsets.US_ASCII.name();
|
||||
}
|
||||
BufferedReader br = new BufferedReader(new InputStreamReader(Files.newInputStream(Paths.get(filePath)), charset));
|
||||
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), charset));
|
||||
StringBuilder result = new StringBuilder();
|
||||
String line;
|
||||
while ((line = br.readLine()) != null) {
|
||||
result.append(line).append("\r\n");
|
||||
}
|
||||
br.close();
|
||||
return result.toString();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package cn.keking.service.impl;
|
||||
|
||||
import cn.keking.model.FileAttribute;
|
||||
import cn.keking.service.FilePreview;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.ui.Model;
|
||||
|
||||
/**
|
||||
* svg 图片文件处理
|
||||
* @author kl (http://kailing.pub)
|
||||
* @since 2021/2/8
|
||||
*/
|
||||
@Service
|
||||
public class XmindFilePreviewImpl implements FilePreview {
|
||||
|
||||
private final PictureFilePreviewImpl pictureFilePreview;
|
||||
|
||||
public XmindFilePreviewImpl(PictureFilePreviewImpl pictureFilePreview) {
|
||||
this.pictureFilePreview = pictureFilePreview;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
|
||||
pictureFilePreview.filePreviewHandle(url,model,fileAttribute);
|
||||
return XMIND_FILE_PREVIEW_PAGE;
|
||||
}
|
||||
}
|
||||
@@ -3,10 +3,13 @@ package cn.keking.utils;
|
||||
import cn.keking.config.ConfigConstants;
|
||||
import cn.keking.model.FileAttribute;
|
||||
import cn.keking.model.ReturnResponse;
|
||||
import cn.keking.service.FileHandlerService;
|
||||
import io.mola.galimatias.GalimatiasParseException;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.util.HtmlUtils;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.*;
|
||||
@@ -35,6 +38,12 @@ public class DownloadUtils {
|
||||
String urlStr = fileAttribute.getUrl().replaceAll("\\+", "%20");
|
||||
ReturnResponse<String> response = new ReturnResponse<>(0, "下载成功!!!", "");
|
||||
String realPath = DownloadUtils.getRelFilePath(fileName, fileAttribute);
|
||||
if(!StringUtils.hasText(realPath)){
|
||||
response.setCode(1);
|
||||
response.setContent(null);
|
||||
response.setMsg("下载失败:文件名不合法!" + urlStr);
|
||||
return response;
|
||||
}
|
||||
try {
|
||||
URL url = WebUtils.normalizedURL(urlStr);
|
||||
if (!fileAttribute.getSkipDownLoad()) {
|
||||
@@ -82,18 +91,20 @@ public class DownloadUtils {
|
||||
} else { // 文件后缀不一致时,以type为准(针对simText【将类txt文件转为txt】)
|
||||
fileName = fileName.replace(fileName.substring(fileName.lastIndexOf(".") + 1), type);
|
||||
}
|
||||
// 判断是否非法地址
|
||||
if (KkFileUtils.isIllegalFileName(fileName)) {
|
||||
return null;
|
||||
}
|
||||
String realPath = fileDir + fileName;
|
||||
File dirFile = new File(fileDir);
|
||||
if (!dirFile.exists() && !dirFile.mkdirs()) {
|
||||
logger.error("创建目录【{}】失败,可能是权限不够,请检查", fileDir);
|
||||
}
|
||||
|
||||
// 文件已在本地存在,跳过文件下载
|
||||
File realFile = new File(realPath);
|
||||
if (realFile.exists()) {
|
||||
fileAttribute.setSkipDownLoad(true);
|
||||
}
|
||||
|
||||
return realPath;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
package cn.keking.utils;
|
||||
|
||||
import cpdetector.CharsetPrinter;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.util.HtmlUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -45,7 +43,18 @@ public class KkFileUtils {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否是数字
|
||||
* @param str 文件名
|
||||
* @return 合规结果,true:不合规,false:合规
|
||||
*/
|
||||
public static boolean isInteger(String str) {
|
||||
if(StringUtils.hasText(str)){
|
||||
boolean strResult = str.matches("-?[0-9]+.?[0-9]*");
|
||||
return strResult ;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* 判断url是否是http资源
|
||||
*
|
||||
@@ -89,41 +98,16 @@ public class KkFileUtils {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 检测文件编码格式
|
||||
*
|
||||
* @param filePath 绝对路径
|
||||
* @return 编码格式
|
||||
*/
|
||||
public static String getFileEncode(String filePath) {
|
||||
return getFileEncode(new File(filePath));
|
||||
}
|
||||
|
||||
/**
|
||||
* 检测文件编码格式
|
||||
*
|
||||
* @param file 检测的文件
|
||||
* @return 编码格式
|
||||
*/
|
||||
public static String getFileEncode(File file) {
|
||||
CharsetPrinter cp = new CharsetPrinter();
|
||||
try {
|
||||
String encoding = cp.guessEncoding(file);
|
||||
LOGGER.info("检测到文件【{}】编码: {}", file.getAbsolutePath(), encoding);
|
||||
return encoding;
|
||||
} catch (IOException e) {
|
||||
LOGGER.warn("文件编码获取失败,采用默认的编码格式:UTF-8", e);
|
||||
return DEFAULT_FILE_ENCODING;
|
||||
}
|
||||
}
|
||||
|
||||
public static String htmlEscape(String input) {
|
||||
if(StringUtils.hasText(input)){
|
||||
//input = input.replaceAll("\\{", "%7B").replaceAll("}", "%7D").replaceAll("\\\\", "%5C");
|
||||
return HtmlUtils.htmlEscape(input);
|
||||
}
|
||||
return input;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 通过文件名获取文件后缀
|
||||
*
|
||||
|
||||
@@ -8,12 +8,13 @@ import javax.servlet.ServletRequest;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLDecoder;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* @author : kl
|
||||
@@ -173,7 +174,23 @@ public class WebUtils {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断地址是否正确
|
||||
* 高 2022/12/17
|
||||
*/
|
||||
public static boolean hefaurl (String url) {
|
||||
String regStr = "^((https|http|ftp|rtsp|mms|file)://)";//[.?*]表示匹配的就是本身
|
||||
Pattern pattern = Pattern.compile(regStr);
|
||||
Matcher matcher = pattern.matcher(url);
|
||||
return matcher.find();
|
||||
}
|
||||
public static boolean kuayu(String host, String wjl) { //查询域名是否相同
|
||||
if (wjl.contains(host)) {
|
||||
return true;
|
||||
}else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 将 Base64 字符串解码,再解码URL参数, 默认使用 UTF-8
|
||||
* @param source 原始 Base64 字符串
|
||||
@@ -183,11 +200,10 @@ public class WebUtils {
|
||||
*/
|
||||
public static String decodeUrl(String source) {
|
||||
String url = decodeBase64String(source, StandardCharsets.UTF_8);
|
||||
try {
|
||||
url = URLDecoder.decode(url, StandardCharsets.UTF_8.name());
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
throw new RuntimeException(e);
|
||||
if (! StringUtils.isNotBlank(url)){
|
||||
return null;
|
||||
}
|
||||
|
||||
return url;
|
||||
}
|
||||
|
||||
@@ -203,9 +219,13 @@ public class WebUtils {
|
||||
* 有些 Base64 实现可能每 76 个字符插入换行符,也一并去掉
|
||||
* https://github.com/kekingcn/kkFileView/pull/340
|
||||
*/
|
||||
return new String(Base64Utils.decodeFromString(
|
||||
source.replaceAll(" ", "+").replaceAll("\n", "")
|
||||
), charsets);
|
||||
try {
|
||||
return new String(Base64Utils.decodeFromString(source.replaceAll(" ", "+").replaceAll("\n", "")), charsets);
|
||||
} catch (Exception e) {
|
||||
System.out.println("接入方法错误,或者未使用BASE64");
|
||||
// e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -46,26 +46,45 @@ public class AttributeSetFilter implements Filter {
|
||||
* 设置水印属性
|
||||
* @param request request
|
||||
*/
|
||||
|
||||
private void setWatermarkAttribute(ServletRequest request) {
|
||||
String watermarkTxt= KkFileUtils.htmlEscape(request.getParameter("watermarkTxt"));
|
||||
request.setAttribute("watermarkTxt", watermarkTxt != null ? watermarkTxt : WatermarkConfigConstants.getWatermarkTxt());
|
||||
String watermarkXSpace = request.getParameter("watermarkXSpace");
|
||||
String watermarkXSpace = KkFileUtils.htmlEscape(request.getParameter("watermarkXSpace"));
|
||||
if (!KkFileUtils.isInteger(watermarkXSpace)){
|
||||
watermarkXSpace =null;
|
||||
}
|
||||
request.setAttribute("watermarkXSpace", watermarkXSpace != null ? watermarkXSpace : WatermarkConfigConstants.getWatermarkXSpace());
|
||||
String watermarkYSpace = request.getParameter("watermarkYSpace");
|
||||
String watermarkYSpace = KkFileUtils.htmlEscape(request.getParameter("watermarkYSpace"));
|
||||
if (!KkFileUtils.isInteger(watermarkYSpace)){
|
||||
watermarkYSpace =null;
|
||||
}
|
||||
request.setAttribute("watermarkYSpace", watermarkYSpace != null ? watermarkYSpace : WatermarkConfigConstants.getWatermarkYSpace());
|
||||
String watermarkFont = request.getParameter("watermarkFont");
|
||||
String watermarkFont = KkFileUtils.htmlEscape(request.getParameter("watermarkFont"));
|
||||
request.setAttribute("watermarkFont", watermarkFont != null ? watermarkFont : WatermarkConfigConstants.getWatermarkFont());
|
||||
String watermarkFontsize = request.getParameter("watermarkFontsize");
|
||||
String watermarkFontsize = KkFileUtils.htmlEscape(request.getParameter("watermarkFontsize"));
|
||||
request.setAttribute("watermarkFontsize", watermarkFontsize != null ? watermarkFontsize : WatermarkConfigConstants.getWatermarkFontsize());
|
||||
String watermarkColor = request.getParameter("watermarkColor");
|
||||
String watermarkColor = KkFileUtils.htmlEscape(request.getParameter("watermarkColor"));
|
||||
request.setAttribute("watermarkColor", watermarkColor != null ? watermarkColor : WatermarkConfigConstants.getWatermarkColor());
|
||||
String watermarkAlpha = request.getParameter("watermarkAlpha");
|
||||
String watermarkAlpha = KkFileUtils.htmlEscape(request.getParameter("watermarkAlpha"));
|
||||
if (!KkFileUtils.isInteger(watermarkAlpha)){
|
||||
watermarkAlpha =null;
|
||||
}
|
||||
request.setAttribute("watermarkAlpha", watermarkAlpha != null ? watermarkAlpha : WatermarkConfigConstants.getWatermarkAlpha());
|
||||
String watermarkWidth = request.getParameter("watermarkWidth");
|
||||
String watermarkWidth = KkFileUtils.htmlEscape(request.getParameter("watermarkWidth"));
|
||||
if (!KkFileUtils.isInteger(watermarkWidth)){
|
||||
watermarkWidth =null;
|
||||
}
|
||||
request.setAttribute("watermarkWidth", watermarkWidth != null ? watermarkWidth : WatermarkConfigConstants.getWatermarkWidth());
|
||||
String watermarkHeight = request.getParameter("watermarkHeight");
|
||||
String watermarkHeight = KkFileUtils.htmlEscape(request.getParameter("watermarkHeight"));
|
||||
if (!KkFileUtils.isInteger(watermarkHeight)){
|
||||
watermarkHeight =null;
|
||||
}
|
||||
request.setAttribute("watermarkHeight", watermarkHeight != null ? watermarkHeight : WatermarkConfigConstants.getWatermarkHeight());
|
||||
String watermarkAngle = request.getParameter("watermarkAngle");
|
||||
String watermarkAngle = KkFileUtils.htmlEscape(request.getParameter("watermarkAngle"));
|
||||
if (!KkFileUtils.isInteger(watermarkAngle)){
|
||||
watermarkAngle =null;
|
||||
}
|
||||
request.setAttribute("watermarkAngle", watermarkAngle != null ? watermarkAngle : WatermarkConfigConstants.getWatermarkAngle());
|
||||
}
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ public class TrustDirFilter implements Filter {
|
||||
}
|
||||
|
||||
private boolean allowPreview(String urlPath) {
|
||||
if(!StringUtils.hasText(urlPath)){
|
||||
if(!StringUtils.hasText(urlPath) || !WebUtils.hefaurl(urlPath)){ //判断URL是否合法
|
||||
return false ;
|
||||
}
|
||||
try {
|
||||
|
||||
49
server/src/main/resources/static/bootstrap/css/xlsx.css
Normal file
@@ -0,0 +1,49 @@
|
||||
body {
|
||||
margin-left: 0px;
|
||||
margin-top: 0px;
|
||||
margin-right: 0px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
table, tbody, tfoot, thead, tr, th, td {
|
||||
|
||||
white-space: normal !important;
|
||||
}
|
||||
/* 该行会导致部分excel列变得又窄又高,从而变为竖长条
|
||||
table {
|
||||
table-layout: auto !important;
|
||||
}
|
||||
*/
|
||||
.tab-content {
|
||||
position: relative;
|
||||
}
|
||||
img {
|
||||
max-width: none !important;
|
||||
}
|
||||
a{
|
||||
|
||||
text-decoration: none;
|
||||
border: 1px solid #dddddd !important;
|
||||
white-space: normal !important;
|
||||
|
||||
}
|
||||
/*默认状态*/
|
||||
h1 {
|
||||
background: #2B6695;
|
||||
border-radius: 6px 6px 6px 6px;
|
||||
box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5);
|
||||
color: #FFFFFF;
|
||||
font-family:"微软雅黑", "宋体", "黑体", Arial;
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
height: 25px;
|
||||
line-height: 25px;
|
||||
margin: 4px 0 !important;
|
||||
padding: 8px 0 5px 5px;
|
||||
text-shadow: 2px 2px 3px #222222;
|
||||
}
|
||||
table{
|
||||
width:100%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
65
server/src/main/resources/static/eml/index.html
Normal file
@@ -0,0 +1,65 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>EML 在线看</title>
|
||||
|
||||
<link href="src/bootstrap.css" rel="stylesheet">
|
||||
<link href="src/main.css" rel="stylesheet">
|
||||
<script type="text/javascript" src="static/js/manifest.2ae2e69a05c33dfc65f8.js"></script>
|
||||
<script type="text/javascript" src="static/js/vendor.f615be12b031102299b7.js"></script>
|
||||
|
||||
<script type="text/javascript" src="static/js/app.8292ba6c8f6b07911e29.js?"' + Math.random() +'></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div id="headerwrap" class="dropzone">
|
||||
<div class="container">
|
||||
<div class="row" id="download-eml">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row" id="view-eml">
|
||||
|
||||
|
||||
<div class="panel-group eml-details" id="accordion" role="tablist" aria-multiselectable="true">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab" id="headingHeaders">
|
||||
<h4 class="panel-title">
|
||||
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseHeaders" aria-expanded="true" aria-controls="collapseHeaders">
|
||||
标题
|
||||
</a>
|
||||
</h4>
|
||||
</div>
|
||||
<div id="collapseHeaders" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingHeaders">
|
||||
<div class="panel-body eml-details__content eml-details__content-headers"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-default">
|
||||
|
||||
<b><font color="#000000">正文:</font></b>
|
||||
<div class="panel-heading" role="tab" id="divPagenation"></div>
|
||||
|
||||
</div>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab" id="headingAttachments">
|
||||
<h4 class="panel-title">
|
||||
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseAttachments" aria-expanded="false" aria-controls="collapseAttachments">
|
||||
附件
|
||||
</a>
|
||||
</h4>
|
||||
</div>
|
||||
<div id="collapseAttachments" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingAttachments">
|
||||
<div class="panel-body eml-details__content eml-details__content-attachments"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
6805
server/src/main/resources/static/eml/src/bootstrap.css
vendored
Normal file
BIN
server/src/main/resources/static/eml/src/header-bg.jpg
Normal file
|
After Width: | Height: | Size: 110 KiB |
342
server/src/main/resources/static/eml/src/main.css
Normal file
@@ -0,0 +1,342 @@
|
||||
html, body {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'EB Garamond', serif;
|
||||
font-weight: 300;
|
||||
font-size: 16px;
|
||||
color: #f2f2f2;
|
||||
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
/* Titles */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: 'Oswald', sans-serif;
|
||||
font-weight: 300;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
|
||||
/* Paragraph & Typographic */
|
||||
p {
|
||||
line-height: 28px;
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
a {
|
||||
color: #f85c37;
|
||||
word-wrap: break-word;
|
||||
|
||||
-webkit-transition: color 0.1s ease-in, background 0.1s ease-in;
|
||||
-moz-transition: color 0.1s ease-in, background 0.1s ease-in;
|
||||
-ms-transition: color 0.1s ease-in, background 0.1s ease-in;
|
||||
-o-transition: color 0.1s ease-in, background 0.1s ease-in;
|
||||
transition: color 0.1s ease-in, background 0.1s ease-in;
|
||||
}
|
||||
|
||||
a:hover,
|
||||
a:focus {
|
||||
color: #7b7b7b;
|
||||
text-decoration: none;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
a:before,
|
||||
a:after {
|
||||
-webkit-transition: color 0.1s ease-in, background 0.1s ease-in;
|
||||
-moz-transition: color 0.1s ease-in, background 0.1s ease-in;
|
||||
-ms-transition: color 0.1s ease-in, background 0.1s ease-in;
|
||||
-o-transition: color 0.1s ease-in, background 0.1s ease-in;
|
||||
transition: color 0.1s ease-in, background 0.1s ease-in;
|
||||
}
|
||||
|
||||
hr {
|
||||
display: block;
|
||||
height: 1px;
|
||||
border: 0;
|
||||
border-top: 1px solid #ccc;
|
||||
margin: 1em 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
Wrap Sections
|
||||
========================================================================== */
|
||||
|
||||
#headerwrap {
|
||||
background: url(header-bg.jpg) no-repeat center center fixed;
|
||||
|
||||
-webkit-background-size: 100%;
|
||||
-moz-background-size: 100%;
|
||||
-o-background-size: 100%;
|
||||
background-size: 100%;
|
||||
|
||||
-webkit-background-size: cover;
|
||||
-moz-background-size: cover;
|
||||
-o-background-size: cover;
|
||||
background-size: cover;
|
||||
|
||||
overflow: auto;
|
||||
|
||||
text-align:center;
|
||||
min-height: 700px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#headerwrap h1 {
|
||||
margin-top: 150px;
|
||||
color: white;
|
||||
font-size: 70px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
#headerwrap h3 {
|
||||
color: white;
|
||||
font-size: 30px;
|
||||
font-weight: 100;
|
||||
font-family: 'EB Garamond', serif;
|
||||
font-style: oblique;
|
||||
}
|
||||
|
||||
#headerwrap .logo {
|
||||
text-align: left;
|
||||
margin-left: 20px;
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
|
||||
/* Footer Wrap */
|
||||
|
||||
#f {
|
||||
background: #1a1a1a;
|
||||
padding-top: 70px;
|
||||
padding-bottom: 70px;
|
||||
text-align: center
|
||||
}
|
||||
|
||||
#f h3 {
|
||||
color: white;
|
||||
font-size: 28px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
#f i {
|
||||
font-size: 8px;
|
||||
color: #fff;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
#f p {
|
||||
font-size: 20px;
|
||||
color: #f2f2f2;
|
||||
}
|
||||
|
||||
#f img {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
/* MENU CONF*/
|
||||
|
||||
.menu {
|
||||
position: fixed;
|
||||
right: -200px;
|
||||
width: 260px;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
z-index: 10;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.menu.menu-open {
|
||||
right: 0px;
|
||||
}
|
||||
|
||||
.menu-wrap {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 60px;
|
||||
background: #1a1a1a;
|
||||
width: 200px;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.menu h1.logo a {
|
||||
font-family: 'Oswald', sans-serif;
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.15em;
|
||||
line-height: 40px;
|
||||
text-transform: uppercase;
|
||||
color: #ffffff;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.menu h1.logo a:hover {
|
||||
color: #f85c37;
|
||||
}
|
||||
|
||||
.menu img.logo {
|
||||
margin: 20px 0;
|
||||
max-width: 160px;
|
||||
}
|
||||
|
||||
.menu a {
|
||||
margin-left: 20px;
|
||||
color: #808080;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
line-height: 40px;
|
||||
letter-spacing: 0.1em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.menu a:hover {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.menu a:active {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.menu a > i {
|
||||
float: left;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
text-align: left;
|
||||
width: 25px;
|
||||
font-size: 14px;
|
||||
line-height: 40px;
|
||||
margin: 25px 2px;
|
||||
}
|
||||
|
||||
.menu-close {
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
position: absolute;
|
||||
font-size: 14px;
|
||||
color: #808080;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
top: 20px;
|
||||
right: 5px;
|
||||
-webkit-transition: all .1s ease-in-out;
|
||||
-moz-transition: all .1s ease-in-out;
|
||||
-ms-transition: all .1s ease-in-out;
|
||||
-o-transition: all .1s ease-in-out;
|
||||
transition: all .1s ease-in-out;
|
||||
}
|
||||
|
||||
.menu-close:hover {
|
||||
color: #ffffff;
|
||||
-webkit-transition: all .1s ease-in-out;
|
||||
-moz-transition: all .1s ease-in-out;
|
||||
-ms-transition: all .1s ease-in-out;
|
||||
-o-transition: all .1s ease-in-out;
|
||||
transition: all .1s ease-in-out;
|
||||
}
|
||||
|
||||
/* Push the body after clicking the menu button */
|
||||
.body-push {
|
||||
overflow-x: hidden;
|
||||
position: relative;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.body-push-toright {
|
||||
left: 200px;
|
||||
}
|
||||
|
||||
.body-push-toleft {
|
||||
left: -200px;
|
||||
}
|
||||
|
||||
.menu,
|
||||
.body-push {
|
||||
-webkit-transition: all .3s ease;
|
||||
-moz-transition: all .3s ease;
|
||||
-ms-transition: all .3s ease;
|
||||
-o-transition: all .3s ease;
|
||||
transition: all .3s ease;
|
||||
}
|
||||
|
||||
#menuToggle {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
left: 0;
|
||||
z-index: 11;
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
color: #ffffff;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
cursor: pointer;
|
||||
background: rgba(0,0,0,0.25);
|
||||
-webkit-transition: all .1s ease-in-out;
|
||||
-moz-transition: all .1s ease-in-out;
|
||||
-ms-transition: all .1s ease-in-out;
|
||||
-o-transition: all .1s ease-in-out;
|
||||
transition: all .1s ease-in-out;
|
||||
}
|
||||
|
||||
#menuToggle:hover {
|
||||
color: #ffffff;
|
||||
background: rgba(0,0,0,0.2);
|
||||
-webkit-transition: all .1s ease-in-out;
|
||||
-moz-transition: all .1s ease-in-out;
|
||||
-ms-transition: all .1s ease-in-out;
|
||||
-o-transition: all .1s ease-in-out;
|
||||
transition: all .1s ease-in-out;
|
||||
}
|
||||
#file {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.dragging {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.drag-and-drop-label {
|
||||
font-family: 'Oswald', sans-serif;
|
||||
font-weight: 300;
|
||||
font-size: 18px;
|
||||
color: white;
|
||||
}
|
||||
#view-eml {
|
||||
display: none;
|
||||
padding-top: 20px;
|
||||
}
|
||||
.eml-iframe {
|
||||
width: 100%;
|
||||
height: 1000px;
|
||||
margin-top: 10px;
|
||||
border: 0;
|
||||
}
|
||||
.eml-details {
|
||||
display: none;
|
||||
margin-top: 20px;
|
||||
}
|
||||
.eml-details__content {
|
||||
color: #1a1a1a;
|
||||
}
|
||||
|
||||
#eml_error_header {
|
||||
font-weight:300;
|
||||
font-size: 18px;
|
||||
color: red;
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
/******/ (function(modules) { // webpackBootstrap
|
||||
/******/ // install a JSONP callback for chunk loading
|
||||
/******/ var parentJsonpFunction = window["webpackJsonp"];
|
||||
/******/ window["webpackJsonp"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {
|
||||
/******/ // add "moreModules" to the modules object,
|
||||
/******/ // then flag all "chunkIds" as loaded and fire callback
|
||||
/******/ var moduleId, chunkId, i = 0, resolves = [], result;
|
||||
/******/ for(;i < chunkIds.length; i++) {
|
||||
/******/ chunkId = chunkIds[i];
|
||||
/******/ if(installedChunks[chunkId]) {
|
||||
/******/ resolves.push(installedChunks[chunkId][0]);
|
||||
/******/ }
|
||||
/******/ installedChunks[chunkId] = 0;
|
||||
/******/ }
|
||||
/******/ for(moduleId in moreModules) {
|
||||
/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
|
||||
/******/ modules[moduleId] = moreModules[moduleId];
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/ if(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);
|
||||
/******/ while(resolves.length) {
|
||||
/******/ resolves.shift()();
|
||||
/******/ }
|
||||
/******/ if(executeModules) {
|
||||
/******/ for(i=0; i < executeModules.length; i++) {
|
||||
/******/ result = __webpack_require__(__webpack_require__.s = executeModules[i]);
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/ return result;
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // The module cache
|
||||
/******/ var installedModules = {};
|
||||
/******/
|
||||
/******/ // objects to store loaded and loading chunks
|
||||
/******/ var installedChunks = {
|
||||
/******/ 2: 0
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
/******/
|
||||
/******/ // Check if module is in cache
|
||||
/******/ if(installedModules[moduleId]) {
|
||||
/******/ return installedModules[moduleId].exports;
|
||||
/******/ }
|
||||
/******/ // Create a new module (and put it into the cache)
|
||||
/******/ var module = installedModules[moduleId] = {
|
||||
/******/ i: moduleId,
|
||||
/******/ l: false,
|
||||
/******/ exports: {}
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Execute the module function
|
||||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||||
/******/
|
||||
/******/ // Flag the module as loaded
|
||||
/******/ module.l = true;
|
||||
/******/
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
/******/
|
||||
/******/
|
||||
/******/ // expose the modules object (__webpack_modules__)
|
||||
/******/ __webpack_require__.m = modules;
|
||||
/******/
|
||||
/******/ // expose the module cache
|
||||
/******/ __webpack_require__.c = installedModules;
|
||||
/******/
|
||||
/******/ // define getter function for harmony exports
|
||||
/******/ __webpack_require__.d = function(exports, name, getter) {
|
||||
/******/ if(!__webpack_require__.o(exports, name)) {
|
||||
/******/ Object.defineProperty(exports, name, {
|
||||
/******/ configurable: false,
|
||||
/******/ enumerable: true,
|
||||
/******/ get: getter
|
||||
/******/ });
|
||||
/******/ }
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||||
/******/ __webpack_require__.n = function(module) {
|
||||
/******/ var getter = module && module.__esModule ?
|
||||
/******/ function getDefault() { return module['default']; } :
|
||||
/******/ function getModuleExports() { return module; };
|
||||
/******/ __webpack_require__.d(getter, 'a', getter);
|
||||
/******/ return getter;
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Object.prototype.hasOwnProperty.call
|
||||
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
||||
/******/
|
||||
/******/ // __webpack_public_path__
|
||||
/******/ __webpack_require__.p = "/";
|
||||
/******/
|
||||
/******/ // on error function for async loading
|
||||
/******/ __webpack_require__.oe = function(err) { console.error(err); throw err; };
|
||||
/******/ })
|
||||
/************************************************************************/
|
||||
/******/ ([]);
|
||||
//# sourceMappingURL=manifest.2ae2e69a05c33dfc65f8.js.map
|
||||
16780
server/src/main/resources/static/epub/epub.js
Normal file
286
server/src/main/resources/static/epub/examples.css
Normal file
@@ -0,0 +1,286 @@
|
||||
body {
|
||||
margin: 0;
|
||||
background: #fafafa;
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
color: #333;
|
||||
|
||||
position: absolute;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
min-height: 800px;
|
||||
}
|
||||
|
||||
#title {
|
||||
width: 900px;
|
||||
min-height: 18px;
|
||||
margin: 10px auto;
|
||||
text-align: center;
|
||||
font-size: 16px;
|
||||
color: #E2E2E2;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
#title:hover {
|
||||
color: #777;
|
||||
}
|
||||
|
||||
#viewer.spreads {
|
||||
width: 900px;
|
||||
height: 600px;
|
||||
box-shadow: 0 0 4px #ccc;
|
||||
border-radius: 5px;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
margin: 10px auto;
|
||||
background: white url('ajax-loader.gif') center center no-repeat;
|
||||
top: calc(50vh - 400px);
|
||||
}
|
||||
|
||||
#viewer.spreads .epub-view > iframe {
|
||||
background: white;
|
||||
}
|
||||
|
||||
#viewer.scrolled {
|
||||
overflow: hidden;
|
||||
width: 800px;
|
||||
margin: 0 auto;
|
||||
position: relative;
|
||||
background: url('ajax-loader.gif') center center no-repeat;
|
||||
|
||||
}
|
||||
|
||||
#viewer.scrolled .epub-container {
|
||||
background: white;
|
||||
box-shadow: 0 0 4px #ccc;
|
||||
margin: 10px;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
#viewer.scrolled .epub-view > iframe {
|
||||
background: white;
|
||||
}
|
||||
|
||||
#prev {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
#next {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
#toc {
|
||||
display: block;
|
||||
margin: 10px auto;
|
||||
}
|
||||
|
||||
@media (min-width: 1000px) {
|
||||
#viewer.spreads:after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
border-right: 1px #000 solid;
|
||||
height: 90%;
|
||||
z-index: 1;
|
||||
left: 50%;
|
||||
margin-left: -1px;
|
||||
top: 5%;
|
||||
opacity: .15;
|
||||
box-shadow: -2px 0 15px rgba(0, 0, 0, 1);
|
||||
content: "";
|
||||
}
|
||||
|
||||
#viewer.spreads.single:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#prev {
|
||||
left: 40px;
|
||||
}
|
||||
|
||||
#next {
|
||||
right: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
.arrow {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
margin-top: -32px;
|
||||
font-size: 64px;
|
||||
color: #E2E2E2;
|
||||
font-family: arial, sans-serif;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.navlink {
|
||||
margin: 14px;
|
||||
display: block;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.arrow:hover, .navlink:hover {
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.arrow:active, .navlink:hover {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
#book-wrapper {
|
||||
width: 480px;
|
||||
height: 640px;
|
||||
overflow: hidden;
|
||||
border: 1px solid #ccc;
|
||||
margin: 28px auto;
|
||||
background: #fff;
|
||||
border-radius: 0 5px 5px 0;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
#book-viewer {
|
||||
width: 480px;
|
||||
height: 660px;
|
||||
margin: -30px auto;
|
||||
-moz-box-shadow: inset 10px 0 20px rgba(0,0,0,.1);
|
||||
-webkit-box-shadow: inset 10px 0 20px rgba(0,0,0,.1);
|
||||
box-shadow: inset 10px 0 20px rgba(0,0,0,.1);
|
||||
}
|
||||
|
||||
#book-viewer iframe {
|
||||
padding: 40px 40px;
|
||||
}
|
||||
|
||||
#controls {
|
||||
position: absolute;
|
||||
bottom: 16px;
|
||||
left: 50%;
|
||||
width: 400px;
|
||||
margin-left: -200px;
|
||||
text-align: center;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#controls > input[type=range] {
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
#navigation {
|
||||
width: 400px;
|
||||
height: 100vh;
|
||||
position: absolute;
|
||||
overflow: auto;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: #777;
|
||||
-webkit-transition: -webkit-transform .25s ease-out;
|
||||
-moz-transition: -moz-transform .25s ease-out;
|
||||
-ms-transition: -moz-transform .25s ease-out;
|
||||
transition: transform .25s ease-out;
|
||||
|
||||
}
|
||||
|
||||
#navigation.fixed {
|
||||
position: fixed;
|
||||
}
|
||||
|
||||
#navigation h1 {
|
||||
width: 200px;
|
||||
font-size: 16px;
|
||||
font-weight: normal;
|
||||
color: #fff;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#navigation h2 {
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
color: #B0B0B0;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
#navigation ul {
|
||||
padding-left: 36px;
|
||||
margin-left: 0;
|
||||
margin-top: 12px;
|
||||
margin-bottom: 12px;
|
||||
width: 340px;
|
||||
}
|
||||
|
||||
#navigation ul li {
|
||||
list-style: decimal;
|
||||
margin-bottom: 10px;
|
||||
color: #cccddd;
|
||||
font-size: 12px;
|
||||
padding-left: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
#navigation ul li a {
|
||||
color: #ccc;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#navigation ul li a:hover {
|
||||
color: #fff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#navigation ul li a.active {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#navigation #cover {
|
||||
display: block;
|
||||
margin: 24px auto;
|
||||
}
|
||||
|
||||
#navigation #closer {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
padding: 12px;
|
||||
color: #cccddd;
|
||||
width: 24px;
|
||||
}
|
||||
|
||||
#navigation.closed {
|
||||
-webkit-transform: translate(-400px, 0);
|
||||
-moz-transform: translate(-400px, 0);
|
||||
-ms-transform: translate(-400px, 0);
|
||||
}
|
||||
|
||||
svg {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.close-x {
|
||||
stroke: #cccddd;
|
||||
fill: transparent;
|
||||
stroke-linecap: round;
|
||||
stroke-width: 5;
|
||||
}
|
||||
|
||||
.close-x:hover {
|
||||
stroke: #fff;
|
||||
}
|
||||
|
||||
#opener {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
padding: 10px;
|
||||
stroke: #E2E2E2;
|
||||
fill: #E2E2E2;
|
||||
|
||||
}
|
||||
|
||||
#opener:hover {
|
||||
stroke: #777;
|
||||
fill: #777;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/**创建一个div并固定在底部,将center中的所有a标签放在改div中**/
|
||||
$("body").append($("<div>").css({"width":"100%","height":"30px","position":"fixed","top":"0","left":"0"
|
||||
$("body").append($("<div>").css({"width":"100%","height":"100%px","position":"fixed","top":"0","left":"0"
|
||||
,"background-color":"rgba(53, 53, 53, 1)","line-height":"30px","font-size":"13px"}).attr("id","excel-header-nav"));
|
||||
$("center").css("display", "none");
|
||||
var centerChildrenA = $("center").children("a");
|
||||
@@ -15,4 +15,42 @@ $(centerChildrenA).each(function (a, b) {
|
||||
$("#excel-header-nav").append(b);
|
||||
});
|
||||
/**给所有的table添加class=table table-striped样式**/
|
||||
$("table").addClass("table table-striped");
|
||||
$("table").addClass("table table-striped");
|
||||
/**
|
||||
* openoffice,只有一个 colgroup,用col子标签来描述列,liboffice 每一列都是一个colgroup
|
||||
* var meta = $("meta[name=generator]");
|
||||
* LibreOffice //OpenOffice
|
||||
* console.log(meta[0].content);
|
||||
*/
|
||||
/**计算表头宽度----start**/
|
||||
function ______getColgroupWidth(colgroups){
|
||||
var twidth = 0;
|
||||
$(colgroups).each(function (i, g) {
|
||||
var w = $(g).attr("width");
|
||||
var s = $(g).attr("span");
|
||||
if(null==s || undefined==s){
|
||||
s=1;
|
||||
}
|
||||
twidth +=1*w*s;
|
||||
});
|
||||
return twidth;
|
||||
}
|
||||
$("table").each(function (a, b) {
|
||||
var twidth = 0;
|
||||
var tableChildrenColgroup = $(b).children("colgroup");
|
||||
if(0==tableChildrenColgroup.length){
|
||||
}else if(1==tableChildrenColgroup.length){
|
||||
var cols = tableChildrenColgroup.children("col");
|
||||
if(0==cols.length){
|
||||
twidth=______getColgroupWidth(tableChildrenColgroup);
|
||||
}else{
|
||||
$(cols).each(function (i, g) {
|
||||
var w = $(g).attr("width");
|
||||
twidth +=1*w;
|
||||
});
|
||||
}
|
||||
}else{
|
||||
twidth = ______getColgroupWidth(tableChildrenColgroup);
|
||||
}
|
||||
$(b).css({"width":twidth});
|
||||
});
|
||||
13
server/src/main/resources/static/js/jszip.min.js
vendored
Normal file
3597
server/src/main/resources/static/js/viewer.min.js
vendored
@@ -362,6 +362,9 @@ function print() {
|
||||
if (list.length > 0) {
|
||||
if (!isIE()) {
|
||||
var mywindow = window.open("打印窗口", "_blank");
|
||||
mywindow.document.write('<!DOCTYPE html><html><head>'
|
||||
+'<style media="print">.page-break { page-break-inside: avoid; page-break-after: always; }</style>'
|
||||
+'</head><body></body</html>');
|
||||
var documentBody = mywindow.document.body;
|
||||
var _iterator2 = _createForOfIteratorHelper(list),
|
||||
_step2;
|
||||
|
||||
1360
server/src/main/resources/static/ofd/js/cnofd.umd.min.js
vendored
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,13 @@
|
||||
Author
|
||||
======
|
||||
|
||||
This is the work of Emil Persson, aka Humus.
|
||||
http://www.humus.name
|
||||
|
||||
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
|
||||
http://creativecommons.org/licenses/by/3.0/
|
||||
|
After Width: | Height: | Size: 10 KiB |
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="logo" version="1.1" viewBox="0 0 60 60" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><clipPath id="d-5"><use width="100%" height="100%" overflow="visible" xlink:href="#c"/></clipPath></defs><g transform="translate(4.4 -.117)"><defs><path id="a" d="m-5-1h62v62h-62z"/></defs><clipPath id="b"><use width="100%" height="100%" overflow="visible" xlink:href="#a"/></clipPath><g clip-path="url(#b)"><defs><path id="c" d="m-5-1h62v62h-62z"/></defs><clipPath id="d"><use width="100%" height="100%" overflow="visible" xlink:href="#c"/></clipPath><g style="stroke:var(--ov_logo_border_color);" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"><path transform="translate(.039092 .02257)" d="m38.361 22.877-12.4-7.3 9.2e-5 -14.177 24.8 14.2v28.8l-12.4-7.3226z" clip-path="url(#d)" fill="#4688b4"/><path transform="rotate(120,26,30.082)" d="m38.4 22.923-12.522-7.0887 0.14178-14.4 24.78 14.166v28.8l-12.522-7.0883z" clip-path="url(#d-5)" fill="#64c0ff"/><path d="m26 30v14.4l12.4-7.3v-14.2z" clip-path="url(#d)" fill="#294e67"/><path d="m13.6 37.1v-14.2l12.4-7.3v-14.177l-24.8 14.177v28.8z" clip-path="url(#d)" fill="#294e67"/><path d="m26 15.6-12.4 7.3 12.4 7.1 12.4-7.1z" clip-path="url(#d)" fill="#64c0ff"/><path d="m13.6 22.9 12.4 7.1v14.4l-12.4-7.3z" clip-path="url(#d)" fill="#4688b4"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
34
server/src/main/resources/static/website/index.html
Normal file
@@ -0,0 +1,34 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no">
|
||||
<title>Online 3D Viewer</title>
|
||||
<link rel="stylesheet" type="text/css" href="./website/pickr.monolith.min.css">
|
||||
<script type="text/javascript" src="website/pickr.es5.min.js"></script>
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:title" content="Online 3D Viewer">
|
||||
<link rel="stylesheet" type="text/css" href="website/o3dv.website.min.css">
|
||||
<script type="text/javascript" src="website/o3dv.website.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
OV.StartWebsite ('libs');
|
||||
</script>
|
||||
<body>
|
||||
<input type="file" id="open_file" style="display:none;" multiple></input>
|
||||
<div class="header" id="header">
|
||||
<div class="title">
|
||||
|
||||
<div class="title_right" id="header_buttons"></div>
|
||||
<div class="main_file_name only_full_width" id="main_file_name"></div>
|
||||
</div>
|
||||
<div class="toolbar" id="toolbar"></div>
|
||||
</div>
|
||||
<div class="main" id="main">
|
||||
<div class="main_navigator ov_panel_set_container only_full_width" id="main_navigator"></div>
|
||||
<div class="main_splitter only_full_width" id="main_navigator_splitter"></div>
|
||||
<div class="main_viewer" id="main_viewer"></div>
|
||||
<div class="main_splitter only_full_width" id="main_sidebar_splitter"></div>
|
||||
<div class="main_sidebar ov_panel_set_right_container only_full_width" id="main_sidebar"></div>
|
||||
</div>
|
||||
<div class="intro ov_thin_scrollbar" id="intro">
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,118 @@
|
||||
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(k){var n=0;return function(){return n<k.length?{done:!1,value:k[n++]}:{done:!0}}};$jscomp.arrayIterator=function(k){return{next:$jscomp.arrayIteratorImpl(k)}};$jscomp.makeIterator=function(k){var n="undefined"!=typeof Symbol&&Symbol.iterator&&k[Symbol.iterator];return n?n.call(k):$jscomp.arrayIterator(k)};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;
|
||||
$jscomp.ISOLATE_POLYFILLS=!1;$jscomp.FORCE_POLYFILL_PROMISE=!1;$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;$jscomp.getGlobal=function(k){k=["object"==typeof globalThis&&globalThis,k,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var n=0;n<k.length;++n){var l=k[n];if(l&&l.Math==Math)return l}throw Error("Cannot find global object");};$jscomp.global=$jscomp.getGlobal(this);
|
||||
$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(k,n,l){if(k==Array.prototype||k==Object.prototype)return k;k[n]=l.value;return k};$jscomp.IS_SYMBOL_NATIVE="function"===typeof Symbol&&"symbol"===typeof Symbol("x");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX="$jscp$";
|
||||
var $jscomp$lookupPolyfilledValue=function(k,n){var l=$jscomp.propertyToPolyfillSymbol[n];if(null==l)return k[n];l=k[l];return void 0!==l?l:k[n]};$jscomp.polyfill=function(k,n,l,p){n&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(k,n,l,p):$jscomp.polyfillUnisolated(k,n,l,p))};
|
||||
$jscomp.polyfillUnisolated=function(k,n,l,p){l=$jscomp.global;k=k.split(".");for(p=0;p<k.length-1;p++){var h=k[p];if(!(h in l))return;l=l[h]}k=k[k.length-1];p=l[k];n=n(p);n!=p&&null!=n&&$jscomp.defineProperty(l,k,{configurable:!0,writable:!0,value:n})};
|
||||
$jscomp.polyfillIsolated=function(k,n,l,p){var h=k.split(".");k=1===h.length;p=h[0];p=!k&&p in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var A=0;A<h.length-1;A++){var f=h[A];if(!(f in p))return;p=p[f]}h=h[h.length-1];l=$jscomp.IS_SYMBOL_NATIVE&&"es6"===l?p[h]:null;n=n(l);null!=n&&(k?$jscomp.defineProperty($jscomp.polyfills,h,{configurable:!0,writable:!0,value:n}):n!==l&&(void 0===$jscomp.propertyToPolyfillSymbol[h]&&(l=1E9*Math.random()>>>0,$jscomp.propertyToPolyfillSymbol[h]=$jscomp.IS_SYMBOL_NATIVE?
|
||||
$jscomp.global.Symbol(h):$jscomp.POLYFILL_PREFIX+l+"$"+h),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[h],{configurable:!0,writable:!0,value:n})))};
|
||||
$jscomp.polyfill("Promise",function(k){function n(){this.batch_=null}function l(f){return f instanceof h?f:new h(function(q,v){q(f)})}if(k&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return k;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)};
|
||||
var p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q<f.length;++q){var v=f[q];f[q]=null;try{v()}catch(z){this.asyncThrow_(z)}}}this.batch_=null};n.prototype.asyncThrow_=function(f){this.asyncExecuteFunction(function(){throw f;})};var h=function(f){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();
|
||||
try{f(q.resolve,q.reject)}catch(v){q.reject(v)}};h.prototype.createResolveAndReject_=function(){function f(z){return function(F){v||(v=!0,z.call(q,F))}}var q=this,v=!1;return{resolve:f(this.resolveTo_),reject:f(this.reject_)}};h.prototype.resolveTo_=function(f){if(f===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(f instanceof h)this.settleSameAsPromise_(f);else{a:switch(typeof f){case "object":var q=null!=f;break a;case "function":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(f):
|
||||
this.fulfill_(f)}};h.prototype.resolveToNonPromiseObj_=function(f){var q=void 0;try{q=f.then}catch(v){this.reject_(v);return}"function"==typeof q?this.settleSameAsThenable_(q,f):this.fulfill_(f)};h.prototype.reject_=function(f){this.settle_(2,f)};h.prototype.fulfill_=function(f){this.settle_(1,f)};h.prototype.settle_=function(f,q){if(0!=this.state_)throw Error("Cannot settle("+f+", "+q+"): Promise already settled in state"+this.state_);this.state_=f;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();
|
||||
this.executeOnSettledCallbacks_()};h.prototype.scheduleUnhandledRejectionCheck_=function(){var f=this;p(function(){if(f.notifyUnhandledRejection_()){var q=$jscomp.global.console;"undefined"!==typeof q&&q.error(f.result_)}},1)};h.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var f=$jscomp.global.CustomEvent,q=$jscomp.global.Event,v=$jscomp.global.dispatchEvent;if("undefined"===typeof v)return!0;"function"===typeof f?f=new f("unhandledrejection",{cancelable:!0}):
|
||||
"function"===typeof q?f=new q("unhandledrejection",{cancelable:!0}):(f=$jscomp.global.document.createEvent("CustomEvent"),f.initCustomEvent("unhandledrejection",!1,!0,f));f.promise=this;f.reason=this.result_;return v(f)};h.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var f=0;f<this.onSettledCallbacks_.length;++f)A.asyncExecute(this.onSettledCallbacks_[f]);this.onSettledCallbacks_=null}};var A=new n;h.prototype.settleSameAsPromise_=function(f){var q=this.createResolveAndReject_();
|
||||
f.callWhenSettled_(q.resolve,q.reject)};h.prototype.settleSameAsThenable_=function(f,q){var v=this.createResolveAndReject_();try{f.call(q,v.resolve,v.reject)}catch(z){v.reject(z)}};h.prototype.then=function(f,q){function v(P,u){return"function"==typeof P?function(x){try{z(P(x))}catch(D){F(D)}}:u}var z,F,ea=new h(function(P,u){z=P;F=u});this.callWhenSettled_(v(f,z),v(q,F));return ea};h.prototype.catch=function(f){return this.then(void 0,f)};h.prototype.callWhenSettled_=function(f,q){function v(){switch(z.state_){case 1:f(z.result_);
|
||||
break;case 2:q(z.result_);break;default:throw Error("Unexpected state: "+z.state_);}}var z=this;null==this.onSettledCallbacks_?A.asyncExecute(v):this.onSettledCallbacks_.push(v);this.isRejectionHandled_=!0};h.resolve=l;h.reject=function(f){return new h(function(q,v){v(f)})};h.race=function(f){return new h(function(q,v){for(var z=$jscomp.makeIterator(f),F=z.next();!F.done;F=z.next())l(F.value).callWhenSettled_(q,v)})};h.all=function(f){var q=$jscomp.makeIterator(f),v=q.next();return v.done?l([]):new h(function(z,
|
||||
F){function ea(x){return function(D){P[x]=D;u--;0==u&&z(P)}}var P=[],u=0;do P.push(void 0),u++,l(v.value).callWhenSettled_(ea(P.length-1),F),v=q.next();while(!v.done)})};return h},"es6","es3");$jscomp.owns=function(k,n){return Object.prototype.hasOwnProperty.call(k,n)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(k,n){for(var l=1;l<arguments.length;l++){var p=arguments[l];if(p)for(var h in p)$jscomp.owns(p,h)&&(k[h]=p[h])}return k};
|
||||
$jscomp.polyfill("Object.assign",function(k){return k||$jscomp.assign},"es6","es3");$jscomp.checkStringArgs=function(k,n,l){if(null==k)throw new TypeError("The 'this' value for String.prototype."+l+" must not be null or undefined");if(n instanceof RegExp)throw new TypeError("First argument to String.prototype."+l+" must not be a regular expression");return k+""};
|
||||
$jscomp.polyfill("String.prototype.startsWith",function(k){return k?k:function(n,l){var p=$jscomp.checkStringArgs(this,n,"startsWith");n+="";var h=p.length,A=n.length;l=Math.max(0,Math.min(l|0,p.length));for(var f=0;f<A&&l<h;)if(p[l++]!=n[f++])return!1;return f>=A}},"es6","es3");
|
||||
$jscomp.polyfill("Array.prototype.copyWithin",function(k){function n(l){l=Number(l);return Infinity===l||-Infinity===l?l:l|0}return k?k:function(l,p,h){var A=this.length;l=n(l);p=n(p);h=void 0===h?A:n(h);l=0>l?Math.max(A+l,0):Math.min(l,A);p=0>p?Math.max(A+p,0):Math.min(p,A);h=0>h?Math.max(A+h,0):Math.min(h,A);if(l<p)for(;p<h;)p in this?this[l++]=this[p++]:(delete this[l++],p++);else for(h=Math.min(h,A+p-l),l+=h-p;h>p;)--h in this?this[--l]=this[h]:delete this[--l];return this}},"es6","es3");
|
||||
$jscomp.typedArrayCopyWithin=function(k){return k?k:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
|
||||
$jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
|
||||
var DracoDecoderModule=function(){var k="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(k=k||__filename);return function(n){function l(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b,c){var d=b+c;for(c=b;e[c]&&!(c>=d);)++c;if(16<c-b&&e.buffer&&ya)return ya.decode(e.subarray(b,c));for(d="";b<c;){var g=e[b++];if(g&128){var t=e[b++]&63;if(192==(g&224))d+=String.fromCharCode((g&31)<<6|t);else{var X=e[b++]&63;g=224==
|
||||
(g&240)?(g&15)<<12|t<<6|X:(g&7)<<18|t<<12|X<<6|e[b++]&63;65536>g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}return d}function h(e,b){return e?p(fa,e,b):""}function A(e){za=e;a.HEAP8=Y=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=fa=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=V=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function f(e){if(a.onAbort)a.onAbort(e);
|
||||
e="Aborted("+e+")";da(e);Aa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");oa(e);throw e;}function q(e){try{if(e==Q&&ha)return new Uint8Array(ha);if(pa)return pa(e);throw"both async and sync fetching of the wasm failed";}catch(b){f(b)}}function v(){if(!ha&&(Ba||ia)){if("function"==typeof fetch&&!Q.startsWith("file://"))return fetch(Q,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+Q+"'";return e.arrayBuffer()}).catch(function(){return q(Q)});
|
||||
if(qa)return new Promise(function(e,b){qa(Q,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return q(Q)})}function z(e){for(;0<e.length;){var b=e.shift();if("function"==typeof b)b(a);else{var c=b.func;"number"==typeof c?void 0===b.arg?F(c)():F(c)(b.arg):c(void 0===b.arg?null:b.arg)}}}function F(e){var b=ka[e];b||(e>=ka.length&&(ka.length=e+1),ka[e]=b=Ca.get(e));return b}function ea(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(b){V[this.ptr+4>>2]=b};this.get_type=
|
||||
function(){return V[this.ptr+4>>2]};this.set_destructor=function(b){V[this.ptr+8>>2]=b};this.get_destructor=function(){return V[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){Y[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=Y[this.ptr+12>>0]};this.set_rethrown=function(b){Y[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=Y[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);
|
||||
this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){V[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return V[this.ptr+16>>2]};this.get_exception_ptr=function(){if(Da(this.get_type()))return V[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function P(e){function b(){if(!la&&(la=!0,a.calledRun=!0,
|
||||
!Aa)){Ea=!0;z(ra);Fa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ga.unshift(a.postRun.shift());z(Ga)}}if(!(0<ba)){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)Ha.unshift(a.preRun.shift());z(Ha);0<ba||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1);b()},1)):b())}}function u(){}function x(e){return(e||u).__cache__}
|
||||
function D(e,b){var c=x(b),d=c[e];if(d)return d;d=Object.create((b||u).prototype);d.ptr=e;return c[e]=d}function aa(e){if("string"===typeof e){for(var b=0,c=0;c<e.length;++c){var d=e.charCodeAt(c);55296<=d&&57343>=d&&(d=65536+((d&1023)<<10)|e.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var g=0;g<e.length;++g){var t=e.charCodeAt(g);if(55296<=t&&57343>=t){var X=e.charCodeAt(++g);t=65536+((t&1023)<<10)|X&1023}if(127>=t){if(c>=d)break;
|
||||
b[c++]=t}else{if(2047>=t){if(c+1>=d)break;b[c++]=192|t>>6}else{if(65535>=t){if(c+2>=d)break;b[c++]=224|t>>12}else{if(c+3>=d)break;b[c++]=240|t>>18;b[c++]=128|t>>12&63}b[c++]=128|t>>6&63}b[c++]=128|t&63}}b[c]=0}e=r.alloc(b,Y);r.copy(b,Y,e);return e}return e}function sa(e){if("object"===typeof e){var b=r.alloc(e,Y);r.copy(e,Y,b);return b}return e}function Z(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=Ia();x(S)[this.ptr]=this}function R(){this.ptr=Ja();x(R)[this.ptr]=
|
||||
this}function W(){this.ptr=Ka();x(W)[this.ptr]=this}function w(){this.ptr=La();x(w)[this.ptr]=this}function C(){this.ptr=Ma();x(C)[this.ptr]=this}function G(){this.ptr=Na();x(G)[this.ptr]=this}function H(){this.ptr=Oa();x(H)[this.ptr]=this}function E(){this.ptr=Pa();x(E)[this.ptr]=this}function T(){this.ptr=Qa();x(T)[this.ptr]=this}function B(){throw"cannot construct a Status, no constructor in IDL";}function I(){this.ptr=Ra();x(I)[this.ptr]=this}function J(){this.ptr=Sa();x(J)[this.ptr]=this}function K(){this.ptr=
|
||||
Ta();x(K)[this.ptr]=this}function L(){this.ptr=Ua();x(L)[this.ptr]=this}function M(){this.ptr=Va();x(M)[this.ptr]=this}function N(){this.ptr=Wa();x(N)[this.ptr]=this}function O(){this.ptr=Xa();x(O)[this.ptr]=this}function y(){this.ptr=Ya();x(y)[this.ptr]=this}function m(){this.ptr=Za();x(m)[this.ptr]=this}n=n||{};var a="undefined"!=typeof n?n:{},Fa,oa;a.ready=new Promise(function(e,b){Fa=e;oa=b});var $a=!1,ab=!1;a.onRuntimeInitialized=function(){$a=!0;if(ab&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};
|
||||
a.onModuleParsed=function(){ab=!0;if($a&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3<e.length?!1:1==e[0]&&0<=e[1]&&5>=e[1]?!0:0!=e[0]||10<e[1]?!1:!0};var bb=Object.assign({},a),Ba="object"==typeof window,ia="function"==typeof importScripts,cb="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,U="",ta,ma;if(cb){U=ia?require("path").dirname(U)+
|
||||
"/":__dirname+"/";var db=function(){ma||(ta=require("fs"),ma=require("path"))};var eb=function(e,b){db();e=ma.normalize(e);return ta.readFileSync(e,b?void 0:"utf8")};var pa=function(e){e=eb(e,!0);e.buffer||(e=new Uint8Array(e));return e};var qa=function(e,b,c){db();e=ma.normalize(e);ta.readFile(e,function(d,g){d?c(d):b(g.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/");process.argv.slice(2);a.inspect=function(){return"[Emscripten Module object]"}}else if(Ba||ia)ia?U=self.location.href:
|
||||
"undefined"!=typeof document&&document.currentScript&&(U=document.currentScript.src),k&&(U=k),U=0!==U.indexOf("blob:")?U.substr(0,U.replace(/[?#].*/,"").lastIndexOf("/")+1):"",eb=function(e){var b=new XMLHttpRequest;b.open("GET",e,!1);b.send(null);return b.responseText},ia&&(pa=function(e){var b=new XMLHttpRequest;b.open("GET",e,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),qa=function(e,b,c){var d=new XMLHttpRequest;d.open("GET",e,!0);d.responseType="arraybuffer";
|
||||
d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};var Ad=a.print||console.log.bind(console),da=a.printErr||console.warn.bind(console);Object.assign(a,bb);bb=null;var ha;a.wasmBinary&&(ha=a.wasmBinary);"object"!=typeof WebAssembly&&f("no native wasm support detected");var na,Aa=!1,ya="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,za,Y,fa,ca,V,Ca,Ha=[],ra=[],Ga=[],Ea=!1,ba=0,ua=null,ja=null;var Q="draco_decoder.wasm";Q.startsWith("data:application/octet-stream;base64,")||
|
||||
(Q=l(Q));var ka=[],Bd=0,Cd=[null,[],[]],Dd={c:function(e){return fb(e+24)+24},b:function(e,b,c){(new ea(e)).init(b,c);Bd++;throw e;},a:function(){f("")},h:function(e,b,c){fa.copyWithin(e,b,b+c)},f:function(e){var b=fa.length;e>>>=0;if(2147483648<e)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{try{na.grow(g-za.byteLength+65535>>>16);A(na.buffer);var t=1;break a}catch(X){}t=void 0}if(t)return!0}return!1},
|
||||
g:function(e){return 52},e:function(e,b,c,d,g){return 70},d:function(e,b,c,d){for(var g=0,t=0;t<c;t++){var X=V[b>>2],gb=V[b+4>>2];b+=8;for(var va=0;va<gb;va++){var wa=fa[X+va],xa=Cd[e];0===wa||10===wa?((1===e?Ad:da)(p(xa,0)),xa.length=0):xa.push(wa)}g+=gb}V[d>>2]=g;return 0}};(function(){function e(g,t){a.asm=g.exports;na=a.asm.i;A(na.buffer);Ca=a.asm.k;ra.unshift(a.asm.j);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==ua&&(clearInterval(ua),ua=null),ja&&(g=ja,ja=null,
|
||||
g()))}function b(g){e(g.instance)}function c(g){return v().then(function(t){return WebAssembly.instantiate(t,d)}).then(function(t){return t}).then(g,function(t){da("failed to asynchronously prepare wasm: "+t);f(t)})}var d={a:Dd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba);if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){return da("Module.instantiateWasm callback failed with error: "+g),!1}(function(){return ha||"function"!=typeof WebAssembly.instantiateStreaming||Q.startsWith("data:application/octet-stream;base64,")||
|
||||
Q.startsWith("file://")||cb||"function"!=typeof fetch?c(b):fetch(Q,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(t){da("wasm streaming compile failed: "+t);da("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(oa);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.j).apply(null,arguments)};var hb=a._emscripten_bind_VoidPtr___destroy___0=function(){return(hb=a._emscripten_bind_VoidPtr___destroy___0=
|
||||
a.asm.l).apply(null,arguments)},Ia=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Ia=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.m).apply(null,arguments)},ib=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(ib=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.n).apply(null,arguments)},jb=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(jb=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.o).apply(null,arguments)},Ja=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=
|
||||
function(){return(Ja=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.p).apply(null,arguments)},kb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(kb=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.q).apply(null,arguments)},lb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(lb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.r).apply(null,arguments)},Ka=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=
|
||||
function(){return(Ka=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.s).apply(null,arguments)},mb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(mb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.t).apply(null,arguments)},La=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(La=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.u).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_size_0=function(){return(nb=a._emscripten_bind_PointAttribute_size_0=
|
||||
a.asm.v).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(ob=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.w).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(pb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.x).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(qb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.y).apply(null,
|
||||
arguments)},rb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(rb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.z).apply(null,arguments)},sb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(sb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.A).apply(null,arguments)},tb=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(tb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.B).apply(null,arguments)},ub=a._emscripten_bind_PointAttribute_byte_offset_0=
|
||||
function(){return(ub=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.C).apply(null,arguments)},vb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(vb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.D).apply(null,arguments)},wb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(wb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.E).apply(null,arguments)},Ma=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ma=
|
||||
a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.F).apply(null,arguments)},xb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(xb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.G).apply(null,arguments)},yb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(yb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.H).apply(null,arguments)},
|
||||
zb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(zb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.I).apply(null,arguments)},Ab=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(Ab=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.J).apply(null,arguments)},Bb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(Bb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=
|
||||
a.asm.K).apply(null,arguments)},Na=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Na=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.L).apply(null,arguments)},Cb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(Cb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.M).apply(null,arguments)},Db=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=
|
||||
function(){return(Db=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.N).apply(null,arguments)},Eb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(Eb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.O).apply(null,arguments)},Oa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Oa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.P).apply(null,arguments)},Fb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Fb=
|
||||
a._emscripten_bind_PointCloud_num_attributes_0=a.asm.Q).apply(null,arguments)},Gb=a._emscripten_bind_PointCloud_num_points_0=function(){return(Gb=a._emscripten_bind_PointCloud_num_points_0=a.asm.R).apply(null,arguments)},Hb=a._emscripten_bind_PointCloud___destroy___0=function(){return(Hb=a._emscripten_bind_PointCloud___destroy___0=a.asm.S).apply(null,arguments)},Pa=a._emscripten_bind_Mesh_Mesh_0=function(){return(Pa=a._emscripten_bind_Mesh_Mesh_0=a.asm.T).apply(null,arguments)},Ib=a._emscripten_bind_Mesh_num_faces_0=
|
||||
function(){return(Ib=a._emscripten_bind_Mesh_num_faces_0=a.asm.U).apply(null,arguments)},Jb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Jb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.V).apply(null,arguments)},Kb=a._emscripten_bind_Mesh_num_points_0=function(){return(Kb=a._emscripten_bind_Mesh_num_points_0=a.asm.W).apply(null,arguments)},Lb=a._emscripten_bind_Mesh___destroy___0=function(){return(Lb=a._emscripten_bind_Mesh___destroy___0=a.asm.X).apply(null,arguments)},Qa=a._emscripten_bind_Metadata_Metadata_0=
|
||||
function(){return(Qa=a._emscripten_bind_Metadata_Metadata_0=a.asm.Y).apply(null,arguments)},Mb=a._emscripten_bind_Metadata___destroy___0=function(){return(Mb=a._emscripten_bind_Metadata___destroy___0=a.asm.Z).apply(null,arguments)},Nb=a._emscripten_bind_Status_code_0=function(){return(Nb=a._emscripten_bind_Status_code_0=a.asm._).apply(null,arguments)},Ob=a._emscripten_bind_Status_ok_0=function(){return(Ob=a._emscripten_bind_Status_ok_0=a.asm.$).apply(null,arguments)},Pb=a._emscripten_bind_Status_error_msg_0=
|
||||
function(){return(Pb=a._emscripten_bind_Status_error_msg_0=a.asm.aa).apply(null,arguments)},Qb=a._emscripten_bind_Status___destroy___0=function(){return(Qb=a._emscripten_bind_Status___destroy___0=a.asm.ba).apply(null,arguments)},Ra=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ra=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.ca).apply(null,arguments)},Rb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Rb=a._emscripten_bind_DracoFloat32Array_GetValue_1=
|
||||
a.asm.da).apply(null,arguments)},Sb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Sb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.ea).apply(null,arguments)},Tb=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Tb=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.fa).apply(null,arguments)},Sa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Sa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.ga).apply(null,arguments)},Ub=a._emscripten_bind_DracoInt8Array_GetValue_1=
|
||||
function(){return(Ub=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ha).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Vb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ia).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Wb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.ja).apply(null,arguments)},Ta=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ta=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=
|
||||
a.asm.ka).apply(null,arguments)},Xb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Xb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.la).apply(null,arguments)},Yb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Yb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ma).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Zb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.na).apply(null,arguments)},Ua=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=
|
||||
function(){return(Ua=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.oa).apply(null,arguments)},$b=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return($b=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.pa).apply(null,arguments)},ac=a._emscripten_bind_DracoInt16Array_size_0=function(){return(ac=a._emscripten_bind_DracoInt16Array_size_0=a.asm.qa).apply(null,arguments)},bc=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(bc=a._emscripten_bind_DracoInt16Array___destroy___0=
|
||||
a.asm.ra).apply(null,arguments)},Va=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Va=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.sa).apply(null,arguments)},cc=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(cc=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.ta).apply(null,arguments)},dc=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(dc=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ua).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt16Array___destroy___0=
|
||||
function(){return(ec=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.va).apply(null,arguments)},Wa=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Wa=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.wa).apply(null,arguments)},fc=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(fc=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.xa).apply(null,arguments)},gc=a._emscripten_bind_DracoInt32Array_size_0=function(){return(gc=a._emscripten_bind_DracoInt32Array_size_0=
|
||||
a.asm.ya).apply(null,arguments)},hc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(hc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.za).apply(null,arguments)},Xa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Xa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.Aa).apply(null,arguments)},ic=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(ic=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.Ba).apply(null,arguments)},
|
||||
jc=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(jc=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.Ca).apply(null,arguments)},kc=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(kc=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Da).apply(null,arguments)},Ya=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Ya=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Ea).apply(null,arguments)},lc=a._emscripten_bind_MetadataQuerier_HasEntry_2=
|
||||
function(){return(lc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Fa).apply(null,arguments)},mc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(mc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Ga).apply(null,arguments)},nc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(nc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Ha).apply(null,arguments)},oc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(oc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=
|
||||
a.asm.Ia).apply(null,arguments)},pc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(pc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ja).apply(null,arguments)},qc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(qc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ka).apply(null,arguments)},rc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(rc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.La).apply(null,arguments)},
|
||||
sc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(sc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ma).apply(null,arguments)},Za=a._emscripten_bind_Decoder_Decoder_0=function(){return(Za=a._emscripten_bind_Decoder_Decoder_0=a.asm.Na).apply(null,arguments)},tc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(tc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Oa).apply(null,arguments)},uc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(uc=
|
||||
a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Pa).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Qa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(wc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Ra).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=
|
||||
a.asm.Sa).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(yc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Ta).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(zc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ua).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(Ac=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Va).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=
|
||||
function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Wa).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(Cc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Xa).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(Dc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Ya).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(Ec=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=
|
||||
a.asm.Za).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(Fc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm._a).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.$a).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.ab).apply(null,
|
||||
arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm.bb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Jc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.cb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Kc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.db).apply(null,
|
||||
arguments)},Lc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Lc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.eb).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Mc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.fb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Nc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=
|
||||
a.asm.gb).apply(null,arguments)},Oc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Oc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.hb).apply(null,arguments)},Pc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(Pc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.ib).apply(null,arguments)},Qc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Qc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=
|
||||
a.asm.jb).apply(null,arguments)},Rc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Rc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.kb).apply(null,arguments)},Sc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Sc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.lb).apply(null,arguments)},Tc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Tc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=
|
||||
a.asm.mb).apply(null,arguments)},Uc=a._emscripten_bind_Decoder___destroy___0=function(){return(Uc=a._emscripten_bind_Decoder___destroy___0=a.asm.nb).apply(null,arguments)},Vc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Vc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=a.asm.ob).apply(null,arguments)},Wc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Wc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=
|
||||
a.asm.pb).apply(null,arguments)},Xc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Xc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.qb).apply(null,arguments)},Yc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Yc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.rb).apply(null,arguments)},Zc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=
|
||||
function(){return(Zc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.sb).apply(null,arguments)},$c=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return($c=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.tb).apply(null,arguments)},ad=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(ad=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.ub).apply(null,arguments)},bd=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=
|
||||
function(){return(bd=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.vb).apply(null,arguments)},cd=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(cd=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.wb).apply(null,arguments)},dd=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(dd=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.xb).apply(null,arguments)},ed=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=
|
||||
function(){return(ed=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.yb).apply(null,arguments)},fd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(fd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.zb).apply(null,arguments)},gd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(gd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Ab).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_INVALID=
|
||||
function(){return(hd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.Bb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(id=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.Cb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(jd=a._emscripten_enum_draco_DataType_DT_UINT8=a.asm.Db).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(kd=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Eb).apply(null,
|
||||
arguments)},ld=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(ld=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Fb).apply(null,arguments)},md=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(md=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Gb).apply(null,arguments)},nd=a._emscripten_enum_draco_DataType_DT_UINT32=function(){return(nd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Hb).apply(null,arguments)},od=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(od=
|
||||
a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Ib).apply(null,arguments)},pd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(pd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Jb).apply(null,arguments)},qd=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(qd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Kb).apply(null,arguments)},rd=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(rd=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Lb).apply(null,
|
||||
arguments)},sd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(sd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Mb).apply(null,arguments)},td=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(td=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Nb).apply(null,arguments)},ud=a._emscripten_enum_draco_StatusCode_OK=function(){return(ud=a._emscripten_enum_draco_StatusCode_OK=a.asm.Ob).apply(null,arguments)},vd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(vd=
|
||||
a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Pb).apply(null,arguments)},wd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(wd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Qb).apply(null,arguments)},xd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(xd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=a.asm.Rb).apply(null,arguments)},yd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(yd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=
|
||||
a.asm.Sb).apply(null,arguments)},zd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(zd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Tb).apply(null,arguments)},fb=a._malloc=function(){return(fb=a._malloc=a.asm.Ub).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Vb).apply(null,arguments)};var Da=a.___cxa_is_pointer_type=function(){return(Da=a.___cxa_is_pointer_type=a.asm.Wb).apply(null,arguments)},la;ja=function b(){la||P();la||(ja=b)};a.run=P;if(a.preInit)for("function"==
|
||||
typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();P();u.prototype=Object.create(u.prototype);u.prototype.constructor=u;u.prototype.__class__=u;u.__cache__={};a.WrapperObject=u;a.getCache=x;a.wrapPointer=D;a.castObject=function(b,c){return D(b.ptr,c)};a.NULL=D(0);a.destroy=function(b){if(!b.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";b.__destroy__();delete x(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=
|
||||
function(b){return b.ptr};a.getClass=function(b){return b.__class__};var r={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(r.needed){for(var b=0;b<r.temps.length;b++)a._free(r.temps[b]);r.temps.length=0;a._free(r.buffer);r.buffer=0;r.size+=r.needed;r.needed=0}r.buffer||(r.size+=128,r.buffer=a._malloc(r.size),r.buffer||f(void 0));r.pos=0},alloc:function(b,c){r.buffer||f(void 0);b=b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;r.pos+b>=r.size?(0<b||f(void 0),r.needed+=b,c=a._malloc(b),r.temps.push(c)):
|
||||
(c=r.buffer+r.pos,r.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;g<b.length;g++)c[d+g]=b[g]}};Z.prototype=Object.create(u.prototype);Z.prototype.constructor=Z;Z.prototype.__class__=Z;Z.__cache__={};a.VoidPtr=Z;Z.prototype.__destroy__=Z.prototype.__destroy__=function(){hb(this.ptr)};S.prototype=Object.create(u.prototype);S.prototype.constructor=S;S.prototype.__class__=S;S.__cache__={};a.DecoderBuffer=S;S.prototype.Init=
|
||||
S.prototype.Init=function(b,c){var d=this.ptr;r.prepare();"object"==typeof b&&(b=sa(b));c&&"object"===typeof c&&(c=c.ptr);ib(d,b,c)};S.prototype.__destroy__=S.prototype.__destroy__=function(){jb(this.ptr)};R.prototype=Object.create(u.prototype);R.prototype.constructor=R;R.prototype.__class__=R;R.__cache__={};a.AttributeTransformData=R;R.prototype.transform_type=R.prototype.transform_type=function(){return kb(this.ptr)};R.prototype.__destroy__=R.prototype.__destroy__=function(){lb(this.ptr)};W.prototype=
|
||||
Object.create(u.prototype);W.prototype.constructor=W;W.prototype.__class__=W;W.__cache__={};a.GeometryAttribute=W;W.prototype.__destroy__=W.prototype.__destroy__=function(){mb(this.ptr)};w.prototype=Object.create(u.prototype);w.prototype.constructor=w;w.prototype.__class__=w;w.__cache__={};a.PointAttribute=w;w.prototype.size=w.prototype.size=function(){return nb(this.ptr)};w.prototype.GetAttributeTransformData=w.prototype.GetAttributeTransformData=function(){return D(ob(this.ptr),R)};w.prototype.attribute_type=
|
||||
w.prototype.attribute_type=function(){return pb(this.ptr)};w.prototype.data_type=w.prototype.data_type=function(){return qb(this.ptr)};w.prototype.num_components=w.prototype.num_components=function(){return rb(this.ptr)};w.prototype.normalized=w.prototype.normalized=function(){return!!sb(this.ptr)};w.prototype.byte_stride=w.prototype.byte_stride=function(){return tb(this.ptr)};w.prototype.byte_offset=w.prototype.byte_offset=function(){return ub(this.ptr)};w.prototype.unique_id=w.prototype.unique_id=
|
||||
function(){return vb(this.ptr)};w.prototype.__destroy__=w.prototype.__destroy__=function(){wb(this.ptr)};C.prototype=Object.create(u.prototype);C.prototype.constructor=C;C.prototype.__class__=C;C.__cache__={};a.AttributeQuantizationTransform=C;C.prototype.InitFromAttribute=C.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return!!xb(c,b)};C.prototype.quantization_bits=C.prototype.quantization_bits=function(){return yb(this.ptr)};C.prototype.min_value=C.prototype.min_value=
|
||||
function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return zb(c,b)};C.prototype.range=C.prototype.range=function(){return Ab(this.ptr)};C.prototype.__destroy__=C.prototype.__destroy__=function(){Bb(this.ptr)};G.prototype=Object.create(u.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};a.AttributeOctahedronTransform=G;G.prototype.InitFromAttribute=G.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return!!Cb(c,b)};G.prototype.quantization_bits=
|
||||
G.prototype.quantization_bits=function(){return Db(this.ptr)};G.prototype.__destroy__=G.prototype.__destroy__=function(){Eb(this.ptr)};H.prototype=Object.create(u.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.PointCloud=H;H.prototype.num_attributes=H.prototype.num_attributes=function(){return Fb(this.ptr)};H.prototype.num_points=H.prototype.num_points=function(){return Gb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){Hb(this.ptr)};E.prototype=
|
||||
Object.create(u.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return Ib(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=function(){return Jb(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return Kb(this.ptr)};E.prototype.__destroy__=E.prototype.__destroy__=function(){Lb(this.ptr)};T.prototype=Object.create(u.prototype);T.prototype.constructor=T;T.prototype.__class__=
|
||||
T;T.__cache__={};a.Metadata=T;T.prototype.__destroy__=T.prototype.__destroy__=function(){Mb(this.ptr)};B.prototype=Object.create(u.prototype);B.prototype.constructor=B;B.prototype.__class__=B;B.__cache__={};a.Status=B;B.prototype.code=B.prototype.code=function(){return Nb(this.ptr)};B.prototype.ok=B.prototype.ok=function(){return!!Ob(this.ptr)};B.prototype.error_msg=B.prototype.error_msg=function(){return h(Pb(this.ptr))};B.prototype.__destroy__=B.prototype.__destroy__=function(){Qb(this.ptr)};I.prototype=
|
||||
Object.create(u.prototype);I.prototype.constructor=I;I.prototype.__class__=I;I.__cache__={};a.DracoFloat32Array=I;I.prototype.GetValue=I.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Rb(c,b)};I.prototype.size=I.prototype.size=function(){return Sb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){Tb(this.ptr)};J.prototype=Object.create(u.prototype);J.prototype.constructor=J;J.prototype.__class__=J;J.__cache__={};a.DracoInt8Array=J;J.prototype.GetValue=
|
||||
J.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Ub(c,b)};J.prototype.size=J.prototype.size=function(){return Vb(this.ptr)};J.prototype.__destroy__=J.prototype.__destroy__=function(){Wb(this.ptr)};K.prototype=Object.create(u.prototype);K.prototype.constructor=K;K.prototype.__class__=K;K.__cache__={};a.DracoUInt8Array=K;K.prototype.GetValue=K.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Xb(c,b)};K.prototype.size=K.prototype.size=
|
||||
function(){return Yb(this.ptr)};K.prototype.__destroy__=K.prototype.__destroy__=function(){Zb(this.ptr)};L.prototype=Object.create(u.prototype);L.prototype.constructor=L;L.prototype.__class__=L;L.__cache__={};a.DracoInt16Array=L;L.prototype.GetValue=L.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return $b(c,b)};L.prototype.size=L.prototype.size=function(){return ac(this.ptr)};L.prototype.__destroy__=L.prototype.__destroy__=function(){bc(this.ptr)};M.prototype=Object.create(u.prototype);
|
||||
M.prototype.constructor=M;M.prototype.__class__=M;M.__cache__={};a.DracoUInt16Array=M;M.prototype.GetValue=M.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return cc(c,b)};M.prototype.size=M.prototype.size=function(){return dc(this.ptr)};M.prototype.__destroy__=M.prototype.__destroy__=function(){ec(this.ptr)};N.prototype=Object.create(u.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.DracoInt32Array=N;N.prototype.GetValue=N.prototype.GetValue=
|
||||
function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return fc(c,b)};N.prototype.size=N.prototype.size=function(){return gc(this.ptr)};N.prototype.__destroy__=N.prototype.__destroy__=function(){hc(this.ptr)};O.prototype=Object.create(u.prototype);O.prototype.constructor=O;O.prototype.__class__=O;O.__cache__={};a.DracoUInt32Array=O;O.prototype.GetValue=O.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return ic(c,b)};O.prototype.size=O.prototype.size=function(){return jc(this.ptr)};
|
||||
O.prototype.__destroy__=O.prototype.__destroy__=function(){kc(this.ptr)};y.prototype=Object.create(u.prototype);y.prototype.constructor=y;y.prototype.__class__=y;y.__cache__={};a.MetadataQuerier=y;y.prototype.HasEntry=y.prototype.HasEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:aa(c);return!!lc(d,b,c)};y.prototype.GetIntEntry=y.prototype.GetIntEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===
|
||||
typeof c?c.ptr:aa(c);return mc(d,b,c)};y.prototype.GetIntEntryArray=y.prototype.GetIntEntryArray=function(b,c,d){var g=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:aa(c);d&&"object"===typeof d&&(d=d.ptr);nc(g,b,c,d)};y.prototype.GetDoubleEntry=y.prototype.GetDoubleEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:aa(c);return oc(d,b,c)};y.prototype.GetStringEntry=y.prototype.GetStringEntry=function(b,
|
||||
c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:aa(c);return h(pc(d,b,c))};y.prototype.NumEntries=y.prototype.NumEntries=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return qc(c,b)};y.prototype.GetEntryName=y.prototype.GetEntryName=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return h(rc(d,b,c))};y.prototype.__destroy__=y.prototype.__destroy__=function(){sc(this.ptr)};m.prototype=Object.create(u.prototype);
|
||||
m.prototype.constructor=m;m.prototype.__class__=m;m.__cache__={};a.Decoder=m;m.prototype.DecodeArrayToPointCloud=m.prototype.DecodeArrayToPointCloud=function(b,c,d){var g=this.ptr;r.prepare();"object"==typeof b&&(b=sa(b));c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return D(tc(g,b,c,d),B)};m.prototype.DecodeArrayToMesh=m.prototype.DecodeArrayToMesh=function(b,c,d){var g=this.ptr;r.prepare();"object"==typeof b&&(b=sa(b));c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&
|
||||
(d=d.ptr);return D(uc(g,b,c,d),B)};m.prototype.GetAttributeId=m.prototype.GetAttributeId=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return vc(d,b,c)};m.prototype.GetAttributeIdByName=m.prototype.GetAttributeIdByName=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:aa(c);return wc(d,b,c)};m.prototype.GetAttributeIdByMetadataEntry=m.prototype.GetAttributeIdByMetadataEntry=function(b,c,d){var g=
|
||||
this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:aa(c);d=d&&"object"===typeof d?d.ptr:aa(d);return xc(g,b,c,d)};m.prototype.GetAttribute=m.prototype.GetAttribute=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(yc(d,b,c),w)};m.prototype.GetAttributeByUniqueId=m.prototype.GetAttributeByUniqueId=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(zc(d,b,
|
||||
c),w)};m.prototype.GetMetadata=m.prototype.GetMetadata=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return D(Ac(c,b),T)};m.prototype.GetAttributeMetadata=m.prototype.GetAttributeMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(Bc(d,b,c),T)};m.prototype.GetFaceFromMesh=m.prototype.GetFaceFromMesh=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&
|
||||
(d=d.ptr);return!!Cc(g,b,c,d)};m.prototype.GetTriangleStripsFromMesh=m.prototype.GetTriangleStripsFromMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return Dc(d,b,c)};m.prototype.GetTrianglesUInt16Array=m.prototype.GetTrianglesUInt16Array=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ec(g,b,c,d)};m.prototype.GetTrianglesUInt32Array=m.prototype.GetTrianglesUInt32Array=
|
||||
function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Fc(g,b,c,d)};m.prototype.GetAttributeFloat=m.prototype.GetAttributeFloat=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Gc(g,b,c,d)};m.prototype.GetAttributeFloatForAllPoints=m.prototype.GetAttributeFloatForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&
|
||||
(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Hc(g,b,c,d)};m.prototype.GetAttributeIntForAllPoints=m.prototype.GetAttributeIntForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ic(g,b,c,d)};m.prototype.GetAttributeInt8ForAllPoints=m.prototype.GetAttributeInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&
|
||||
(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Jc(g,b,c,d)};m.prototype.GetAttributeUInt8ForAllPoints=m.prototype.GetAttributeUInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Kc(g,b,c,d)};m.prototype.GetAttributeInt16ForAllPoints=m.prototype.GetAttributeInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&
|
||||
(d=d.ptr);return!!Lc(g,b,c,d)};m.prototype.GetAttributeUInt16ForAllPoints=m.prototype.GetAttributeUInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Mc(g,b,c,d)};m.prototype.GetAttributeInt32ForAllPoints=m.prototype.GetAttributeInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Nc(g,
|
||||
b,c,d)};m.prototype.GetAttributeUInt32ForAllPoints=m.prototype.GetAttributeUInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Oc(g,b,c,d)};m.prototype.GetAttributeDataArrayForAllPoints=m.prototype.GetAttributeDataArrayForAllPoints=function(b,c,d,g,t){var X=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);g&&"object"===typeof g&&
|
||||
(g=g.ptr);t&&"object"===typeof t&&(t=t.ptr);return!!Pc(X,b,c,d,g,t)};m.prototype.SkipAttributeTransform=m.prototype.SkipAttributeTransform=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Qc(c,b)};m.prototype.GetEncodedGeometryType_Deprecated=m.prototype.GetEncodedGeometryType_Deprecated=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Rc(c,b)};m.prototype.DecodeBufferToPointCloud=m.prototype.DecodeBufferToPointCloud=function(b,c){var d=this.ptr;b&&"object"===typeof b&&
|
||||
(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(Sc(d,b,c),B)};m.prototype.DecodeBufferToMesh=m.prototype.DecodeBufferToMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(Tc(d,b,c),B)};m.prototype.__destroy__=m.prototype.__destroy__=function(){Uc(this.ptr)};(function(){function b(){a.ATTRIBUTE_INVALID_TRANSFORM=Vc();a.ATTRIBUTE_NO_TRANSFORM=Wc();a.ATTRIBUTE_QUANTIZATION_TRANSFORM=Xc();a.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Yc();a.INVALID=Zc();
|
||||
a.POSITION=$c();a.NORMAL=ad();a.COLOR=bd();a.TEX_COORD=cd();a.GENERIC=dd();a.INVALID_GEOMETRY_TYPE=ed();a.POINT_CLOUD=fd();a.TRIANGULAR_MESH=gd();a.DT_INVALID=hd();a.DT_INT8=id();a.DT_UINT8=jd();a.DT_INT16=kd();a.DT_UINT16=ld();a.DT_INT32=md();a.DT_UINT32=nd();a.DT_INT64=od();a.DT_UINT64=pd();a.DT_FLOAT32=qd();a.DT_FLOAT64=rd();a.DT_BOOL=sd();a.DT_TYPES_COUNT=td();a.OK=ud();a.DRACO_ERROR=vd();a.IO_ERROR=wd();a.INVALID_PARAMETER=xd();a.UNSUPPORTED_VERSION=yd();a.UNKNOWN_VERSION=zd()}Ea?b():ra.unshift(b)})();
|
||||
if("function"===typeof a.onModuleParsed)a.onModuleParsed();a.Decoder.prototype.GetEncodedGeometryType=function(b){if(b.__class__&&b.__class__===a.DecoderBuffer)return a.Decoder.prototype.GetEncodedGeometryType_Deprecated(b);if(8>b.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();
|
||||
"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule);
|
||||