├── .gitignore ├── README.md ├── README_zh_CN.md ├── examples ├── examples_jt_toolkit.sln ├── msvc64Debug_vs2017.bat ├── osgexamples │ ├── Plugins jt │ │ ├── OpenSceneGraphVersionInfo.rc │ │ ├── Plugins jt.vcxproj │ │ ├── Plugins jt.vcxproj.filters │ │ ├── README.md │ │ ├── ReaderWriterJT.cpp │ │ └── load_jt.cpp │ └── osgviewer_jt │ │ ├── osgviewer_jt.cpp │ │ ├── osgviewer_jt.vcxproj │ │ ├── osgviewer_jt.vcxproj.filters │ │ └── osgviewer_jt.vcxproj.user └── traverse │ ├── PrintTraverser.cpp │ ├── PrintTraverser.h │ ├── traverse.cpp │ ├── traverse.vcxproj │ ├── traverse.vcxproj.filters │ └── traverse.vcxproj.user ├── html ├── _dx_jt_attrib_8h_source.html ├── _dx_jt_c_a_d_exporter_8h_source.html ├── _dx_jt_c_a_d_importer_8h_source.html ├── _dx_jt_entity_8h_source.html ├── _dx_jt_entity_factory_8h_source.html ├── _dx_jt_hierarchy_8h_source.html ├── _dx_jt_property_8h_source.html ├── _dx_jt_shape_8h_source.html ├── _dx_jt_traverser_8h_source.html ├── _dx_jt_tri_strip_set_8h_source.html ├── annotated.html ├── bc_s.png ├── bdwn.png ├── class_dx_jt_assembly-members.html ├── class_dx_jt_assembly.html ├── class_dx_jt_assembly.png ├── class_dx_jt_attrib-members.html ├── class_dx_jt_attrib.html ├── class_dx_jt_attrib.png ├── class_dx_jt_c_a_d_exporter-members.html ├── class_dx_jt_c_a_d_exporter.html ├── class_dx_jt_c_a_d_exporter.png ├── class_dx_jt_c_a_d_importer-members.html ├── class_dx_jt_c_a_d_importer.html ├── class_dx_jt_c_a_d_importer.png ├── class_dx_jt_entity-members.html ├── class_dx_jt_entity.html ├── class_dx_jt_entity.png ├── class_dx_jt_entity_factory-members.html ├── class_dx_jt_entity_factory.html ├── class_dx_jt_hierarchy-members.html ├── class_dx_jt_hierarchy.html ├── class_dx_jt_hierarchy.png ├── class_dx_jt_instance-members.html ├── class_dx_jt_instance.html ├── class_dx_jt_instance.png ├── class_dx_jt_material-members.html ├── class_dx_jt_material.html ├── class_dx_jt_material.png ├── class_dx_jt_part-members.html ├── class_dx_jt_part.html ├── class_dx_jt_part.png ├── class_dx_jt_property-members.html ├── class_dx_jt_property.html ├── class_dx_jt_property.png ├── class_dx_jt_shape-members.html ├── class_dx_jt_shape.html ├── class_dx_jt_shape.png ├── class_dx_jt_transform-members.html ├── class_dx_jt_transform.html ├── class_dx_jt_transform.png ├── class_dx_jt_traverser-members.html ├── class_dx_jt_traverser.html ├── class_dx_jt_tri_strip_set-members.html ├── class_dx_jt_tri_strip_set.html ├── class_dx_jt_tri_strip_set.png ├── class_dx_jt_unit_hierarchy-members.html ├── class_dx_jt_unit_hierarchy.html ├── class_dx_jt_unit_hierarchy.png ├── classes.html ├── closed.png ├── dir_d44c64559bbebec7f509842c48db8b23.html ├── doc.png ├── doxygen.css ├── doxygen.svg ├── dynsections.js ├── files.html ├── folderclosed.png ├── folderopen.png ├── functions.html ├── functions_func.html ├── hierarchy.html ├── index.html ├── jquery.js ├── menu.js ├── menudata.js ├── nav_f.png ├── nav_g.png ├── nav_h.png ├── open.png ├── search │ ├── all_0.html │ ├── all_0.js │ ├── all_1.html │ ├── all_1.js │ ├── all_2.html │ ├── all_2.js │ ├── all_3.html │ ├── all_3.js │ ├── all_4.html │ ├── all_4.js │ ├── all_5.html │ ├── all_5.js │ ├── all_6.html │ ├── all_6.js │ ├── all_7.html │ ├── all_7.js │ ├── all_8.html │ ├── all_8.js │ ├── all_9.html │ ├── all_9.js │ ├── classes_0.html │ ├── classes_0.js │ ├── close.svg │ ├── functions_0.html │ ├── functions_0.js │ ├── functions_1.html │ ├── functions_1.js │ ├── functions_2.html │ ├── functions_2.js │ ├── functions_3.html │ ├── functions_3.js │ ├── functions_4.html │ ├── functions_4.js │ ├── functions_5.html │ ├── functions_5.js │ ├── functions_6.html │ ├── functions_6.js │ ├── functions_7.html │ ├── functions_7.js │ ├── mag_sel.svg │ ├── nomatches.html │ ├── pages_0.html │ ├── pages_0.js │ ├── search.css │ ├── search.js │ ├── search_l.png │ ├── search_m.png │ ├── search_r.png │ └── searchdata.js ├── splitbar.png ├── sync_off.png ├── sync_on.png ├── tab_a.png ├── tab_b.png ├── tab_h.png ├── tab_s.png └── tabs.css ├── include ├── DxJtAttrib.h ├── DxJtCADExporter.h ├── DxJtCADImporter.h ├── DxJtEntity.h ├── DxJtEntityFactory.h ├── DxJtHierarchy.h ├── DxJtProperty.h ├── DxJtShape.h ├── DxJtTraverser.h └── DxJtTriStripSet.h ├── index.html ├── samples ├── CoffeeMaker.jt ├── example_block_jt10.3.jt ├── example_block_jt8.1.jt ├── example_block_jt9.5.jt ├── opening_protection_plate1_jt8.0.jt ├── opening_protection_plate1_jt9.5.jt └── san2.jt └── x64_v141 ├── Debug ├── dxjt_toolkit.dll ├── dxjt_toolkit.lib ├── dxjt_toolkit.lic ├── dxjt_toolkit.pdb ├── libdximpjt.dll ├── libdximpjt.lib ├── libdximpjt.pdb ├── liblzma.dll └── zlib.dll └── Release ├── dxjt_toolkit.dll ├── dxjt_toolkit.lib ├── dxjt_toolkit.lic ├── libdximpjt.dll ├── libdximpjt.lib ├── liblzma.dll └── zlib.dll /.gitignore: -------------------------------------------------------------------------------- 1 | # file types to ignore 2 | 3 | *.vcxproj.user 4 | .vs/ 5 | Libraryx64/ 6 | x64/ 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dxjt_toolkit 2 | 3 | Author: bitbybit3d@163.com 4 | 5 | dxjt_toolkit is a C++ API library, it provides applications with the capablity to: 6 | - read a JT file (JT 8.0 - JT 10.5 format) 7 | - write to a JT file (saved as JT 8.1 format) 8 | 9 | 10 | # Overview 11 | Personal works, the code for **libdxjt** and **dxjt_toolkit** is not free, only open source about usage and demonstration cases. 12 | 13 | **libdxjt.dll** is used to parse JT format from file content, while **dxjt_toolkit** will create a similar assembly organization 14 | structure like JtOpen Toolkit do. 15 | 16 | dxjt_toolkit relies on libdxjt.dll, while libdxjt.dll relies on zlib.dll and liblzma.dll 17 | 18 | 19 | ## Example 20 | 21 | ### examples/traverse 22 | A example for read JT file. 23 | 24 | 25 | ### examples/osgexamples 26 | **Plugins jt** is a plugin for openscenegraph to read a JT file. 27 | 28 | 29 | ## Change Log 30 | - Add prefix Dx to all types of interface Header file 31 | - fix the Move-to-Front decodec problem in JT 10 version. 32 | 33 | 34 | ### TODO 35 | - add cmake support 36 | - support multi-threaded loading 37 | 38 | 39 | # References 40 | - JT-v8.1_File_Format_Reference.PDF 41 | - JT-v95_File_Format_Reference_Rev-D.pdf 42 | - ISO14306-2012 Industrial automation systems and integration - JT file format specification for 3D visualization 43 | - ISO14306-2017 Industrial automation systems and integration - JT file format specification for 3D visualization 44 | - JT-V10.5 Format Description and annexs 10292019_tcm27-58011.pdf 45 | -------------------------------------------------------------------------------- /README_zh_CN.md: -------------------------------------------------------------------------------- 1 | # dxjt_toolkit 2 | 3 | Author: bitbybit3d@163.com 4 | 5 | dxjt_toolkit 以C++ API形式,提供以下能力: 6 | - 读取 JT 8.0 - JT 10.5格式 (限于LSG Segment、RangeLOD、Properties、Attributes等) 7 | - 以 JT8.1 个数输出至 JT 文件 (不带Instance的部件可以在Jt2Go正常打开) 8 | 9 | 10 | # 简介 11 | 个人作品,底层实现 **libdxjt** 和 **dxjt_toolkit** 不开源,仅开源用法与演示案例。 12 | 13 | **libdxjt.dll** 为贴近JT格式解析文件内容,而 **dxjt_toolkit** 则类比 JTOpen Toolkit 转换成类似的装配组织结构。 14 | 15 | dxjt_toolkit 依赖 libdxjt.dll,而 libdxjt.dll 依赖 zlib.dll 和 liblzma.dll。 16 | 17 | 18 | ## 示例 19 | 20 | ### examples/traverse 21 | 以控制台形式,打开JT文件,遍历查询它的内容 22 | 23 | ### examples/osgexamples 24 | 项目 **Plugins jt** 系为OSG定制的可以读取JT文件的插件,将产生 osgdb_jtd.dll,若编译成功,会自动拷贝至 OSG 目录,但前提是 25 | OSG_DIR 变量有定义。 26 | 27 | 项目 osgviewer_jt 仅为方便加载 jt文件用于测试。 28 | 29 | ### JtMFCViewer 30 | 未提供源码,在发行版处可以找到,但其实只是 OpenSceneGraph 内的 MFC 范例,额外添加 osgdb_jt.dll 插件用于读取JT文件而已。 31 | 32 | 33 | ## 重要建议 34 | 在 DxJtShape 类,建议采用 getTriangles() 接口一次获取该shape所包含的所有网格数据 35 | 36 | 37 | ## Change Log 38 | - 将接口头文件各类,加前缀 Dx,目的是为了加大与 JtOpen 头文件的区分度 39 | - 解决 JT10 版本里边的 Move-to-Front 解码问题 40 | - 修复读取某些JT文件时的错误问题 41 | 42 | 43 | ### TODO 44 | - 支持多线程加载 45 | - 增加 Primitive Set 解析 46 | - 了解 JT格式里 JT_PROP_NAME 的构件规则,确保带有Instance的装配可以正确写入(只影响JT格式写出) 47 | 48 | 49 | # 参考资源 50 | - JT-v8.1_File_Format_Reference.PDF 51 | - JT-v95_File_Format_Reference_Rev-D.pdf 52 | - ISO14306-2012 Industrial automation systems and integration - JT file format specification for 3D visualization 53 | - ISO14306-2017 Industrial automation systems and integration - JT file format specification for 3D visualization 54 | - JT-V10.5 Format Description and annexs 10292019_tcm27-58011.pdf 55 | -------------------------------------------------------------------------------- /examples/examples_jt_toolkit.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.28307.757 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "traverse", "traverse\traverse.vcxproj", "{1200D887-D359-4E39-B89E-20902840A924}" 7 | EndProject 8 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "osgexamples", "osgexamples", "{A2224645-F646-46C8-8352-561A9912CBEC}" 9 | EndProject 10 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Plugins jt", "osgexamples\Plugins jt\Plugins jt.vcxproj", "{AB1AB38C-6B2B-4CA5-9DB6-223EBED472B3}" 11 | EndProject 12 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "osgviewer_jt", "osgexamples\osgviewer_jt\osgviewer_jt.vcxproj", "{66AD8E4B-1AD1-494C-8DE7-7A704040A456}" 13 | EndProject 14 | Global 15 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 16 | Debug|x64 = Debug|x64 17 | Debug|x86 = Debug|x86 18 | Release|x64 = Release|x64 19 | Release|x86 = Release|x86 20 | EndGlobalSection 21 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 22 | {1200D887-D359-4E39-B89E-20902840A924}.Debug|x64.ActiveCfg = Debug|x64 23 | {1200D887-D359-4E39-B89E-20902840A924}.Debug|x64.Build.0 = Debug|x64 24 | {1200D887-D359-4E39-B89E-20902840A924}.Debug|x86.ActiveCfg = Debug|Win32 25 | {1200D887-D359-4E39-B89E-20902840A924}.Debug|x86.Build.0 = Debug|Win32 26 | {1200D887-D359-4E39-B89E-20902840A924}.Release|x64.ActiveCfg = Release|x64 27 | {1200D887-D359-4E39-B89E-20902840A924}.Release|x64.Build.0 = Release|x64 28 | {1200D887-D359-4E39-B89E-20902840A924}.Release|x86.ActiveCfg = Release|Win32 29 | {1200D887-D359-4E39-B89E-20902840A924}.Release|x86.Build.0 = Release|Win32 30 | {AB1AB38C-6B2B-4CA5-9DB6-223EBED472B3}.Debug|x64.ActiveCfg = Debug|x64 31 | {AB1AB38C-6B2B-4CA5-9DB6-223EBED472B3}.Debug|x64.Build.0 = Debug|x64 32 | {AB1AB38C-6B2B-4CA5-9DB6-223EBED472B3}.Debug|x86.ActiveCfg = Debug|Win32 33 | {AB1AB38C-6B2B-4CA5-9DB6-223EBED472B3}.Debug|x86.Build.0 = Debug|Win32 34 | {AB1AB38C-6B2B-4CA5-9DB6-223EBED472B3}.Release|x64.ActiveCfg = Release|x64 35 | {AB1AB38C-6B2B-4CA5-9DB6-223EBED472B3}.Release|x64.Build.0 = Release|x64 36 | {AB1AB38C-6B2B-4CA5-9DB6-223EBED472B3}.Release|x86.ActiveCfg = Release|Win32 37 | {AB1AB38C-6B2B-4CA5-9DB6-223EBED472B3}.Release|x86.Build.0 = Release|Win32 38 | {66AD8E4B-1AD1-494C-8DE7-7A704040A456}.Debug|x64.ActiveCfg = Debug|x64 39 | {66AD8E4B-1AD1-494C-8DE7-7A704040A456}.Debug|x64.Build.0 = Debug|x64 40 | {66AD8E4B-1AD1-494C-8DE7-7A704040A456}.Debug|x86.ActiveCfg = Debug|Win32 41 | {66AD8E4B-1AD1-494C-8DE7-7A704040A456}.Debug|x86.Build.0 = Debug|Win32 42 | {66AD8E4B-1AD1-494C-8DE7-7A704040A456}.Release|x64.ActiveCfg = Release|x64 43 | {66AD8E4B-1AD1-494C-8DE7-7A704040A456}.Release|x64.Build.0 = Release|x64 44 | {66AD8E4B-1AD1-494C-8DE7-7A704040A456}.Release|x86.ActiveCfg = Release|Win32 45 | {66AD8E4B-1AD1-494C-8DE7-7A704040A456}.Release|x86.Build.0 = Release|Win32 46 | EndGlobalSection 47 | GlobalSection(SolutionProperties) = preSolution 48 | HideSolutionNode = FALSE 49 | EndGlobalSection 50 | GlobalSection(NestedProjects) = preSolution 51 | {AB1AB38C-6B2B-4CA5-9DB6-223EBED472B3} = {A2224645-F646-46C8-8352-561A9912CBEC} 52 | {66AD8E4B-1AD1-494C-8DE7-7A704040A456} = {A2224645-F646-46C8-8352-561A9912CBEC} 53 | EndGlobalSection 54 | GlobalSection(ExtensibilityGlobals) = postSolution 55 | SolutionGuid = {612AA477-5314-4DBF-9619-66C1CD389E51} 56 | EndGlobalSection 57 | EndGlobal 58 | -------------------------------------------------------------------------------- /examples/msvc64Debug_vs2017.bat: -------------------------------------------------------------------------------- 1 | set OSG_DIR=%~d0\sources\contrib\openscenegraph\OpenSceneGraph-3.6.5-install\x64-Debug 2 | set OSG_3RDPARTY_DIR=%OSG_DIR%\..\..\3rdParty_x64 3 | 4 | set PATH=%OSG_3RDPARTY_DIR%\x64\bin;%OSG_DIR%\bin;%PATH% 5 | 6 | set OSG_FILE_PATH=%OSG_DIR%\..\..\OpenSceneGraph-Data-3.4.0;%OSG_DIR%\..\..\OpenSceneGraph-Data-3.4.0\Images 7 | set OSG_WINDOW=50 50 640 480 8 | set OSG_THREADING=SingleThreaded 9 | 10 | set "PATH=%PATH%;%ProgramFiles(x86)%\Microsoft Visual Studio\Installer" 11 | for /f "usebackq delims=" %%i in (`vswhere.exe -version "[17.0,17.99]" -requires Microsoft.VisualStudio.Workload.NativeDesktop -property installationPath`) do ( 12 | set "DevEnvDir=%%i\Common7\IDE\" 13 | ) 14 | 15 | start "" "%DevEnvDir%\devenv.exe" examples_jt_toolkit.sln 16 | -------------------------------------------------------------------------------- /examples/osgexamples/Plugins jt/OpenSceneGraphVersionInfo.rc: -------------------------------------------------------------------------------- 1 | 1 VERSIONINFO 2 | FILEVERSION 3, 6, 5, 158 3 | PRODUCTVERSION 3, 6, 5, 158 4 | FILEFLAGSMASK 0x17L 5 | #ifdef _DEBUG 6 | FILEFLAGS 0x1L 7 | #else 8 | FILEFLAGS 0x0L 9 | #endif 10 | FILEOS 0x4L 11 | FILETYPE 0x0L 12 | FILESUBTYPE 0x0L 13 | BEGIN 14 | BLOCK "StringFileInfo" 15 | BEGIN 16 | BLOCK "040904b0" 17 | BEGIN 18 | VALUE "FileDescription", "OpenSceneGraph Binary" 19 | VALUE "FileVersion", "3, 6, 5, 158" 20 | VALUE "InternalName", "OSG" 21 | VALUE "LegalCopyright", "Copyright (C) 2021" 22 | VALUE "OriginalFilename", "" 23 | VALUE "ProductName", "OpenSceneGraph" 24 | VALUE "ProductVersion", "3, 6, 5, 158" 25 | END 26 | END 27 | BLOCK "VarFileInfo" 28 | BEGIN 29 | VALUE "Translation", 0x409, 1200 30 | END 31 | END 32 | -------------------------------------------------------------------------------- /examples/osgexamples/Plugins jt/Plugins jt.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;ipp;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | 源文件 20 | 21 | 22 | 源文件 23 | 24 | 25 | 26 | 27 | 资源文件 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /examples/osgexamples/Plugins jt/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/examples/osgexamples/Plugins jt/README.md -------------------------------------------------------------------------------- /examples/osgexamples/Plugins jt/ReaderWriterJT.cpp: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // Copyright (C) 2019 by bitbybit3d, All rights reserved. 3 | // Author: bitbybit3d@163.com 4 | // 5 | // 6 | // THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 7 | // EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 8 | // MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 9 | ////////////////////////////////////////////////////////////////////////////// 10 | #include 11 | #include 12 | #include 13 | 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | 20 | #include 21 | 22 | // in load_jt.cpp file 23 | extern osg::Node* load_jt (const wchar_t *filename, const osgDB::ReaderWriter::Options* options); 24 | 25 | class ReaderWriterJT : public osgDB::ReaderWriter 26 | { 27 | public: 28 | ReaderWriterJT() { 29 | supportsExtension("jt", "jt file format"); 30 | } 31 | 32 | virtual const char* className() { 33 | return "JT File Reader"; 34 | } 35 | 36 | virtual ReadResult readNode(const std::string& filename, const osgDB::ReaderWriter::Options* options) const; 37 | }; 38 | 39 | REGISTER_OSGPLUGIN(jt, ReaderWriterJT) 40 | 41 | osgDB::ReaderWriter::ReadResult ReaderWriterJT::readNode(const std::string& fname, const osgDB::ReaderWriter::Options* options) const 42 | { 43 | std::string ext = osgDB::getLowerCaseFileExtension(fname); 44 | if (!acceptsExtension(ext)) return ReadResult::FILE_NOT_HANDLED; 45 | 46 | std::string fileName = osgDB::findDataFile( fname, options ); 47 | if (fileName.empty()) return ReadResult::FILE_NOT_FOUND; 48 | 49 | OSG_INFO << "ReaderWriterSTL::readNode(" << fileName.c_str() << ")" << std::endl; 50 | 51 | wchar_t buf_wstr[_MAX_PATH]; 52 | size_t numConverted = 0; 53 | size_t flen = fileName.size(); 54 | 55 | mbstowcs_s(&numConverted, buf_wstr, _MAX_PATH, fileName.c_str(), flen); 56 | return load_jt(buf_wstr, options); 57 | } 58 | -------------------------------------------------------------------------------- /examples/osgexamples/Plugins jt/load_jt.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/examples/osgexamples/Plugins jt/load_jt.cpp -------------------------------------------------------------------------------- /examples/osgexamples/osgviewer_jt/osgviewer_jt.cpp: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // Copyright (C) 2019 by bitbybit3d, All rights reserved. 3 | // Author: bitbybit3d@163.com 4 | // 5 | // 6 | // THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 7 | // EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 8 | // MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 9 | ////////////////////////////////////////////////////////////////////////////// 10 | #include 11 | 12 | #if defined(_WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(_WIN64) 13 | #include 14 | #endif 15 | 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | int to_viewer(const osg::Node* sceneNode) 22 | { 23 | osg::ref_ptr traits = new osg::GraphicsContext::Traits; 24 | traits->x = 50; 25 | traits->y = 50; 26 | traits->width = 640; 27 | traits->height = 480; 28 | traits->windowName = "3D File Viewer"; 29 | traits->windowDecoration = true; 30 | traits->doubleBuffer = true; 31 | 32 | osg::ref_ptr gc = 33 | osg::GraphicsContext::createGraphicsContext( traits.get() ); 34 | 35 | osgViewer::Viewer viewer; 36 | 37 | osg::Camera* camera = viewer.getCamera(); 38 | 39 | camera->setGraphicsContext(gc.get()); 40 | camera->setViewport( new osg::Viewport(0, 0, traits->width, traits->height) ); 41 | viewer.addEventHandler(new osgGA::StateSetManipulator(viewer.getCamera()->getOrCreateStateSet())); 42 | viewer.setSceneData( const_cast(sceneNode) ); 43 | viewer.addEventHandler(new osgViewer::StatsHandler); 44 | return viewer.run(); 45 | } 46 | 47 | 48 | int main(int argc, char* argv[]) 49 | { 50 | const char* fileName = NULL; 51 | if (argc < 2) 52 | { 53 | std::cout << "Usage: osgviewer_jt file.jt" << std::endl; 54 | return -1; 55 | } 56 | fileName = argv[1]; 57 | 58 | osg::Node* sceneNode = osgDB::readNodeFile(fileName); 59 | 60 | if (sceneNode != nullptr) 61 | return to_viewer(sceneNode); 62 | else 63 | return -1; 64 | } 65 | -------------------------------------------------------------------------------- /examples/osgexamples/osgviewer_jt/osgviewer_jt.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 23 | 24 | 25 | 15.0 26 | {66AD8E4B-1AD1-494C-8DE7-7A704040A456} 27 | Win32Proj 28 | osgviewerjt 29 | 10.0 30 | 31 | 32 | 33 | Application 34 | true 35 | v143 36 | Unicode 37 | 38 | 39 | Application 40 | false 41 | v143 42 | true 43 | Unicode 44 | 45 | 46 | Application 47 | true 48 | v143 49 | Unicode 50 | 51 | 52 | Application 53 | false 54 | v143 55 | true 56 | Unicode 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | true 78 | $(SolutionDir)Library$(Platform)\$(Configuration)\$(ProjectName)\ 79 | 80 | 81 | true 82 | 83 | 84 | false 85 | 86 | 87 | false 88 | $(SolutionDir)Library$(Platform)\$(Configuration)\$(ProjectName)\ 89 | 90 | 91 | 92 | Level3 93 | Disabled 94 | true 95 | _DEBUG;_CONSOLE;%(PreprocessorDefinitions) 96 | $(OSG_DIR)\include;%(AdditionalIncludeDirectories) 97 | 98 | 99 | Console 100 | true 101 | $(OSG_DIR)\lib;%(AdditionalLibraryDirectories) 102 | osgd.lib;osgDBd.lib;osgGAd.lib;osgViewerd.lib;%(AdditionalDependencies) 103 | 104 | 105 | 106 | 107 | Use 108 | Level3 109 | Disabled 110 | true 111 | WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) 112 | true 113 | pch.h 114 | 115 | 116 | Console 117 | true 118 | 119 | 120 | 121 | 122 | Use 123 | Level3 124 | MaxSpeed 125 | true 126 | true 127 | true 128 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 129 | true 130 | pch.h 131 | 132 | 133 | Console 134 | true 135 | true 136 | true 137 | 138 | 139 | 140 | 141 | Level3 142 | MaxSpeed 143 | true 144 | true 145 | true 146 | NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 147 | $(OSG_DIR)\include;%(AdditionalIncludeDirectories) 148 | 149 | 150 | Console 151 | true 152 | true 153 | true 154 | $(OSG_DIR)\lib;%(AdditionalLibraryDirectories) 155 | osg.lib;osgDB.lib;osgGA.lib;osgViewer.lib;%(AdditionalDependencies) 156 | 157 | 158 | 159 | 160 | 161 | -------------------------------------------------------------------------------- /examples/osgexamples/osgviewer_jt/osgviewer_jt.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;ipp;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | 源文件 20 | 21 | 22 | -------------------------------------------------------------------------------- /examples/osgexamples/osgviewer_jt/osgviewer_jt.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | PATH=$(SolutionDir)..\x64_v141\$(Configuration);$(OSG_DIR)\bin;$(PATH) 5 | $(LocalDebuggerEnvironment) 6 | WindowsLocalDebugger 7 | ..\..\..\samples\CoffeeMaker.jt 8 | 9 | 10 | PATH=$(SolutionDir)..\x64_v141\$(Configuration);$(PATH) 11 | $(LocalDebuggerEnvironment) 12 | WindowsLocalDebugger 13 | ..\..\..\samples\opening_protection_plate1_jt9.5.jt 14 | 15 | -------------------------------------------------------------------------------- /examples/traverse/PrintTraverser.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "DxJtTraverser.h" 4 | 5 | class PrintTraverser : public DxJtTraverser 6 | { 7 | public: 8 | PrintTraverser() {} 9 | 10 | virtual bool preActionCallback(std::shared_ptr CurrNode, int Level); 11 | }; 12 | -------------------------------------------------------------------------------- /examples/traverse/traverse.cpp: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // Copyright (C) 2019 by bitbybit3d, All rights reserved. 3 | // Author: bitbybit3d@163.com 4 | // 5 | // 6 | // THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 7 | // EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 8 | // MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 9 | ////////////////////////////////////////////////////////////////////////////// 10 | #include 11 | #include 12 | #include 13 | 14 | #include "DxJtCADImporter.h" 15 | #include "DxJtEntityFactory.h" 16 | 17 | #include "PrintTraverser.h" 18 | 19 | 20 | 21 | int main(int argc, char* argv[]) 22 | { 23 | const char* fileName = NULL; 24 | 25 | if (argc == 2) 26 | fileName = argv[1]; 27 | else 28 | fileName = "..\\..\\samples\\opening_protection_plate1_jt9.5.jt"; 29 | 30 | if (!DxJtEntityFactory::registerLicense()) 31 | return -1; 32 | 33 | wchar_t buf_wstr[_MAX_PATH]; 34 | size_t numConverted = 0; 35 | size_t flen = strlen(fileName); 36 | 37 | mbstowcs_s(&numConverted, buf_wstr, _MAX_PATH, fileName, flen); 38 | 39 | std::shared_ptr importer = DxJtEntityFactory::createCADImporter(); 40 | if (importer == nullptr) 41 | return -1; 42 | 43 | std::shared_ptr root = importer->importJt(buf_wstr); 44 | if (root == nullptr) 45 | return -1; 46 | 47 | std::shared_ptr traverser = std::shared_ptr(new PrintTraverser); 48 | if (traverser) 49 | { 50 | traverser->traverseGraph(root); 51 | } 52 | 53 | std::shared_ptr exporter = DxJtEntityFactory::createCADExporter(); 54 | if (exporter == nullptr) 55 | return -1; 56 | else if (0) 57 | exporter->exportJt(root); 58 | return 0; 59 | } 60 | -------------------------------------------------------------------------------- /examples/traverse/traverse.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 15.0 30 | {1200D887-D359-4E39-B89E-20902840A924} 31 | Win32Proj 32 | traverse 33 | 10.0 34 | 35 | 36 | 37 | Application 38 | true 39 | v143 40 | Unicode 41 | 42 | 43 | Application 44 | false 45 | v143 46 | true 47 | Unicode 48 | 49 | 50 | Application 51 | true 52 | v143 53 | Unicode 54 | 55 | 56 | Application 57 | false 58 | v143 59 | true 60 | Unicode 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | true 82 | 83 | 84 | true 85 | $(SolutionDir)Library$(Platform)\$(Configuration)\$(ProjectName)\ 86 | 87 | 88 | false 89 | 90 | 91 | false 92 | $(SolutionDir)Library$(Platform)\$(Configuration)\$(ProjectName)\ 93 | 94 | 95 | 96 | Use 97 | Level3 98 | Disabled 99 | true 100 | WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) 101 | true 102 | pch.h 103 | 104 | 105 | Console 106 | true 107 | 108 | 109 | 110 | 111 | Level3 112 | Disabled 113 | true 114 | _DEBUG;_CONSOLE;%(PreprocessorDefinitions) 115 | true 116 | .\..\..\include;%(AdditionalIncludeDirectories) 117 | 118 | 119 | Console 120 | true 121 | .\..\..\x64_v141\$(Configuration);%(AdditionalLibraryDirectories) 122 | dxjt_toolkit.lib;%(AdditionalDependencies) 123 | 124 | 125 | 126 | 127 | Use 128 | Level3 129 | MaxSpeed 130 | true 131 | true 132 | true 133 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 134 | true 135 | pch.h 136 | 137 | 138 | Console 139 | true 140 | true 141 | true 142 | 143 | 144 | 145 | 146 | Level3 147 | MaxSpeed 148 | true 149 | true 150 | true 151 | NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 152 | true 153 | .\..\..\include;%(AdditionalIncludeDirectories) 154 | 155 | 156 | Console 157 | true 158 | true 159 | true 160 | .\..\..\x64_v141\$(Configuration);%(AdditionalLibraryDirectories) 161 | dxjt_toolkit.lib;%(AdditionalDependencies) 162 | 163 | 164 | 165 | 166 | 167 | -------------------------------------------------------------------------------- /examples/traverse/traverse.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;ipp;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | 源文件 20 | 21 | 22 | 源文件 23 | 24 | 25 | 26 | 27 | 头文件 28 | 29 | 30 | -------------------------------------------------------------------------------- /examples/traverse/traverse.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | PATH=$(SolutionDir)..\x64_v141\$(Configuration);$(PATH) 5 | $(LocalDebuggerEnvironment) 6 | WindowsLocalDebugger 7 | ..\..\samples\example_block_jt8.1.jt 8 | 9 | 10 | PATH=$(SolutionDir)..\x64_v141\$(Configuration);$(PATH) 11 | $(LocalDebuggerEnvironment) 12 | WindowsLocalDebugger 13 | ..\..\samples\example_block_jt8.1.jt 14 | 15 | -------------------------------------------------------------------------------- /html/_dx_jt_c_a_d_exporter_8h_source.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | dxjt_toolkit: include/DxJtCADExporter.h Source File 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 28 | 29 | 30 |
24 |
dxjt_toolkit 25 |  0.4 26 |
27 |
31 |
32 | 33 | 34 | 39 | 40 | 41 | 48 | 49 | 50 |
54 |
55 | 56 | 57 |
58 | 61 |
62 | 63 | 67 |
68 |
69 |
70 |
DxJtCADExporter.h
71 |
72 |
73 |
1 // Copyright (C) 2019 by bitbybit3d, All rights reserved.
74 |
3 // Author: bitbybit3d@163.com
75 |
4 //
76 |
5 //
77 |
6 // THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
78 |
7 // EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
79 |
8 // MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
80 |
10 #ifndef __JT_TOOLKIT_CAD_EXPORTER_H_
81 |
11 #define __JT_TOOLKIT_CAD_EXPORTER_H_
82 |
12 
83 |
13 #include "DxJtEntity.h"
84 |
14 
85 |
15 class DxJtHierarchy;
86 |
16 
87 |
20 class JT_TOOLKIT_EXPORT DxJtCADExporter : public DxJtEntity
88 |
21 {
89 |
22 protected:
90 | 91 |
24 
92 |
25 public:
93 |
26  DXJT_ENTITY_TYPEID_HEADER(DxJtCADExporter);
94 |
27 
95 |
28 
96 |
29  virtual void setExportPath(const wchar_t* path) = 0;
97 |
30 
98 |
31  virtual bool exportJt(std::shared_ptr<DxJtHierarchy> root) const = 0;
99 |
32 };
100 |
33 
101 |
34 #endif // __JT_TOOLKIT_CAD_EXPORTER_H_
102 |
Save the root node to a JT format file.
Definition: DxJtCADExporter.h:21
103 |
The root class.
Definition: DxJtEntity.h:37
104 |
The base class for all product structure objects ( JtAssembly, JtPart, and JtInstance).
Definition: DxJtHierarchy.h:23
105 |
106 | 107 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /html/_dx_jt_tri_strip_set_8h_source.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | dxjt_toolkit: include/DxJtTriStripSet.h Source File 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 28 | 29 | 30 |
24 |
dxjt_toolkit 25 |  0.4 26 |
27 |
31 |
32 | 33 | 34 | 39 | 40 | 41 | 48 | 49 | 50 |
54 |
55 | 56 | 57 |
58 | 61 |
62 | 63 | 67 |
68 |
69 |
70 |
DxJtTriStripSet.h
71 |
72 |
73 |
1 // Copyright (C) 2019 by bitbybit3d, All rights reserved.
74 |
3 // Author: bitbybit3d@163.com
75 |
4 //
76 |
5 //
77 |
6 // THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
78 |
7 // EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
79 |
8 // MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
80 |
10 #ifndef __JT_TOOLKIT_TRISTRIP_SET_H_
81 |
11 #define __JT_TOOLKIT_TRISTRIP_SET_H_
82 |
12 
83 |
13 #include "DxJtShape.h"
84 |
14 
85 |
19 class JT_TOOLKIT_EXPORT DxJtTriStripSet : public DxJtShape
86 |
20 {
87 |
21 public:
88 | 89 |
23 
90 |
24 public:
91 |
25  DXJT_ENTITY_TYPEID_HEADER(DxJtTriStripSet);
92 |
26 
93 |
27 };
94 |
28 
95 |
29 #endif // __JT_TOOLKIT_TRISTRIP_SET_H_
96 |
Geometric shape definition data (e.g. vertices, normals, etc).
Definition: DxJtShape.h:21
97 |
A Tri-Strip Set Shape Element, forming triangles, like OpenGL's triangle strip definition.
Definition: DxJtTriStripSet.h:20
98 |
99 | 100 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /html/annotated.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | dxjt_toolkit: Class List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 28 | 29 | 30 |
24 |
dxjt_toolkit 25 |  0.4 26 |
27 |
31 |
32 | 33 | 34 | 39 | 40 | 41 | 48 | 49 |
50 | 51 |
55 |
56 | 57 | 58 |
59 | 62 |
63 | 64 |
65 |
66 |
Class List
67 |
68 |
69 |
Here are the classes, structs, unions and interfaces with brief descriptions:
70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 |
 CDxJtAssemblyThe object for defining non-leaf nodes in a product structure hierarchy. Any hierarchy object may be a child of this object
 CDxJtAttribThe base class for all attributes
 CDxJtCADExporterSave the root node to a JT format file
 CDxJtCADImporterLoad JT format file to return a root node
 CDxJtEntityThe root class
 CDxJtEntityFactoryA static factory class used to create all toolkit objects. Client applications should use this class to create all JtEntity-derived objects instead of C++'s new command
 CDxJtHierarchyThe base class for all product structure objects ( JtAssembly, JtPart, and JtInstance)
 CDxJtInstanceReference object pointing to an either a JtkAssembly or JtkPart object. Used to avoid physical duplication of replicated assembly objects
 CDxJtMaterialAttribute class for material
 CDxJtPartThe object for defining leaf nodes in a product structure hierarchy. These objects are the only ones that can hold geometry
 CDxJtPropertyThe base class for all attributes
 CDxJtShapeGeometric shape definition data (e.g. vertices, normals, etc)
 CDxJtTransformAttribute class for transform
 CDxJtTraverserA traverser for visit product structure object
 CDxJtTriStripSetA Tri-Strip Set Shape Element, forming triangles, like OpenGL's triangle strip definition
 CDxJtUnitHierarchyThe intermediate class implementing units and PMI for JtAssembly and JtPart
88 |
89 |
90 | 91 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/bc_s.png -------------------------------------------------------------------------------- /html/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/bdwn.png -------------------------------------------------------------------------------- /html/class_dx_jt_assembly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/class_dx_jt_assembly.png -------------------------------------------------------------------------------- /html/class_dx_jt_attrib.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/class_dx_jt_attrib.png -------------------------------------------------------------------------------- /html/class_dx_jt_c_a_d_exporter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/class_dx_jt_c_a_d_exporter.png -------------------------------------------------------------------------------- /html/class_dx_jt_c_a_d_importer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/class_dx_jt_c_a_d_importer.png -------------------------------------------------------------------------------- /html/class_dx_jt_entity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/class_dx_jt_entity.png -------------------------------------------------------------------------------- /html/class_dx_jt_entity_factory-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | dxjt_toolkit: Member List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 28 | 29 | 30 |
24 |
dxjt_toolkit 25 |  0.4 26 |
27 |
31 |
32 | 33 | 34 | 39 | 40 | 41 | 48 | 49 | 50 |
54 |
55 | 56 | 57 |
58 | 61 |
62 | 63 |
64 |
65 |
66 |
DxJtEntityFactory Member List
67 |
68 |
69 | 70 |

This is the complete list of members for DxJtEntityFactory, including all inherited members.

71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 |
createAssembly() (defined in DxJtEntityFactory)DxJtEntityFactorystatic
createCADExporter()DxJtEntityFactorystatic
createCADImporter()DxJtEntityFactorystatic
createInstance(std::shared_ptr< DxJtHierarchy > refOrig) (defined in DxJtEntityFactory)DxJtEntityFactorystatic
createMaterial() (defined in DxJtEntityFactory)DxJtEntityFactorystatic
createPart() (defined in DxJtEntityFactory)DxJtEntityFactorystatic
createProperty(const std::wstring &keyString, const std::wstring &value) (defined in DxJtEntityFactory)DxJtEntityFactorystatic
createProperty(const std::wstring &keyString, const int value) (defined in DxJtEntityFactory)DxJtEntityFactorystatic
createProperty(const std::wstring &keyString, const float value) (defined in DxJtEntityFactory)DxJtEntityFactorystatic
createProperty(const std::wstring &keyString, const short year, const short month, const short day, const short hour, const short minutes, const short seconds) (defined in DxJtEntityFactory)DxJtEntityFactorystatic
createShape() (defined in DxJtEntityFactory)DxJtEntityFactorystatic
createTransform() (defined in DxJtEntityFactory)DxJtEntityFactorystatic
createTriStripSet() (defined in DxJtEntityFactory)DxJtEntityFactorystatic
86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /html/class_dx_jt_hierarchy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/class_dx_jt_hierarchy.png -------------------------------------------------------------------------------- /html/class_dx_jt_instance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/class_dx_jt_instance.png -------------------------------------------------------------------------------- /html/class_dx_jt_material.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/class_dx_jt_material.png -------------------------------------------------------------------------------- /html/class_dx_jt_part.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/class_dx_jt_part.png -------------------------------------------------------------------------------- /html/class_dx_jt_property.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/class_dx_jt_property.png -------------------------------------------------------------------------------- /html/class_dx_jt_shape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/class_dx_jt_shape.png -------------------------------------------------------------------------------- /html/class_dx_jt_transform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/class_dx_jt_transform.png -------------------------------------------------------------------------------- /html/class_dx_jt_traverser-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | dxjt_toolkit: Member List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 28 | 29 | 30 |
24 |
dxjt_toolkit 25 |  0.4 26 |
27 |
31 |
32 | 33 | 34 | 39 | 40 | 41 | 48 | 49 | 50 |
54 |
55 | 56 | 57 |
58 | 61 |
62 | 63 |
64 |
65 |
66 |
DxJtTraverser Member List
67 |
68 |
69 | 70 |

This is the complete list of members for DxJtTraverser, including all inherited members.

71 | 72 | 73 | 74 | 75 | 76 | 77 |
DxJtTraverser() (defined in DxJtTraverser)DxJtTraverser
postActionCallback(std::shared_ptr< DxJtHierarchy > CurrNode, int Level)DxJtTraverserinlinevirtual
preActionCallback(std::shared_ptr< DxJtHierarchy > CurrNode, int Level)DxJtTraverserinlinevirtual
traverseGraph(std::shared_ptr< DxJtHierarchy > Root)DxJtTraverser
~DxJtTraverser() (defined in DxJtTraverser)DxJtTraverservirtual
78 | 79 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /html/class_dx_jt_tri_strip_set.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/class_dx_jt_tri_strip_set.png -------------------------------------------------------------------------------- /html/class_dx_jt_unit_hierarchy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/class_dx_jt_unit_hierarchy.png -------------------------------------------------------------------------------- /html/classes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | dxjt_toolkit: Class Index 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 28 | 29 | 30 |
24 |
dxjt_toolkit 25 |  0.4 26 |
27 |
31 |
32 | 33 | 34 | 39 | 40 | 41 | 48 | 49 |
50 | 51 |
55 |
56 | 57 | 58 |
59 | 62 |
63 | 64 |
65 |
66 |
Class Index
67 |
68 | 76 | 77 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/closed.png -------------------------------------------------------------------------------- /html/dir_d44c64559bbebec7f509842c48db8b23.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | dxjt_toolkit: include Directory Reference 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 28 | 29 | 30 |
24 |
dxjt_toolkit 25 |  0.4 26 |
27 |
31 |
32 | 33 | 34 | 39 | 40 | 41 | 48 | 49 | 50 |
54 |
55 | 56 | 57 |
58 | 61 |
62 | 63 | 67 |
68 |
69 |
70 |
include Directory Reference
71 |
72 |
73 |
74 | 75 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /html/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/doc.png -------------------------------------------------------------------------------- /html/dynsections.js: -------------------------------------------------------------------------------- 1 | /* 2 | @licstart The following is the entire license notice for the JavaScript code in this file. 3 | 4 | The MIT License (MIT) 5 | 6 | Copyright (C) 1997-2020 by Dimitri van Heesch 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software 9 | and associated documentation files (the "Software"), to deal in the Software without restriction, 10 | including without limitation the rights to use, copy, modify, merge, publish, distribute, 11 | sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all copies or 15 | substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING 18 | BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 20 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | 23 | @licend The above is the entire license notice for the JavaScript code in this file 24 | */ 25 | function toggleVisibility(linkObj) 26 | { 27 | var base = $(linkObj).attr('id'); 28 | var summary = $('#'+base+'-summary'); 29 | var content = $('#'+base+'-content'); 30 | var trigger = $('#'+base+'-trigger'); 31 | var src=$(trigger).attr('src'); 32 | if (content.is(':visible')===true) { 33 | content.hide(); 34 | summary.show(); 35 | $(linkObj).addClass('closed').removeClass('opened'); 36 | $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); 37 | } else { 38 | content.show(); 39 | summary.hide(); 40 | $(linkObj).removeClass('closed').addClass('opened'); 41 | $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); 42 | } 43 | return false; 44 | } 45 | 46 | function updateStripes() 47 | { 48 | $('table.directory tr'). 49 | removeClass('even').filter(':visible:even').addClass('even'); 50 | } 51 | 52 | function toggleLevel(level) 53 | { 54 | $('table.directory tr').each(function() { 55 | var l = this.id.split('_').length-1; 56 | var i = $('#img'+this.id.substring(3)); 57 | var a = $('#arr'+this.id.substring(3)); 58 | if (l 2 | 3 | 4 | 5 | 6 | 7 | 8 | dxjt_toolkit: File List 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 28 | 29 | 30 |
24 |
dxjt_toolkit 25 |  0.4 26 |
27 |
31 |
32 | 33 | 34 | 39 | 40 | 41 | 48 | 49 |
50 | 51 |
55 |
56 | 57 | 58 |
59 | 62 |
63 | 64 |
65 |
66 |
File List
67 |
68 |
69 |
Here is a list of all documented files with brief descriptions:
70 |
[detail level 12]
71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 |
  include
 DxJtAttrib.h
 DxJtCADExporter.h
 DxJtCADImporter.h
 DxJtEntity.h
 DxJtEntityFactory.h
 DxJtHierarchy.h
 DxJtProperty.h
 DxJtShape.h
 DxJtTraverser.h
 DxJtTriStripSet.h
83 |
84 |
85 | 86 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /html/folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/folderclosed.png -------------------------------------------------------------------------------- /html/folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/folderopen.png -------------------------------------------------------------------------------- /html/functions.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | dxjt_toolkit: Class Members 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 28 | 29 | 30 |
24 |
dxjt_toolkit 25 |  0.4 26 |
27 |
31 |
32 | 33 | 34 | 39 | 40 | 41 | 48 | 49 |
50 | 51 |
55 |
56 | 57 | 58 |
59 | 62 |
63 | 64 |
65 |
Here is a list of all documented class members with links to the class documentation for each member:
136 |
137 | 138 | 141 | 142 | 143 | -------------------------------------------------------------------------------- /html/functions_func.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | dxjt_toolkit: Class Members - Functions 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 28 | 29 | 30 |
24 |
dxjt_toolkit 25 |  0.4 26 |
27 |
31 |
32 | 33 | 34 | 39 | 40 | 41 | 48 | 49 |
50 | 51 |
55 |
56 | 57 | 58 |
59 | 62 |
63 | 64 |
65 |   136 |
137 | 138 | 141 | 142 | 143 | -------------------------------------------------------------------------------- /html/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | dxjt_toolkit: dxjt_toolkit 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 28 | 29 | 30 |
24 |
dxjt_toolkit 25 |  0.4 26 |
27 |
31 |
32 | 33 | 34 | 39 | 40 | 41 | 48 | 49 |
50 | 51 |
55 |
56 | 57 | 58 |
59 | 62 |
63 | 64 |
65 |
66 |
dxjt_toolkit
67 |
68 |
69 |

解析JT格式文件。

70 |

71 | 简介

72 |

在设计上分二层,其中 libdxjt.dll 贴近JT格式解码,而 dxjt_toolkit 则类比 JTOpen Toolkit 转换类似的组织形式。

73 |

个人作品,底层实现 libdxjtdxjt_toolkit 不开源,仅演示基于它们的用法与案例。

74 |

dxjt_toolkit 仅依赖:

    75 |
  • zlib.dll
  • 76 |
  • liblzma.dll
  • 77 |
78 |

代码层面,仅依赖标准库与boost。

79 |

80 | 功能特性

81 |
    82 |
  • 支持读取 JT 8.0 - JT 10.5格式,但仅限于 LSG Scene 与 RangeLOD显示
  • 83 |
  • 支持 JT 8.1 格式的写入,当前测试仅部件形式在 Jt2Go 里可以打开
  • 84 |
  • 不支持解析 JT BREP Segment,更没法解析 XT BREP Segment
  • 85 |
  • 暂时没有多线程读取能力,也并不应用延迟加载
  • 86 |
87 |

88 | Change Log

89 |
    90 |
  • 将接口头文件各类,加前缀 Dx,目的是为了加大与 JtOpen 头文件的区分度
  • 91 |
  • 解决 JT10 版本里边的 Move-to-Front 解码问题
  • 92 |
  • 修复读取某些JT文件时的错误问题
  • 93 |
94 |

95 | TODO

96 |
    97 |
  • 了解 JT格式里 JT_PROP_NAME 的构件规则,确保带有Instance的装配可以正确写入
  • 98 |
  • 多线程加载 JT 文件
  • 99 |
100 |

101 | 参考资源

102 |
    103 |
  • JT-v8.1_File_Format_Reference.PDF
  • 104 |
  • JT-v95_File_Format_Reference_Rev-D.pdf
  • 105 |
  • ISO14306-2012 Industrial automation systems and integration - JT file format specification for 3D visualization
  • 106 |
  • ISO14306-2017 Industrial automation systems and integration - JT file format specification for 3D visualization
  • 107 |
  • JT-V10.5 Format Description and annexs 10292019_tcm27-58011.pdf
  • 108 |
109 |
110 |
111 | 112 | 115 | 116 | 117 | -------------------------------------------------------------------------------- /html/menu.js: -------------------------------------------------------------------------------- 1 | /* 2 | @licstart The following is the entire license notice for the JavaScript code in this file. 3 | 4 | The MIT License (MIT) 5 | 6 | Copyright (C) 1997-2020 by Dimitri van Heesch 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software 9 | and associated documentation files (the "Software"), to deal in the Software without restriction, 10 | including without limitation the rights to use, copy, modify, merge, publish, distribute, 11 | sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all copies or 15 | substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING 18 | BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 20 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | 23 | @licend The above is the entire license notice for the JavaScript code in this file 24 | */ 25 | function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { 26 | function makeTree(data,relPath) { 27 | var result=''; 28 | if ('children' in data) { 29 | result+=''; 36 | } 37 | return result; 38 | } 39 | 40 | $('#main-nav').append(makeTree(menudata,relPath)); 41 | $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); 42 | if (searchEnabled) { 43 | if (serverSide) { 44 | $('#main-menu').append('
  • '); 45 | } else { 46 | $('#main-menu').append('
  • '); 47 | } 48 | } 49 | $('#main-menu').smartmenus(); 50 | } 51 | /* @license-end */ 52 | -------------------------------------------------------------------------------- /html/menudata.js: -------------------------------------------------------------------------------- 1 | /* 2 | @licstart The following is the entire license notice for the JavaScript code in this file. 3 | 4 | The MIT License (MIT) 5 | 6 | Copyright (C) 1997-2020 by Dimitri van Heesch 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software 9 | and associated documentation files (the "Software"), to deal in the Software without restriction, 10 | including without limitation the rights to use, copy, modify, merge, publish, distribute, 11 | sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all copies or 15 | substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING 18 | BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 20 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | 23 | @licend The above is the entire license notice for the JavaScript code in this file 24 | */ 25 | var menudata={children:[ 26 | {text:"Main Page",url:"index.html"}, 27 | {text:"Classes",url:"annotated.html",children:[ 28 | {text:"Class List",url:"annotated.html"}, 29 | {text:"Class Index",url:"classes.html"}, 30 | {text:"Class Hierarchy",url:"hierarchy.html"}, 31 | {text:"Class Members",url:"functions.html",children:[ 32 | {text:"All",url:"functions.html"}, 33 | {text:"Functions",url:"functions_func.html"}]}]}, 34 | {text:"Files",url:"files.html",children:[ 35 | {text:"File List",url:"files.html"}]}]} 36 | -------------------------------------------------------------------------------- /html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/nav_f.png -------------------------------------------------------------------------------- /html/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/nav_g.png -------------------------------------------------------------------------------- /html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/nav_h.png -------------------------------------------------------------------------------- /html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/open.png -------------------------------------------------------------------------------- /html/search/all_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['addattrib_0',['addAttrib',['../class_dx_jt_hierarchy.html#a111b4607ed134f0157715bd1f059bca7',1,'DxJtHierarchy::addAttrib()'],['../class_dx_jt_shape.html#a829dc40492d815612642f3871c65b166',1,'DxJtShape::addAttrib()']]], 4 | ['addchild_1',['addChild',['../class_dx_jt_assembly.html#aa87d4b866109f42f6e88b57cbb1ed70e',1,'DxJtAssembly']]], 5 | ['addprim_2',['addPrim',['../class_dx_jt_shape.html#ac844e4ba9db26dd945ea6f9f8867aba1',1,'DxJtShape']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /html/search/all_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/all_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['child_3',['child',['../class_dx_jt_assembly.html#a2d7a3068fa15aed506206a603bb85347',1,'DxJtAssembly']]], 4 | ['classtypeid_4',['classTypeID',['../class_dx_jt_entity.html#a9766e2714fe40f415bbb8cfb64aa6959',1,'DxJtEntity']]], 5 | ['createcadexporter_5',['createCADExporter',['../class_dx_jt_entity_factory.html#a98f08c5715bd0a7be23458943a1c7615',1,'DxJtEntityFactory']]], 6 | ['createcadimporter_6',['createCADImporter',['../class_dx_jt_entity_factory.html#aed56825b1b44cf66a97bb30a3708ac3f',1,'DxJtEntityFactory']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /html/search/all_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/all_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['dxjt_5ftoolkit_7',['dxjt_toolkit',['../index.html',1,'']]], 4 | ['dxjtassembly_8',['DxJtAssembly',['../class_dx_jt_assembly.html',1,'']]], 5 | ['dxjtattrib_9',['DxJtAttrib',['../class_dx_jt_attrib.html',1,'']]], 6 | ['dxjtcadexporter_10',['DxJtCADExporter',['../class_dx_jt_c_a_d_exporter.html',1,'']]], 7 | ['dxjtcadimporter_11',['DxJtCADImporter',['../class_dx_jt_c_a_d_importer.html',1,'']]], 8 | ['dxjtentity_12',['DxJtEntity',['../class_dx_jt_entity.html',1,'']]], 9 | ['dxjtentityfactory_13',['DxJtEntityFactory',['../class_dx_jt_entity_factory.html',1,'']]], 10 | ['dxjthierarchy_14',['DxJtHierarchy',['../class_dx_jt_hierarchy.html',1,'']]], 11 | ['dxjtinstance_15',['DxJtInstance',['../class_dx_jt_instance.html',1,'']]], 12 | ['dxjtmaterial_16',['DxJtMaterial',['../class_dx_jt_material.html',1,'']]], 13 | ['dxjtpart_17',['DxJtPart',['../class_dx_jt_part.html',1,'']]], 14 | ['dxjtproperty_18',['DxJtProperty',['../class_dx_jt_property.html',1,'']]], 15 | ['dxjtshape_19',['DxJtShape',['../class_dx_jt_shape.html',1,'']]], 16 | ['dxjttransform_20',['DxJtTransform',['../class_dx_jt_transform.html',1,'']]], 17 | ['dxjttraverser_21',['DxJtTraverser',['../class_dx_jt_traverser.html',1,'']]], 18 | ['dxjttristripset_22',['DxJtTriStripSet',['../class_dx_jt_tri_strip_set.html',1,'']]], 19 | ['dxjtunithierarchy_23',['DxJtUnitHierarchy',['../class_dx_jt_unit_hierarchy.html',1,'']]] 20 | ]; 21 | -------------------------------------------------------------------------------- /html/search/all_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['getattrib_24',['getAttrib',['../class_dx_jt_hierarchy.html#a43f76c2191659007420c1582190d45a3',1,'DxJtHierarchy::getAttrib()'],['../class_dx_jt_shape.html#a0eb66666049b430b636b77789b055924',1,'DxJtShape::getAttrib(int index) const =0']]], 4 | ['gettriangles_25',['getTriangles',['../class_dx_jt_shape.html#ad5d5f8bec302bc5f0851e9ac641f0575',1,'DxJtShape']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /html/search/all_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['isofsubtype_26',['isOfSubType',['../class_dx_jt_entity.html#a9ba085191172c5601ad2e77455b027e3',1,'DxJtEntity']]], 4 | ['isoftype_27',['isOfType',['../class_dx_jt_entity.html#a6779a297f6e909460e7f61148fc7237b',1,'DxJtEntity']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /html/search/all_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/all_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['numattribs_28',['numAttribs',['../class_dx_jt_hierarchy.html#a78bbf784c436615c6ea538ecae254564',1,'DxJtHierarchy::numAttribs()'],['../class_dx_jt_shape.html#ae16bede99de5439df5bbd7d39b31c41c',1,'DxJtShape::numAttribs()']]], 4 | ['numchildren_29',['numChildren',['../class_dx_jt_assembly.html#ad7349668b0fba290c2d9bfb9c08b778a',1,'DxJtAssembly']]], 5 | ['numpolylods_30',['numPolyLODs',['../class_dx_jt_part.html#af317fb2bbdd6ba165d76c78b5ce39c0f',1,'DxJtPart']]], 6 | ['numpolyshapes_31',['numPolyShapes',['../class_dx_jt_part.html#a4a5fb3c9d03fdeb031d28fc97c5e974c',1,'DxJtPart']]], 7 | ['numprops_32',['numProps',['../class_dx_jt_hierarchy.html#aff400225fa76bedd18a395629334c62e',1,'DxJtHierarchy']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /html/search/all_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/all_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['original_33',['original',['../class_dx_jt_instance.html#a48aca8eb0648f0b2c80fbc27c3cad797',1,'DxJtInstance']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /html/search/all_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/all_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['postactioncallback_34',['postActionCallback',['../class_dx_jt_traverser.html#aba00b61fcc2ab386556760173d9a1086',1,'DxJtTraverser']]], 4 | ['preactioncallback_35',['preActionCallback',['../class_dx_jt_traverser.html#ac1c74a8e81b6600dcadbd7625f489824',1,'DxJtTraverser']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /html/search/all_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/all_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['traversegraph_36',['traverseGraph',['../class_dx_jt_traverser.html#a56438124ebd88628486a870591a0593c',1,'DxJtTraverser']]], 4 | ['typeid_37',['typeID',['../class_dx_jt_entity.html#a2e3a28bada9d49cb0bf1bb377a00f1bb',1,'DxJtEntity']]], 5 | ['typeidname_38',['typeIDName',['../class_dx_jt_entity.html#af553801e4bad2152d4a5a4c267398352',1,'DxJtEntity']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /html/search/all_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/all_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['traversegraph_36',['traverseGraph',['../class_dx_jt_traverser.html#a56438124ebd88628486a870591a0593c',1,'DxJtTraverser']]], 4 | ['typeid_37',['typeID',['../class_dx_jt_entity.html#a2e3a28bada9d49cb0bf1bb377a00f1bb',1,'DxJtEntity']]], 5 | ['typeidname_38',['typeIDName',['../class_dx_jt_entity.html#af553801e4bad2152d4a5a4c267398352',1,'DxJtEntity']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /html/search/classes_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['dxjtassembly_39',['DxJtAssembly',['../class_dx_jt_assembly.html',1,'']]], 4 | ['dxjtattrib_40',['DxJtAttrib',['../class_dx_jt_attrib.html',1,'']]], 5 | ['dxjtcadexporter_41',['DxJtCADExporter',['../class_dx_jt_c_a_d_exporter.html',1,'']]], 6 | ['dxjtcadimporter_42',['DxJtCADImporter',['../class_dx_jt_c_a_d_importer.html',1,'']]], 7 | ['dxjtentity_43',['DxJtEntity',['../class_dx_jt_entity.html',1,'']]], 8 | ['dxjtentityfactory_44',['DxJtEntityFactory',['../class_dx_jt_entity_factory.html',1,'']]], 9 | ['dxjthierarchy_45',['DxJtHierarchy',['../class_dx_jt_hierarchy.html',1,'']]], 10 | ['dxjtinstance_46',['DxJtInstance',['../class_dx_jt_instance.html',1,'']]], 11 | ['dxjtmaterial_47',['DxJtMaterial',['../class_dx_jt_material.html',1,'']]], 12 | ['dxjtpart_48',['DxJtPart',['../class_dx_jt_part.html',1,'']]], 13 | ['dxjtproperty_49',['DxJtProperty',['../class_dx_jt_property.html',1,'']]], 14 | ['dxjtshape_50',['DxJtShape',['../class_dx_jt_shape.html',1,'']]], 15 | ['dxjttransform_51',['DxJtTransform',['../class_dx_jt_transform.html',1,'']]], 16 | ['dxjttraverser_52',['DxJtTraverser',['../class_dx_jt_traverser.html',1,'']]], 17 | ['dxjttristripset_53',['DxJtTriStripSet',['../class_dx_jt_tri_strip_set.html',1,'']]], 18 | ['dxjtunithierarchy_54',['DxJtUnitHierarchy',['../class_dx_jt_unit_hierarchy.html',1,'']]] 19 | ]; 20 | -------------------------------------------------------------------------------- /html/search/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 13 | 15 | 16 | 18 | image/svg+xml 19 | 21 | 22 | 23 | 24 | 25 | 27 | 31 | 32 | -------------------------------------------------------------------------------- /html/search/functions_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/functions_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['addattrib_55',['addAttrib',['../class_dx_jt_hierarchy.html#a111b4607ed134f0157715bd1f059bca7',1,'DxJtHierarchy::addAttrib()'],['../class_dx_jt_shape.html#a829dc40492d815612642f3871c65b166',1,'DxJtShape::addAttrib()']]], 4 | ['addchild_56',['addChild',['../class_dx_jt_assembly.html#aa87d4b866109f42f6e88b57cbb1ed70e',1,'DxJtAssembly']]], 5 | ['addprim_57',['addPrim',['../class_dx_jt_shape.html#ac844e4ba9db26dd945ea6f9f8867aba1',1,'DxJtShape']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /html/search/functions_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/functions_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['child_58',['child',['../class_dx_jt_assembly.html#a2d7a3068fa15aed506206a603bb85347',1,'DxJtAssembly']]], 4 | ['classtypeid_59',['classTypeID',['../class_dx_jt_entity.html#a9766e2714fe40f415bbb8cfb64aa6959',1,'DxJtEntity']]], 5 | ['createcadexporter_60',['createCADExporter',['../class_dx_jt_entity_factory.html#a98f08c5715bd0a7be23458943a1c7615',1,'DxJtEntityFactory']]], 6 | ['createcadimporter_61',['createCADImporter',['../class_dx_jt_entity_factory.html#aed56825b1b44cf66a97bb30a3708ac3f',1,'DxJtEntityFactory']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /html/search/functions_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/functions_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['getattrib_62',['getAttrib',['../class_dx_jt_hierarchy.html#a43f76c2191659007420c1582190d45a3',1,'DxJtHierarchy::getAttrib()'],['../class_dx_jt_shape.html#a0eb66666049b430b636b77789b055924',1,'DxJtShape::getAttrib(int index) const =0']]], 4 | ['gettriangles_63',['getTriangles',['../class_dx_jt_shape.html#ad5d5f8bec302bc5f0851e9ac641f0575',1,'DxJtShape']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /html/search/functions_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/functions_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['isofsubtype_64',['isOfSubType',['../class_dx_jt_entity.html#a9ba085191172c5601ad2e77455b027e3',1,'DxJtEntity']]], 4 | ['isoftype_65',['isOfType',['../class_dx_jt_entity.html#a6779a297f6e909460e7f61148fc7237b',1,'DxJtEntity']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /html/search/functions_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/functions_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['numattribs_66',['numAttribs',['../class_dx_jt_hierarchy.html#a78bbf784c436615c6ea538ecae254564',1,'DxJtHierarchy::numAttribs()'],['../class_dx_jt_shape.html#ae16bede99de5439df5bbd7d39b31c41c',1,'DxJtShape::numAttribs()']]], 4 | ['numchildren_67',['numChildren',['../class_dx_jt_assembly.html#ad7349668b0fba290c2d9bfb9c08b778a',1,'DxJtAssembly']]], 5 | ['numpolylods_68',['numPolyLODs',['../class_dx_jt_part.html#af317fb2bbdd6ba165d76c78b5ce39c0f',1,'DxJtPart']]], 6 | ['numpolyshapes_69',['numPolyShapes',['../class_dx_jt_part.html#a4a5fb3c9d03fdeb031d28fc97c5e974c',1,'DxJtPart']]], 7 | ['numprops_70',['numProps',['../class_dx_jt_hierarchy.html#aff400225fa76bedd18a395629334c62e',1,'DxJtHierarchy']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /html/search/functions_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/functions_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['original_71',['original',['../class_dx_jt_instance.html#a48aca8eb0648f0b2c80fbc27c3cad797',1,'DxJtInstance']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /html/search/functions_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/functions_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['postactioncallback_72',['postActionCallback',['../class_dx_jt_traverser.html#aba00b61fcc2ab386556760173d9a1086',1,'DxJtTraverser']]], 4 | ['preactioncallback_73',['preActionCallback',['../class_dx_jt_traverser.html#ac1c74a8e81b6600dcadbd7625f489824',1,'DxJtTraverser']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /html/search/functions_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/functions_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['traversegraph_74',['traverseGraph',['../class_dx_jt_traverser.html#a56438124ebd88628486a870591a0593c',1,'DxJtTraverser']]], 4 | ['typeid_75',['typeID',['../class_dx_jt_entity.html#a2e3a28bada9d49cb0bf1bb377a00f1bb',1,'DxJtEntity']]], 5 | ['typeidname_76',['typeIDName',['../class_dx_jt_entity.html#af553801e4bad2152d4a5a4c267398352',1,'DxJtEntity']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /html/search/mag_sel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 22 | 24 | image/svg+xml 25 | 27 | 28 | 29 | 30 | 31 | 33 | 57 | 63 | 69 | 74 | 75 | -------------------------------------------------------------------------------- /html/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
    10 |
    No Matches
    11 |
    12 | 13 | 14 | -------------------------------------------------------------------------------- /html/search/pages_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    Loading...
    13 |
    14 | 19 |
    Searching...
    20 |
    No Matches
    21 | 35 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /html/search/pages_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['dxjt_5ftoolkit_77',['dxjt_toolkit',['../index.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /html/search/search.css: -------------------------------------------------------------------------------- 1 | /*---------------- Search Box */ 2 | 3 | #MSearchBox { 4 | white-space : nowrap; 5 | background: white; 6 | border-radius: 0.65em; 7 | box-shadow: inset 0.5px 0.5px 3px 0px #555; 8 | z-index: 102; 9 | } 10 | 11 | #MSearchBox .left { 12 | display: inline-block; 13 | vertical-align: middle; 14 | height: 1.4em; 15 | } 16 | 17 | #MSearchSelect { 18 | display: inline-block; 19 | vertical-align: middle; 20 | height: 1.4em; 21 | padding: 0 0 0 0.3em; 22 | margin: 0; 23 | } 24 | 25 | #MSearchField { 26 | display: inline-block; 27 | vertical-align: middle; 28 | width: 7.5em; 29 | height: 1.1em; 30 | margin: 0 0.15em; 31 | padding: 0; 32 | line-height: 1em; 33 | border:none; 34 | color: #909090; 35 | outline: none; 36 | font-family: Arial, Verdana, sans-serif; 37 | -webkit-border-radius: 0px; 38 | border-radius: 0px; 39 | background: none; 40 | } 41 | 42 | 43 | #MSearchBox .right { 44 | display: inline-block; 45 | vertical-align: middle; 46 | width: 1.4em; 47 | height: 1.4em; 48 | } 49 | 50 | #MSearchClose { 51 | display: none; 52 | font-size: inherit; 53 | background : none; 54 | border: none; 55 | margin: 0; 56 | padding: 0; 57 | outline: none; 58 | 59 | } 60 | 61 | #MSearchCloseImg { 62 | height: 1.4em; 63 | padding: 0.3em; 64 | margin: 0; 65 | } 66 | 67 | .MSearchBoxActive #MSearchField { 68 | color: #000000; 69 | } 70 | 71 | #main-menu > li:last-child { 72 | /* This
  • object is the parent of the search bar */ 73 | display: flex; 74 | justify-content: center; 75 | align-items: center; 76 | height: 36px; 77 | margin-right: 1em; 78 | } 79 | 80 | /*---------------- Search filter selection */ 81 | 82 | #MSearchSelectWindow { 83 | display: none; 84 | position: absolute; 85 | left: 0; top: 0; 86 | border: 1px solid #90A5CE; 87 | background-color: #F9FAFC; 88 | z-index: 10001; 89 | padding-top: 4px; 90 | padding-bottom: 4px; 91 | -moz-border-radius: 4px; 92 | -webkit-border-top-left-radius: 4px; 93 | -webkit-border-top-right-radius: 4px; 94 | -webkit-border-bottom-left-radius: 4px; 95 | -webkit-border-bottom-right-radius: 4px; 96 | -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); 97 | } 98 | 99 | .SelectItem { 100 | font: 8pt Arial, Verdana, sans-serif; 101 | padding-left: 2px; 102 | padding-right: 12px; 103 | border: 0px; 104 | } 105 | 106 | span.SelectionMark { 107 | margin-right: 4px; 108 | font-family: monospace; 109 | outline-style: none; 110 | text-decoration: none; 111 | } 112 | 113 | a.SelectItem { 114 | display: block; 115 | outline-style: none; 116 | color: #000000; 117 | text-decoration: none; 118 | padding-left: 6px; 119 | padding-right: 12px; 120 | } 121 | 122 | a.SelectItem:focus, 123 | a.SelectItem:active { 124 | color: #000000; 125 | outline-style: none; 126 | text-decoration: none; 127 | } 128 | 129 | a.SelectItem:hover { 130 | color: #FFFFFF; 131 | background-color: #3D578C; 132 | outline-style: none; 133 | text-decoration: none; 134 | cursor: pointer; 135 | display: block; 136 | } 137 | 138 | /*---------------- Search results window */ 139 | 140 | iframe#MSearchResults { 141 | width: 60ex; 142 | height: 15em; 143 | } 144 | 145 | #MSearchResultsWindow { 146 | display: none; 147 | position: absolute; 148 | left: 0; top: 0; 149 | border: 1px solid #000; 150 | background-color: #EEF1F7; 151 | z-index:10000; 152 | } 153 | 154 | /* ----------------------------------- */ 155 | 156 | 157 | #SRIndex { 158 | clear:both; 159 | padding-bottom: 15px; 160 | } 161 | 162 | .SREntry { 163 | font-size: 10pt; 164 | padding-left: 1ex; 165 | } 166 | 167 | .SRPage .SREntry { 168 | font-size: 8pt; 169 | padding: 1px 5px; 170 | } 171 | 172 | body.SRPage { 173 | margin: 5px 2px; 174 | } 175 | 176 | .SRChildren { 177 | padding-left: 3ex; padding-bottom: .5em 178 | } 179 | 180 | .SRPage .SRChildren { 181 | display: none; 182 | } 183 | 184 | .SRSymbol { 185 | font-weight: bold; 186 | color: #425E97; 187 | font-family: Arial, Verdana, sans-serif; 188 | text-decoration: none; 189 | outline: none; 190 | } 191 | 192 | a.SRScope { 193 | display: block; 194 | color: #425E97; 195 | font-family: Arial, Verdana, sans-serif; 196 | text-decoration: none; 197 | outline: none; 198 | } 199 | 200 | a.SRSymbol:focus, a.SRSymbol:active, 201 | a.SRScope:focus, a.SRScope:active { 202 | text-decoration: underline; 203 | } 204 | 205 | span.SRScope { 206 | padding-left: 4px; 207 | font-family: Arial, Verdana, sans-serif; 208 | } 209 | 210 | .SRPage .SRStatus { 211 | padding: 2px 5px; 212 | font-size: 8pt; 213 | font-style: italic; 214 | font-family: Arial, Verdana, sans-serif; 215 | } 216 | 217 | .SRResult { 218 | display: none; 219 | } 220 | 221 | div.searchresults { 222 | margin-left: 10px; 223 | margin-right: 10px; 224 | } 225 | 226 | /*---------------- External search page results */ 227 | 228 | .searchresult { 229 | background-color: #F0F3F8; 230 | } 231 | 232 | .pages b { 233 | color: white; 234 | padding: 5px 5px 3px 5px; 235 | background-image: url("../tab_a.png"); 236 | background-repeat: repeat-x; 237 | text-shadow: 0 1px 1px #000000; 238 | } 239 | 240 | .pages { 241 | line-height: 17px; 242 | margin-left: 4px; 243 | text-decoration: none; 244 | } 245 | 246 | .hl { 247 | font-weight: bold; 248 | } 249 | 250 | #searchresults { 251 | margin-bottom: 20px; 252 | } 253 | 254 | .searchpages { 255 | margin-top: 10px; 256 | } 257 | 258 | -------------------------------------------------------------------------------- /html/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/search/search_l.png -------------------------------------------------------------------------------- /html/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/search/search_m.png -------------------------------------------------------------------------------- /html/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/search/search_r.png -------------------------------------------------------------------------------- /html/search/searchdata.js: -------------------------------------------------------------------------------- 1 | var indexSectionsWithContent = 2 | { 3 | 0: "acdginopt", 4 | 1: "d", 5 | 2: "acginopt", 6 | 3: "d" 7 | }; 8 | 9 | var indexSectionNames = 10 | { 11 | 0: "all", 12 | 1: "classes", 13 | 2: "functions", 14 | 3: "pages" 15 | }; 16 | 17 | var indexSectionLabels = 18 | { 19 | 0: "All", 20 | 1: "Classes", 21 | 2: "Functions", 22 | 3: "Pages" 23 | }; 24 | 25 | -------------------------------------------------------------------------------- /html/splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/splitbar.png -------------------------------------------------------------------------------- /html/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/sync_off.png -------------------------------------------------------------------------------- /html/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/sync_on.png -------------------------------------------------------------------------------- /html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/tab_a.png -------------------------------------------------------------------------------- /html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/tab_b.png -------------------------------------------------------------------------------- /html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/tab_h.png -------------------------------------------------------------------------------- /html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/html/tab_s.png -------------------------------------------------------------------------------- /html/tabs.css: -------------------------------------------------------------------------------- 1 | .sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} -------------------------------------------------------------------------------- /include/DxJtAttrib.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // Copyright (C) 2019 by bitbybit3d, All rights reserved. 3 | // Author: bitbybit3d@163.com 4 | // 5 | // 6 | // THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 7 | // EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 8 | // MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 9 | ////////////////////////////////////////////////////////////////////////////// 10 | #ifndef __JT_TOOLKIT_ATTRIBUTE_H_ 11 | #define __JT_TOOLKIT_ATTRIBUTE_H_ 12 | 13 | #include "DxJtEntity.h" 14 | 15 | /** 16 | * @brief The base class for all attributes. 17 | */ 18 | class JT_TOOLKIT_EXPORT DxJtAttrib : public DxJtEntity 19 | { 20 | protected: 21 | DxJtAttrib(); 22 | 23 | public: 24 | DXJT_ENTITY_TYPEID_HEADER(DxJtAttrib); 25 | 26 | 27 | enum Scope 28 | { 29 | JtkINHERITED = 0, 30 | JtkSHARED = 1, 31 | JtkINSTANCE = 2 32 | }; 33 | }; 34 | 35 | /** 36 | * @brief Attribute class for material. 37 | */ 38 | class JT_TOOLKIT_EXPORT DxJtMaterial : public DxJtAttrib 39 | { 40 | protected: 41 | DxJtMaterial(); 42 | 43 | public: 44 | DXJT_ENTITY_TYPEID_HEADER(DxJtMaterial); 45 | 46 | virtual void setAmbientColor(const std::vector& ambient) = 0; 47 | virtual void getAmbientColor(std::vector& ambient) const = 0; 48 | virtual void setDiffuseColor(const std::vector& diffuse) = 0; 49 | virtual void getDiffuseColor(std::vector& diffuse) const = 0; 50 | virtual void setSpecularColor(const std::vector& specular) = 0; 51 | virtual void getSpecularColor(std::vector& specular) const = 0; 52 | virtual void setEmissionColor(const std::vector& emission) = 0; 53 | virtual void getEmissionColor(std::vector& emission) const = 0; 54 | virtual void setShininess(float shininess) = 0; 55 | virtual float getShininess() const = 0; 56 | }; 57 | 58 | /** 59 | * @brief Attribute class for transform. 60 | */ 61 | class JT_TOOLKIT_EXPORT DxJtTransform : public DxJtAttrib 62 | { 63 | protected: 64 | DxJtTransform(); 65 | 66 | public: 67 | DXJT_ENTITY_TYPEID_HEADER(DxJtTransform); 68 | 69 | 70 | virtual void setTElements(const std::vector& transf) = 0; 71 | virtual void getTElements(std::vector& transf) const = 0; 72 | }; 73 | 74 | #endif // __JT_TOOLKIT_ATTRIBUTE_H_ 75 | -------------------------------------------------------------------------------- /include/DxJtCADExporter.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // Copyright (C) 2019 by bitbybit3d, All rights reserved. 3 | // Author: bitbybit3d@163.com 4 | // 5 | // 6 | // THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 7 | // EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 8 | // MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 9 | ////////////////////////////////////////////////////////////////////////////// 10 | #ifndef __JT_TOOLKIT_CAD_EXPORTER_H_ 11 | #define __JT_TOOLKIT_CAD_EXPORTER_H_ 12 | 13 | #include "DxJtEntity.h" 14 | 15 | class DxJtHierarchy; 16 | 17 | /** 18 | * @brief Save the root node to a JT format file. 19 | */ 20 | class JT_TOOLKIT_EXPORT DxJtCADExporter : public DxJtEntity 21 | { 22 | protected: 23 | DxJtCADExporter(); 24 | 25 | public: 26 | DXJT_ENTITY_TYPEID_HEADER(DxJtCADExporter); 27 | 28 | 29 | virtual void setExportPath(const wchar_t* path) = 0; 30 | 31 | virtual bool exportJt(std::shared_ptr root) const = 0; 32 | }; 33 | 34 | #endif // __JT_TOOLKIT_CAD_EXPORTER_H_ 35 | -------------------------------------------------------------------------------- /include/DxJtCADImporter.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // Copyright (C) 2019 by bitbybit3d, All rights reserved. 3 | // Author: bitbybit3d@163.com 4 | // 5 | // 6 | // THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 7 | // EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 8 | // MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 9 | ////////////////////////////////////////////////////////////////////////////// 10 | #ifndef __JT_TOOLKIT_CAD_IMPORTER_H_ 11 | #define __JT_TOOLKIT_CAD_IMPORTER_H_ 12 | 13 | #include "DxJtEntity.h" 14 | 15 | class DxJtHierarchy; 16 | 17 | /** 18 | * @brief Load JT format file to return a root node. 19 | */ 20 | class JT_TOOLKIT_EXPORT DxJtCADImporter : public DxJtEntity 21 | { 22 | protected: 23 | DxJtCADImporter(); 24 | 25 | public: 26 | DXJT_ENTITY_TYPEID_HEADER(DxJtCADImporter); 27 | 28 | 29 | // Continue the export process normally. 30 | // Option to load tristrip/linestrip/polygon/point set data from the .jt file 31 | enum ShapeLoadOption 32 | { 33 | JtkALL_LODS = 0, // Retain all LODs from the input 34 | JtkHIGH_LOD 35 | }; 36 | 37 | virtual void setShapeLoadOption(ShapeLoadOption Option) = 0; 38 | virtual ShapeLoadOption shapeLoadOption() const = 0; 39 | 40 | virtual std::shared_ptr importJt(const wchar_t* filename) = 0; 41 | }; 42 | 43 | #endif // __JT_TOOLKIT_CAD_IMPORTER_H_ 44 | -------------------------------------------------------------------------------- /include/DxJtEntity.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // Copyright (C) 2019 by bitbybit3d, All rights reserved. 3 | // Author: bitbybit3d@163.com 4 | // 5 | // 6 | // THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 7 | // EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 8 | // MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 9 | ////////////////////////////////////////////////////////////////////////////// 10 | #ifndef __DXJT_TOOLKIT_ENTITY_H_ 11 | #define __DXJT_TOOLKIT_ENTITY_H_ 12 | 13 | // Begin Microsoft Windows DLL support. 14 | #if defined(DXJTTOOLKIT_EXPORTS) 15 | // For the DLL library. 16 | #define JT_TOOLKIT_EXPORT __declspec(dllexport) 17 | #pragma warning( disable : 4251 ) 18 | #pragma warning( disable : 4267 ) 19 | #elif defined(DXJT_TOOLKIT_STATIC_IMPORT) 20 | // For the static library and for Apple/Linux. 21 | #define JT_TOOLKIT_EXPORT 22 | #else 23 | // For a client of the DLL library. 24 | #define JT_TOOLKIT_EXPORT __declspec(dllimport) 25 | #endif 26 | // End Microsoft Windows DLL support. 27 | 28 | 29 | #include 30 | #include 31 | #include 32 | 33 | /** 34 | * @brief The root class. 35 | */ 36 | class JT_TOOLKIT_EXPORT DxJtEntity 37 | { 38 | DxJtEntity(const DxJtEntity&) = delete; // copy constructor 39 | DxJtEntity& operator=(const DxJtEntity&) = delete; // assignment operator 40 | 41 | protected: 42 | DxJtEntity(); 43 | 44 | public: 45 | virtual ~DxJtEntity(); 46 | 47 | enum TypeID { 48 | JtkNONE, 49 | JtkENTITY, 50 | JtkHIERARCHY, 51 | JtkUNITHIERARCHY, 52 | JtkATTRIB, 53 | JtkPROPERTY, 54 | JtkASSEMBLY, 55 | JtkPART, 56 | JtkINSTANCE, 57 | JtkMATERIAL, 58 | JtkTRANSFORM, 59 | JtkSHAPE, 60 | JtkTRISTRIPSET, 61 | JtkCADIMPORTER, 62 | JtkCADEXPORTER, 63 | }; 64 | 65 | // Type identification methods. 66 | /** 67 | * @brief Return the TypeID for class. 68 | */ 69 | static TypeID classTypeID(); 70 | /** 71 | * @brief Return the TypeID for instance. 72 | */ 73 | virtual TypeID typeID() const; 74 | /** 75 | * @brief Return the typeId name for this instance. 76 | */ 77 | virtual const wchar_t* const typeIDName() const; 78 | 79 | /** 80 | * @brief Return true if instance is the type id. 81 | */ 82 | bool isOfType(TypeID id) const; 83 | 84 | /** 85 | * @brief Return true if instance belong to the type id. 86 | */ 87 | virtual bool isOfSubType(TypeID id) const; 88 | }; 89 | 90 | 91 | #define DXJT_ENTITY_TYPEID_HEADER(classname) \ 92 | public: \ 93 | static TypeID classTypeID(); \ 94 | virtual TypeID typeID() const; \ 95 | virtual const wchar_t* const typeName() const; \ 96 | virtual bool isOfSubType(TypeID id) const; \ 97 | 98 | 99 | 100 | #define DXJT_ENTITY_TYPEID_IMPLEMENT(classname, kTypeID, typeIDStr, baseclassname) \ 101 | DxJtEntity::TypeID classname::classTypeID() { \ 102 | return DxJtEntity::kTypeID; \ 103 | } \ 104 | DxJtEntity::TypeID classname::typeID() const {\ 105 | return DxJtEntity::kTypeID; \ 106 | } \ 107 | const wchar_t* const classname::typeName() const {\ 108 | return typeIDStr; \ 109 | } \ 110 | bool classname::isOfSubType(TypeID id) const {\ 111 | if (id == classname::classTypeID()) \ 112 | return true; \ 113 | return baseclassname::isOfSubType(id); \ 114 | } \ 115 | 116 | 117 | #endif // __DXJT_TOOLKIT_ENTITY_H_ 118 | -------------------------------------------------------------------------------- /include/DxJtEntityFactory.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // Copyright (C) 2019 by bitbybit3d, All rights reserved. 3 | // Author: bitbybit3d@163.com 4 | // 5 | // 6 | // THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 7 | // EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 8 | // MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 9 | ////////////////////////////////////////////////////////////////////////////// 10 | #ifndef __JT_TOOLKIT_ENTITY_FACTORY_H_ 11 | #define __JT_TOOLKIT_ENTITY_FACTORY_H_ 12 | 13 | #include "DxJtEntity.h" 14 | #include "DxJtCADImporter.h" 15 | #include "DxJtCADExporter.h" 16 | #include "DxJtAttrib.h" 17 | #include "DxJtProperty.h" 18 | #include "DxJtHierarchy.h" 19 | #include "DxJtShape.h" 20 | #include "DxJtTriStripSet.h" 21 | 22 | /** 23 | * @brief A static factory class used to create all toolkit objects. 24 | * Client applications should use this class to create all 25 | * JtEntity-derived objects instead of C++'s new command. 26 | */ 27 | class JT_TOOLKIT_EXPORT DxJtEntityFactory 28 | { 29 | public: 30 | enum LICENSE_HINT_TYPE 31 | { 32 | LICENSE_DLL_PATH, 33 | LICENSE_DATA, 34 | }; 35 | struct LicenseLoc 36 | { 37 | LICENSE_HINT_TYPE licenseHint; 38 | char licenseData[1024]; 39 | }; 40 | /** 41 | * @brief Register license. 42 | */ 43 | static bool registerLicense(const LicenseLoc* licenseLocation = nullptr); 44 | 45 | /** 46 | * @brief Creates a new JtCADImporter object. 47 | */ 48 | static std::shared_ptr createCADImporter(); 49 | /** 50 | * @brief Creates a new JtCADExporter object. 51 | */ 52 | static std::shared_ptr createCADExporter(); 53 | 54 | static std::shared_ptr createAssembly(); 55 | static std::shared_ptr createPart(); 56 | static std::shared_ptr createInstance(std::shared_ptr refOrig); 57 | 58 | static std::shared_ptr createMaterial(); 59 | static std::shared_ptr createTransform(); 60 | 61 | static std::shared_ptr createProperty(const std::wstring& keyString, 62 | const std::wstring& value); 63 | static std::shared_ptr createProperty(const std::wstring& keyString, 64 | const int value); 65 | static std::shared_ptr createProperty(const std::wstring& keyString, 66 | const float value); 67 | static std::shared_ptr createProperty(const std::wstring& keyString, 68 | const short year, const short month, const short day, const short hour, 69 | const short minutes, const short seconds); 70 | 71 | static std::shared_ptr createShape(); 72 | static std::shared_ptr createTriStripSet(); 73 | }; 74 | 75 | #endif // __JT_TOOLKIT_ENTITY_FACTORY_H_ 76 | -------------------------------------------------------------------------------- /include/DxJtHierarchy.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // Copyright (C) 2019 by bitbybit3d, All rights reserved. 3 | // Author: bitbybit3d@163.com 4 | // 5 | // 6 | // THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 7 | // EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 8 | // MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 9 | ////////////////////////////////////////////////////////////////////////////// 10 | #ifndef __JT_TOOLKIT_HIERARCHY_H_ 11 | #define __JT_TOOLKIT_HIERARCHY_H_ 12 | 13 | #include "DxJtEntity.h" 14 | #include "DxJtAttrib.h" 15 | #include "DxJtProperty.h" 16 | #include "DxJtShape.h" 17 | 18 | /** 19 | * @brief The base class for all product structure objects ( 20 | * JtAssembly, JtPart, and JtInstance). 21 | */ 22 | class JT_TOOLKIT_EXPORT DxJtHierarchy : public DxJtEntity 23 | { 24 | protected: 25 | DxJtHierarchy(); 26 | 27 | public: 28 | virtual ~DxJtHierarchy() {} 29 | 30 | DXJT_ENTITY_TYPEID_HEADER(DxJtHierarchy); 31 | 32 | 33 | // Basic ID APIs 34 | virtual std::wstring name() const = 0; 35 | virtual void setName(const std::wstring& nm) = 0; 36 | virtual int version() const = 0; 37 | virtual void setId(int InstId) = 0; 38 | virtual int getId() const = 0; 39 | 40 | // graph-related APIs 41 | virtual std::shared_ptr parent() const = 0; 42 | 43 | // properties 44 | /** 45 | * @brief Get the number of properties. 46 | */ 47 | virtual int numProps() const = 0; 48 | 49 | virtual bool addProp(std::shared_ptr prop) = 0; 50 | virtual std::shared_ptr getProp(int index) const = 0; 51 | 52 | // attributes 53 | /** 54 | * @brief Set the JtAttribute to this node. 55 | */ 56 | virtual int addAttrib(std::shared_ptr attrib) = 0; 57 | /** 58 | * @brief Get the number of attributes. 59 | */ 60 | virtual int numAttribs() const = 0; 61 | /** 62 | * @brief Gets the JtAttribute by index. 63 | */ 64 | virtual std::shared_ptr getAttrib(int index) const = 0; 65 | 66 | // JT file structure ("shattering") APIs 67 | virtual void setJtFilename(const std::wstring& JtFileName) = 0; 68 | virtual std::wstring getJtFilename() const = 0; 69 | }; 70 | 71 | /** 72 | * @brief The intermediate class implementing units and PMI 73 | * for JtAssembly and JtPart. 74 | */ 75 | class JT_TOOLKIT_EXPORT DxJtUnitHierarchy : public DxJtHierarchy 76 | { 77 | protected: 78 | DxJtUnitHierarchy(); 79 | 80 | public: 81 | DXJT_ENTITY_TYPEID_HEADER(DxJtUnitHierarchy); 82 | 83 | 84 | enum JtkUnits 85 | { 86 | JtkUNKNOWN = 0, 87 | JtkMICROMETERS, 88 | JtkMILLIMETERS, 89 | JtkCENTIMETERS, 90 | JtkDECIMETERS, 91 | JtkMETERS, 92 | JtkKILOMETERS, 93 | JtkINCHES, 94 | JtkFEET, 95 | JtkYARDS, 96 | JtkMILES, 97 | JtkMILS 98 | }; 99 | 100 | // Measurement units APIs 101 | virtual void setUnits(JtkUnits units) = 0; 102 | virtual JtkUnits getUnits() const = 0; 103 | 104 | // Instance APIs 105 | virtual int numInstances() const = 0; 106 | }; 107 | 108 | /** 109 | * @brief The object for defining non-leaf nodes in a product 110 | * structure hierarchy. Any hierarchy object may be a child 111 | * of this object. 112 | * 113 | * Note: all hierarchies must be a cyclical (i.e. an assembly 114 | * object cannot be a descendant of itself). 115 | * Cycle detection if NOT performed, and cyclic graphs will 116 | * likely lead to undefined results. 117 | */ 118 | class JT_TOOLKIT_EXPORT DxJtAssembly : public DxJtUnitHierarchy 119 | { 120 | protected: 121 | DxJtAssembly(); 122 | 123 | public: 124 | DXJT_ENTITY_TYPEID_HEADER(DxJtAssembly); 125 | 126 | 127 | /** 128 | * @brief Adds any JtHierarchy-derived object as a child of this assembly. 129 | */ 130 | virtual int addChild(std::shared_ptr son) = 0; 131 | 132 | /** 133 | * @brief Get the number of children. 134 | */ 135 | virtual int numChildren() const = 0; 136 | 137 | /** 138 | * @brief Gets a JtHierarchy child by index. 139 | */ 140 | virtual std::shared_ptr child(int index) const = 0; 141 | }; 142 | 143 | 144 | /** 145 | * @brief The object for defining leaf nodes in a product 146 | * structure hierarchy. These objects are the only ones that 147 | * can hold geometry. 148 | */ 149 | class JT_TOOLKIT_EXPORT DxJtPart : public DxJtUnitHierarchy 150 | { 151 | protected: 152 | DxJtPart(); 153 | 154 | public: 155 | DXJT_ENTITY_TYPEID_HEADER(DxJtPart); 156 | 157 | 158 | virtual int addPolyShape(std::shared_ptr shape, int LODNum = 0) = 0; 159 | 160 | /** 161 | * @brief Get the number of faceted shape geometry LODs. 162 | */ 163 | virtual int numPolyLODs() = 0; 164 | 165 | /** 166 | * @brief Returns the number of JtShape in a specified LOD. 167 | */ 168 | virtual int numPolyShapes(int LODNum) = 0; 169 | virtual std::shared_ptr getPolyShape(int LODNum, int index) = 0; 170 | }; 171 | 172 | /** 173 | * @brief Reference object pointing to an either a JtkAssembly or 174 | * JtkPart object. Used to avoid physical duplication of 175 | * replicated assembly objects. 176 | */ 177 | class JT_TOOLKIT_EXPORT DxJtInstance : public DxJtHierarchy 178 | { 179 | protected: 180 | DxJtInstance(); 181 | 182 | public: 183 | DXJT_ENTITY_TYPEID_HEADER(DxJtInstance); 184 | 185 | /** 186 | * @brief A pointer to the node being instanced. 187 | */ 188 | virtual std::shared_ptr original() const = 0; 189 | }; 190 | 191 | #endif // __JT_TOOLKIT_HIERARCHY_H_ 192 | -------------------------------------------------------------------------------- /include/DxJtProperty.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // Copyright (C) 2019 by bitbybit3d, All rights reserved. 3 | // Author: bitbybit3d@163.com 4 | // 5 | // 6 | // THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 7 | // EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 8 | // MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 9 | ////////////////////////////////////////////////////////////////////////////// 10 | #ifndef __JT_TOOLKIT_PROPERTY_H_ 11 | #define __JT_TOOLKIT_PROPERTY_H_ 12 | 13 | #include "DxJtEntity.h" 14 | 15 | /** 16 | * @brief The base class for all attributes. 17 | */ 18 | class JT_TOOLKIT_EXPORT DxJtProperty : public DxJtEntity 19 | { 20 | protected: 21 | DxJtProperty(); 22 | 23 | public: 24 | DXJT_ENTITY_TYPEID_HEADER(DxJtProperty); 25 | 26 | 27 | enum SubType 28 | { 29 | JtkUNKNOWN, 30 | JtkSTRING, 31 | JtkINT, 32 | JtkFLOAT, 33 | JtkDATE 34 | }; 35 | 36 | virtual SubType getSubType() const = 0; 37 | virtual bool getInternal(std::wstring& key, std::wstring& value) const = 0; 38 | virtual bool getInternal(std::wstring& key, int& value) const = 0; 39 | virtual bool getInternal(std::wstring& key, float& value) const = 0; 40 | virtual bool getInternal(std::wstring& key, short& year, short& month, 41 | short& day, short& hour, short& minutes, short& seconds) const = 0; 42 | }; 43 | 44 | #endif // __JT_TOOLKIT_PROPERTY_H_ 45 | -------------------------------------------------------------------------------- /include/DxJtShape.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // Copyright (C) 2019 by bitbybit3d, All rights reserved. 3 | // Author: bitbybit3d@163.com 4 | // 5 | // 6 | // THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 7 | // EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 8 | // MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 9 | ////////////////////////////////////////////////////////////////////////////// 10 | #ifndef __JT_TOOLKIT_SHAPE_BASE_H_ 11 | #define __JT_TOOLKIT_SHAPE_BASE_H_ 12 | 13 | #include "DxJtEntity.h" 14 | #include "DxJtAttrib.h" 15 | 16 | 17 | /** 18 | * @brief Geometric shape definition data (e.g. vertices, normals, etc). 19 | */ 20 | class JT_TOOLKIT_EXPORT DxJtShape : public DxJtEntity 21 | { 22 | protected: 23 | DxJtShape(); 24 | 25 | public: 26 | DXJT_ENTITY_TYPEID_HEADER(DxJtShape); 27 | 28 | 29 | /** 30 | * @brief Set the JtAttribute to this node. 31 | */ 32 | virtual int addAttrib(std::shared_ptr attrib) = 0; 33 | /** 34 | * @brief Get the number of attributes. 35 | */ 36 | virtual int numAttribs() const = 0; 37 | /** 38 | * @brief Gets the JtAttribute by index. 39 | */ 40 | virtual std::shared_ptr getAttrib(int index) const = 0; 41 | 42 | /** 43 | * @brief Add or get data as Tri-Strip Set. 44 | */ 45 | virtual void addPrim(const std::vector& vertices, const std::vector& normals) = 0; 46 | virtual void getInternal(std::vector& vertices, std::vector& normals, int setNum) const = 0; 47 | virtual int numOfSets() const = 0; 48 | 49 | /** 50 | * @brief Get the all triangles for display. 51 | * 52 | * @warning no correspond setTriangles() function. 53 | */ 54 | virtual void getTriangles(std::vector& vertices, std::vector& normals, std::vector& indices) const = 0; 55 | }; 56 | 57 | #endif // __JT_TOOLKIT_SHAPE_BASE_H_ 58 | -------------------------------------------------------------------------------- /include/DxJtTraverser.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/include/DxJtTraverser.h -------------------------------------------------------------------------------- /include/DxJtTriStripSet.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // Copyright (C) 2019 by bitbybit3d, All rights reserved. 3 | // Author: bitbybit3d@163.com 4 | // 5 | // 6 | // THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 7 | // EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 8 | // MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 9 | ////////////////////////////////////////////////////////////////////////////// 10 | #ifndef __JT_TOOLKIT_TRISTRIP_SET_H_ 11 | #define __JT_TOOLKIT_TRISTRIP_SET_H_ 12 | 13 | #include "DxJtShape.h" 14 | 15 | /** 16 | * @brief A Tri-Strip Set Shape Element, forming triangles, like 17 | * OpenGL's triangle strip definition. 18 | */ 19 | class JT_TOOLKIT_EXPORT DxJtTriStripSet : public DxJtShape 20 | { 21 | public: 22 | DxJtTriStripSet(); 23 | 24 | public: 25 | DXJT_ENTITY_TYPEID_HEADER(DxJtTriStripSet); 26 | 27 | }; 28 | 29 | #endif // __JT_TOOLKIT_TRISTRIP_SET_H_ 30 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /samples/CoffeeMaker.jt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/samples/CoffeeMaker.jt -------------------------------------------------------------------------------- /samples/example_block_jt10.3.jt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/samples/example_block_jt10.3.jt -------------------------------------------------------------------------------- /samples/example_block_jt8.1.jt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/samples/example_block_jt8.1.jt -------------------------------------------------------------------------------- /samples/example_block_jt9.5.jt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/samples/example_block_jt9.5.jt -------------------------------------------------------------------------------- /samples/opening_protection_plate1_jt8.0.jt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/samples/opening_protection_plate1_jt8.0.jt -------------------------------------------------------------------------------- /samples/opening_protection_plate1_jt9.5.jt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/samples/opening_protection_plate1_jt9.5.jt -------------------------------------------------------------------------------- /samples/san2.jt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/samples/san2.jt -------------------------------------------------------------------------------- /x64_v141/Debug/dxjt_toolkit.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/x64_v141/Debug/dxjt_toolkit.dll -------------------------------------------------------------------------------- /x64_v141/Debug/dxjt_toolkit.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/x64_v141/Debug/dxjt_toolkit.lib -------------------------------------------------------------------------------- /x64_v141/Debug/dxjt_toolkit.lic: -------------------------------------------------------------------------------- 1 | [DXJT_TOOLKIT] 2 | lic_ver = 200 3 | valid-from = 2024-10-15 4 | valid-to = 2025-03-31 5 | sig = WplEUqS6YhQuU0lhGq9xC+PBInV003uLxfct7pOM5akp+Wn6E5DL0uAgBhNiRLYMYlRbVFW2xdeVEAr5fjo47ZeIqbMweu1Zv1r7pZ/nKyhfU6CtD0KarafE6ZG40kIGjhgUJGv6tVJhQ+LThRduHeHlchOvZH6sOpGGuwunIfA= 6 | 7 | -------------------------------------------------------------------------------- /x64_v141/Debug/dxjt_toolkit.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/x64_v141/Debug/dxjt_toolkit.pdb -------------------------------------------------------------------------------- /x64_v141/Debug/libdximpjt.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/x64_v141/Debug/libdximpjt.dll -------------------------------------------------------------------------------- /x64_v141/Debug/libdximpjt.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/x64_v141/Debug/libdximpjt.lib -------------------------------------------------------------------------------- /x64_v141/Debug/libdximpjt.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/x64_v141/Debug/libdximpjt.pdb -------------------------------------------------------------------------------- /x64_v141/Debug/liblzma.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/x64_v141/Debug/liblzma.dll -------------------------------------------------------------------------------- /x64_v141/Debug/zlib.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/x64_v141/Debug/zlib.dll -------------------------------------------------------------------------------- /x64_v141/Release/dxjt_toolkit.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/x64_v141/Release/dxjt_toolkit.dll -------------------------------------------------------------------------------- /x64_v141/Release/dxjt_toolkit.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/x64_v141/Release/dxjt_toolkit.lib -------------------------------------------------------------------------------- /x64_v141/Release/dxjt_toolkit.lic: -------------------------------------------------------------------------------- 1 | [DXJT_TOOLKIT] 2 | lic_ver = 200 3 | valid-from = 2024-10-15 4 | valid-to = 2025-03-31 5 | sig = WplEUqS6YhQuU0lhGq9xC+PBInV003uLxfct7pOM5akp+Wn6E5DL0uAgBhNiRLYMYlRbVFW2xdeVEAr5fjo47ZeIqbMweu1Zv1r7pZ/nKyhfU6CtD0KarafE6ZG40kIGjhgUJGv6tVJhQ+LThRduHeHlchOvZH6sOpGGuwunIfA= 6 | 7 | -------------------------------------------------------------------------------- /x64_v141/Release/libdximpjt.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/x64_v141/Release/libdximpjt.dll -------------------------------------------------------------------------------- /x64_v141/Release/libdximpjt.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/x64_v141/Release/libdximpjt.lib -------------------------------------------------------------------------------- /x64_v141/Release/liblzma.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/x64_v141/Release/liblzma.dll -------------------------------------------------------------------------------- /x64_v141/Release/zlib.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitbybit3d/dxjt_toolkit/5a3b34c165c3b1a7cae0e55e22174110ce227ca6/x64_v141/Release/zlib.dll --------------------------------------------------------------------------------