Separate file for svg loader.
This commit is contained in:
parent
d2039f97e6
commit
2ccc67fe1a
@ -51,6 +51,7 @@
|
|||||||
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
||||||
|
<script type="text/javascript" src="../source/import/importersvg.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
||||||
|
|||||||
@ -51,6 +51,7 @@
|
|||||||
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
||||||
|
<script type="text/javascript" src="../source/import/importersvg.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
||||||
|
|||||||
@ -50,6 +50,7 @@
|
|||||||
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
||||||
|
<script type="text/javascript" src="../source/import/importersvg.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
||||||
|
|||||||
@ -51,6 +51,7 @@
|
|||||||
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
||||||
|
<script type="text/javascript" src="../source/import/importersvg.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
||||||
|
|||||||
@ -51,6 +51,7 @@
|
|||||||
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
||||||
|
<script type="text/javascript" src="../source/import/importersvg.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
||||||
|
|||||||
@ -50,6 +50,7 @@
|
|||||||
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
||||||
|
<script type="text/javascript" src="../source/import/importersvg.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
||||||
|
|||||||
@ -50,6 +50,7 @@
|
|||||||
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
||||||
|
<script type="text/javascript" src="../source/import/importersvg.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
||||||
|
|||||||
85
source/import/importersvg.js
Normal file
85
source/import/importersvg.js
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
OV.ImporterThreeSvg = class extends OV.ImporterThreeBase
|
||||||
|
{
|
||||||
|
constructor ()
|
||||||
|
{
|
||||||
|
super ();
|
||||||
|
}
|
||||||
|
|
||||||
|
CanImportExtension (extension)
|
||||||
|
{
|
||||||
|
return extension === 'svg';
|
||||||
|
}
|
||||||
|
|
||||||
|
GetUpDirection ()
|
||||||
|
{
|
||||||
|
return OV.Direction.Z;
|
||||||
|
}
|
||||||
|
|
||||||
|
GetExternalLibraries ()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'three_loaders/SVGLoader.js'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
CreateLoader (manager)
|
||||||
|
{
|
||||||
|
return new THREE.SVGLoader (manager);
|
||||||
|
}
|
||||||
|
|
||||||
|
GetMainObject (loadedObject)
|
||||||
|
{
|
||||||
|
function ShowFill (path)
|
||||||
|
{
|
||||||
|
const style = path.userData.style;
|
||||||
|
if (style.fill === undefined || style.fill === 'none') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function ShowStroke (path)
|
||||||
|
{
|
||||||
|
const style = path.userData.style;
|
||||||
|
if (style.stroke === undefined || style.stroke === 'none') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
let object = new THREE.Object3D ();
|
||||||
|
|
||||||
|
let fillsObject = new THREE.Object3D ();
|
||||||
|
let strokesObject = new THREE.Object3D ();
|
||||||
|
|
||||||
|
fillsObject.name = 'Fills';
|
||||||
|
strokesObject.name = 'Strokes';
|
||||||
|
|
||||||
|
object.add (fillsObject);
|
||||||
|
object.add (strokesObject);
|
||||||
|
|
||||||
|
const material = new THREE.MeshPhongMaterial ({
|
||||||
|
color: 0xcc0000
|
||||||
|
});
|
||||||
|
for (let path of loadedObject.paths) {
|
||||||
|
const shapes = THREE.SVGLoader.createShapes (path);
|
||||||
|
if (ShowFill (path)) {
|
||||||
|
for (const shape of shapes) {
|
||||||
|
const geometry = new THREE.ShapeGeometry (shape);
|
||||||
|
const mesh = new THREE.Mesh (geometry, material);
|
||||||
|
fillsObject.add (mesh);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ShowStroke (path)) {
|
||||||
|
for (const subPath of path.subPaths) {
|
||||||
|
const geometry = THREE.SVGLoader.pointsToStroke (subPath.getPoints (), path.userData.style);
|
||||||
|
if (geometry) {
|
||||||
|
const mesh = new THREE.Mesh (geometry, material);
|
||||||
|
strokesObject.add (mesh);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return object;
|
||||||
|
}
|
||||||
|
};
|
||||||
@ -440,80 +440,3 @@ OV.ImporterThree3mf = class extends OV.ImporterThreeBase
|
|||||||
return loadedObject;
|
return loadedObject;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
OV.ImporterThreeSvg = class extends OV.ImporterThreeBase
|
|
||||||
{
|
|
||||||
constructor ()
|
|
||||||
{
|
|
||||||
super ();
|
|
||||||
}
|
|
||||||
|
|
||||||
CanImportExtension (extension)
|
|
||||||
{
|
|
||||||
return extension === 'svg';
|
|
||||||
}
|
|
||||||
|
|
||||||
GetUpDirection ()
|
|
||||||
{
|
|
||||||
return OV.Direction.Z;
|
|
||||||
}
|
|
||||||
|
|
||||||
GetExternalLibraries ()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'three_loaders/SVGLoader.js'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
CreateLoader (manager)
|
|
||||||
{
|
|
||||||
return new THREE.SVGLoader (manager);
|
|
||||||
}
|
|
||||||
|
|
||||||
GetMainObject (loadedObject)
|
|
||||||
{
|
|
||||||
function ShowFill (path)
|
|
||||||
{
|
|
||||||
const style = path.userData.style;
|
|
||||||
if (style.fill === undefined || style.fill === 'none') {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
function ShowStroke (path)
|
|
||||||
{
|
|
||||||
const style = path.userData.style;
|
|
||||||
if (style.stroke === undefined || style.stroke === 'none') {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
let object = new THREE.Object3D ();
|
|
||||||
|
|
||||||
const material = new THREE.MeshPhongMaterial ({
|
|
||||||
color: 0xcc0000
|
|
||||||
});
|
|
||||||
for (let path of loadedObject.paths) {
|
|
||||||
const shapes = THREE.SVGLoader.createShapes (path);
|
|
||||||
if (ShowFill (path)) {
|
|
||||||
for (const shape of shapes) {
|
|
||||||
const geometry = new THREE.ShapeGeometry (shape);
|
|
||||||
const mesh = new THREE.Mesh (geometry, material);
|
|
||||||
object.add (mesh);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (ShowStroke (path)) {
|
|
||||||
for (const subPath of path.subPaths) {
|
|
||||||
const geometry = THREE.SVGLoader.pointsToStroke (subPath.getPoints (), path.userData.style);
|
|
||||||
if (geometry) {
|
|
||||||
const mesh = new THREE.Mesh (geometry, material);
|
|
||||||
object.add (mesh);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return object;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|||||||
@ -47,6 +47,7 @@
|
|||||||
"source/import/importergltf.js",
|
"source/import/importergltf.js",
|
||||||
"source/import/importero3dv.js",
|
"source/import/importero3dv.js",
|
||||||
"source/import/importerthree.js",
|
"source/import/importerthree.js",
|
||||||
|
"source/import/importersvg.js",
|
||||||
"source/import/importer3dm.js",
|
"source/import/importer3dm.js",
|
||||||
"source/import/importerifc.js",
|
"source/import/importerifc.js",
|
||||||
"source/import/filelist.js",
|
"source/import/filelist.js",
|
||||||
|
|||||||
@ -60,6 +60,7 @@
|
|||||||
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
||||||
|
<script type="text/javascript" src="../source/import/importersvg.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
||||||
|
|||||||
@ -60,6 +60,7 @@
|
|||||||
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
<script type="text/javascript" src="../source/import/importergltf.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
<script type="text/javascript" src="../source/import/importero3dv.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
<script type="text/javascript" src="../source/import/importerthree.js"></script>
|
||||||
|
<script type="text/javascript" src="../source/import/importersvg.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
<script type="text/javascript" src="../source/import/importer3dm.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
<script type="text/javascript" src="../source/import/importerifc.js"></script>
|
||||||
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
<script type="text/javascript" src="../source/import/filelist.js"></script>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user