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>
This commit is contained in:
gaoxingzaq
2022-12-28 10:17:06 +08:00
committed by GitHub
parent aa66173625
commit 69566834ea
96 changed files with 320274 additions and 708 deletions

View File

@@ -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
登记下如果节省了你的三方预览服务费用也愿意支持下的话可点击下方捐助请作者喝杯咖啡也是非常感谢

View File

@@ -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>

Binary file not shown.

View File

@@ -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>

View File

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

View File

@@ -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}", "");
//处理之后转换成字符数组

View File

@@ -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");

View File

@@ -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";

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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;
}
/**
* 通过文件名获取文件后缀
*

View File

@@ -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;
}
}
/**

View File

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

View File

@@ -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 {

View 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%;
}

View 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>

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -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

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

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

View File

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -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;

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -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/

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 3.4 KiB

View 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>

View File

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

Some files were not shown because too many files have changed in this diff Show More