Browse Source

sept27

master
Xsivax 3 years ago
parent
commit
47ea3998b1
57 changed files with 0 additions and 442772 deletions
  1. +0
    -1915
      templates/assets/img/cheers.svg
  2. +0
    -78
      templates/assets/img/gitea-green.svg
  3. BIN
      templates/assets/img/sample-aqua.jpg
  4. +0
    -72180
      templates/assets/img/sample-biodyn.svg
  5. +0
    -11656
      templates/assets/img/sample-blog.svg
  6. BIN
      templates/assets/img/sample-camera.jpg
  7. BIN
      templates/assets/img/sample-close.jpg
  8. BIN
      templates/assets/img/sample-closeup-oil.png
  9. BIN
      templates/assets/img/sample-code1.jpg
  10. BIN
      templates/assets/img/sample-coding-together.jpg
  11. BIN
      templates/assets/img/sample-collective.jpg
  12. BIN
      templates/assets/img/sample-diy.jpg
  13. BIN
      templates/assets/img/sample-dropper.jpg
  14. BIN
      templates/assets/img/sample-faces.jpg
  15. BIN
      templates/assets/img/sample-farm.jpg
  16. +0
    -695
      templates/assets/img/sample-fertilizer.svg
  17. BIN
      templates/assets/img/sample-fish.jpg
  18. +0
    -57275
      templates/assets/img/sample-flower-closeup.svg
  19. +0
    -16755
      templates/assets/img/sample-flower.svg
  20. BIN
      templates/assets/img/sample-girl.jpg
  21. BIN
      templates/assets/img/sample-greenhouse.jpg
  22. +0
    -68981
      templates/assets/img/sample-greentech.svg
  23. BIN
      templates/assets/img/sample-herbs.jpg
  24. BIN
      templates/assets/img/sample-jelly.jpg
  25. BIN
      templates/assets/img/sample-lab.jpg
  26. BIN
      templates/assets/img/sample-led.jpg
  27. BIN
      templates/assets/img/sample-lemon.png
  28. BIN
      templates/assets/img/sample-lemontree.jpg
  29. BIN
      templates/assets/img/sample-light.jpg
  30. BIN
      templates/assets/img/sample-magnifier.png
  31. BIN
      templates/assets/img/sample-massage.jpg
  32. BIN
      templates/assets/img/sample-mate.jpg
  33. BIN
      templates/assets/img/sample-migraines-art.jpg
  34. BIN
      templates/assets/img/sample-mini-greenhouse.jpg
  35. BIN
      templates/assets/img/sample-module.jpg
  36. BIN
      templates/assets/img/sample-net.jpg
  37. BIN
      templates/assets/img/sample-oils-background.jpg
  38. BIN
      templates/assets/img/sample-partners.jpg
  39. +0
    -146
      templates/assets/img/sample-perma.svg
  40. BIN
      templates/assets/img/sample-plant-flower.jpg
  41. BIN
      templates/assets/img/sample-plant.jpg
  42. BIN
      templates/assets/img/sample-plants.jpg
  43. BIN
      templates/assets/img/sample-post.jpg
  44. +0
    -75990
      templates/assets/img/sample-product-candy.svg
  45. +0
    -76086
      templates/assets/img/sample-product.svg
  46. BIN
      templates/assets/img/sample-project.jpg
  47. +0
    -60385
      templates/assets/img/sample-spiderpi-helper.svg
  48. BIN
      templates/assets/img/sample-spiderwoman.png
  49. BIN
      templates/assets/img/sample-tom.jpg
  50. BIN
      templates/assets/img/sample-video.mp4
  51. BIN
      templates/assets/img/sample-virtual.jpg
  52. BIN
      templates/assets/img/sample-waterflow.jpg
  53. BIN
      templates/assets/img/sample-wild.jpg
  54. +0
    -530
      templates/assets/js/PLYLoader.js
  55. +0
    -0
      templates/assets/js/contact.js
  56. +0
    -20
      templates/assets/js/pages.js
  57. +0
    -80
      templates/assets/js/slider.js

+ 0
- 1915
templates/assets/img/cheers.svg
File diff suppressed because it is too large
View File


+ 0
- 78
templates/assets/img/gitea-green.svg
File diff suppressed because it is too large
View File


BIN
templates/assets/img/sample-aqua.jpg View File

Before After
Width: 3691  |  Height: 2461  |  Size: 1.1 MiB

+ 0
- 72180
templates/assets/img/sample-biodyn.svg
File diff suppressed because it is too large
View File


+ 0
- 11656
templates/assets/img/sample-blog.svg
File diff suppressed because it is too large
View File


BIN
templates/assets/img/sample-camera.jpg View File

Before After
Width: 3534  |  Height: 2356  |  Size: 420 KiB

BIN
templates/assets/img/sample-close.jpg View File

Before After
Width: 5760  |  Height: 3840  |  Size: 1.6 MiB

BIN
templates/assets/img/sample-closeup-oil.png View File

Before After
Width: 658  |  Height: 878  |  Size: 362 KiB

BIN
templates/assets/img/sample-code1.jpg View File

Before After
Width: 5184  |  Height: 3456  |  Size: 1.3 MiB

BIN
templates/assets/img/sample-coding-together.jpg View File

Before After
Width: 7360  |  Height: 4912  |  Size: 3.3 MiB

BIN
templates/assets/img/sample-collective.jpg View File

Before After
Width: 3997  |  Height: 2665  |  Size: 1.9 MiB

BIN
templates/assets/img/sample-diy.jpg View File

Before After
Width: 6024  |  Height: 4024  |  Size: 8.2 MiB

BIN
templates/assets/img/sample-dropper.jpg View File

Before After
Width: 2999  |  Height: 2999  |  Size: 296 KiB

BIN
templates/assets/img/sample-faces.jpg View File

Before After
Width: 2000  |  Height: 2000  |  Size: 1.7 MiB

BIN
templates/assets/img/sample-farm.jpg View File

Before After
Width: 6000  |  Height: 4000  |  Size: 1.4 MiB

+ 0
- 695
templates/assets/img/sample-fertilizer.svg View File

@ -1,695 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="400"
height="400"
viewBox="0 0 105.83333 105.83334"
version="1.1"
id="svg1209"
inkscape:version="1.0.1 (0767f8302a, 2020-10-17)"
sodipodi:docname="sample-ferilizer.svg">
<defs
id="defs1203">
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath1865">
<path
style="fill:#00ff00;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m -58.054936,336.80315 11.022836,4.20079 22.298207,-1.02798 11.949891,-4.22535 0.228831,-28.83585 3.8587023,-13.37926 2.1794571,-32.66521 2.0606792,-19.30146 4.05001815,-4.30949 -8.88187045,-6.57191 -53.2335213,0.18538 -13.044019,6.41742 -3.467857,3.84577 6.658224,3.03725 2.086758,20.36789 9.31409,65.41282 z"
id="path1867" />
</clipPath>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath1937">
<path
style="fill:#00ffff;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m -175.05217,535.47933 73.41163,-33.91508 28.802439,-35.4888 17.475779,-40.81508 6.292332,-44.47923 -1.671103,-31.9001 -147.433397,-293.372605 -7.66182,-210.099965 -18.50506,-395.57509 2.12614,-48.07318 12.43556,-13.70801 -113.38784,-1.52114 7.31642,8.89487 10.58712,370.47837 11.65055,278.582392 -13.36751,39.32623 -128.98507,277.653828 -0.68421,40.01518 15.81571,53.3376 38.96204,49.37918 42.83958,25.47864 62.51099,13.75471 87.00969,-0.11528 z"
id="path1939" />
</clipPath>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath2043">
<path
style="fill:#ffff00;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 112.16649,167.58891 19.40571,-5.42581 3.8172,-38.08125 -1.21617,-16.77896 -18.29729,-81.583479 3.05393,-3.60128 -3.02006,-7.861656 1.24025,-2.963518 -21.590241,-1.157294 -2.101305,2.710065 3.168928,2.743431 -2.098355,6.959667 0.535271,3.069093 0.905301,1.576676 -16.825399,70.632854 -2.626249,30.258161 0.193246,12.57596 1.723504,6.70677 0.717333,8.06947 -0.112146,4.88403 2.187482,2.84606 10.755916,3.30918 z"
id="path2045"
sodipodi:nodetypes="ccccccccccccccccccccccc" />
</clipPath>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.49245777"
inkscape:cx="215.59761"
inkscape:cy="310.47106"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:window-width="1368"
inkscape:window-height="836"
inkscape:window-x="72"
inkscape:window-y="27"
inkscape:window-maximized="1" />
<metadata
id="metadata1206">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<image
width="291.04166"
height="194.20416"
preserveAspectRatio="none"
xlink:href="data:image/jpeg;base64,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
tFloteiiudcq52Wf/9k=
"
id="image2037"
x="-88.477295"
y="-14.956613"
clip-path="url(#clipPath2043)"
transform="matrix(0.61776691,0,0,0.61776691,-14.3032,-1.664488)" />
</g>
</svg>

BIN
templates/assets/img/sample-fish.jpg View File

Before After
Width: 4896  |  Height: 3264  |  Size: 2.5 MiB

+ 0
- 57275
templates/assets/img/sample-flower-closeup.svg
File diff suppressed because it is too large
View File


+ 0
- 16755
templates/assets/img/sample-flower.svg
File diff suppressed because it is too large
View File


BIN
templates/assets/img/sample-girl.jpg View File

Before After
Width: 1939  |  Height: 2908  |  Size: 1.0 MiB

BIN
templates/assets/img/sample-greenhouse.jpg View File

Before After
Width: 5904  |  Height: 3941  |  Size: 5.0 MiB

+ 0
- 68981
templates/assets/img/sample-greentech.svg
File diff suppressed because it is too large
View File


BIN
templates/assets/img/sample-herbs.jpg View File

Before After
Width: 3259  |  Height: 4889  |  Size: 1.0 MiB

BIN
templates/assets/img/sample-jelly.jpg View File

Before After
Width: 6000  |  Height: 4000  |  Size: 1.9 MiB

BIN
templates/assets/img/sample-lab.jpg View File

Before After
Width: 5616  |  Height: 3744  |  Size: 1.2 MiB

BIN
templates/assets/img/sample-led.jpg View File

Before After
Width: 6016  |  Height: 4000  |  Size: 1.9 MiB

BIN
templates/assets/img/sample-lemon.png View File

Before After
Width: 1600  |  Height: 1600  |  Size: 651 KiB

BIN
templates/assets/img/sample-lemontree.jpg View File

Before After
Width: 6000  |  Height: 4000  |  Size: 4.1 MiB

BIN
templates/assets/img/sample-light.jpg View File

Before After
Width: 2921  |  Height: 2921  |  Size: 618 KiB

BIN
templates/assets/img/sample-magnifier.png View File

Before After
Width: 400  |  Height: 254  |  Size: 51 KiB

BIN
templates/assets/img/sample-massage.jpg View File

Before After
Width: 6000  |  Height: 4000  |  Size: 4.0 MiB

BIN
templates/assets/img/sample-mate.jpg View File

Before After
Width: 4000  |  Height: 3000  |  Size: 1.1 MiB

BIN
templates/assets/img/sample-migraines-art.jpg View File

Before After
Width: 4928  |  Height: 3264  |  Size: 5.1 MiB

BIN
templates/assets/img/sample-mini-greenhouse.jpg View File

Before After
Width: 6000  |  Height: 4000  |  Size: 1.9 MiB

BIN
templates/assets/img/sample-module.jpg View File

Before After
Width: 6000  |  Height: 4000  |  Size: 3.1 MiB

BIN
templates/assets/img/sample-net.jpg View File

Before After
Width: 6000  |  Height: 4000  |  Size: 2.0 MiB

BIN
templates/assets/img/sample-oils-background.jpg View File

Before After
Width: 6000  |  Height: 4000  |  Size: 1.2 MiB

BIN
templates/assets/img/sample-partners.jpg View File

Before After
Width: 960  |  Height: 1280  |  Size: 159 KiB

+ 0
- 146
templates/assets/img/sample-perma.svg
File diff suppressed because it is too large
View File


BIN
templates/assets/img/sample-plant-flower.jpg View File

Before After
Width: 3872  |  Height: 2581  |  Size: 1.1 MiB

BIN
templates/assets/img/sample-plant.jpg View File

Before After
Width: 3840  |  Height: 2560  |  Size: 907 KiB

BIN
templates/assets/img/sample-plants.jpg View File

Before After
Width: 3648  |  Height: 5472  |  Size: 4.2 MiB

BIN
templates/assets/img/sample-post.jpg View File

Before After
Width: 3602  |  Height: 4549  |  Size: 1.9 MiB

+ 0
- 75990
templates/assets/img/sample-product-candy.svg
File diff suppressed because it is too large
View File


+ 0
- 76086
templates/assets/img/sample-product.svg
File diff suppressed because it is too large
View File


BIN
templates/assets/img/sample-project.jpg View File

Before After
Width: 6000  |  Height: 4000  |  Size: 5.9 MiB

+ 0
- 60385
templates/assets/img/sample-spiderpi-helper.svg
File diff suppressed because it is too large
View File


BIN
templates/assets/img/sample-spiderwoman.png View File

Before After
Width: 767  |  Height: 512  |  Size: 506 KiB

BIN
templates/assets/img/sample-tom.jpg View File

Before After
Width: 4510  |  Height: 3007  |  Size: 828 KiB

BIN
templates/assets/img/sample-video.mp4 View File


BIN
templates/assets/img/sample-virtual.jpg View File

Before After
Width: 4889  |  Height: 3252  |  Size: 1.1 MiB

BIN
templates/assets/img/sample-waterflow.jpg View File

Before After
Width: 5010  |  Height: 3340  |  Size: 1.3 MiB

BIN
templates/assets/img/sample-wild.jpg View File

Before After
Width: 5184  |  Height: 3456  |  Size: 1.2 MiB

+ 0
- 530
templates/assets/js/PLYLoader.js View File

@ -1,530 +0,0 @@
import {
BufferGeometry,
FileLoader,
Float32BufferAttribute,
Loader,
LoaderUtils
} from '../../../build/three.module.js';
/**
* Description: A THREE loader for PLY ASCII files (known as the Polygon
* File Format or the Stanford Triangle Format).
*
* Limitations: ASCII decoding assumes file is UTF-8.
*
* Usage:
* const loader = new PLYLoader();
* loader.load('./models/ply/ascii/dolphins.ply', function (geometry) {
*
* scene.add( new THREE.Mesh( geometry ) );
*
* } );
*
* If the PLY file uses non standard property names, they can be mapped while
* loading. For example, the following maps the properties
* diffuse_(red|green|blue) in the file to standard color names.
*
* loader.setPropertyNameMapping( {
* diffuse_red: 'red',
* diffuse_green: 'green',
* diffuse_blue: 'blue'
* } );
*
*/
class PLYLoader extends Loader {
constructor( manager ) {
super( manager );
this.propertyNameMapping = {};
}
load( url, onLoad, onProgress, onError ) {
const scope = this;
const loader = new FileLoader( this.manager );
loader.setPath( this.path );
loader.setResponseType( 'arraybuffer' );
loader.setRequestHeader( this.requestHeader );
loader.setWithCredentials( this.withCredentials );
loader.load( url, function ( text ) {
try {
onLoad( scope.parse( text ) );
} catch ( e ) {
if ( onError ) {
onError( e );
} else {
console.error( e );
}
scope.manager.itemError( url );
}
}, onProgress, onError );
}
setPropertyNameMapping( mapping ) {
this.propertyNameMapping = mapping;
}
parse( data ) {
function parseHeader( data ) {
const patternHeader = /ply([\s\S]*)end_header\r?\n/;
let headerText = '';
let headerLength = 0;
const result = patternHeader.exec( data );
if ( result !== null ) {
headerText = result[ 1 ];
headerLength = new Blob( [ result[ 0 ] ] ).size;
}
const header = {
comments: [],
elements: [],
headerLength: headerLength,
objInfo: ''
};
const lines = headerText.split( '\n' );
let currentElement;
function make_ply_element_property( propertValues, propertyNameMapping ) {
const property = { type: propertValues[ 0 ] };
if ( property.type === 'list' ) {
property.name = propertValues[ 3 ];
property.countType = propertValues[ 1 ];
property.itemType = propertValues[ 2 ];
} else {
property.name = propertValues[ 1 ];
}
if ( property.name in propertyNameMapping ) {
property.name = propertyNameMapping[ property.name ];
}
return property;
}
for ( let i = 0; i < lines.length; i ++ ) {
let line = lines[ i ];
line = line.trim();
if ( line === '' ) continue;
const lineValues = line.split( /\s+/ );
const lineType = lineValues.shift();
line = lineValues.join( ' ' );
switch ( lineType ) {
case 'format':
header.format = lineValues[ 0 ];
header.version = lineValues[ 1 ];
break;
case 'comment':
header.comments.push( line );
break;
case 'element':
if ( currentElement !== undefined ) {
header.elements.push( currentElement );
}
currentElement = {};
currentElement.name = lineValues[ 0 ];
currentElement.count = parseInt( lineValues[ 1 ] );
currentElement.properties = [];
break;
case 'property':
currentElement.properties.push( make_ply_element_property( lineValues, scope.propertyNameMapping ) );
break;
case 'obj_info':
header.objInfo = line;
break;
default:
console.log( 'unhandled', lineType, lineValues );
}
}
if ( currentElement !== undefined ) {
header.elements.push( currentElement );
}
return header;
}
function parseASCIINumber( n, type ) {
switch ( type ) {
case 'char': case 'uchar': case 'short': case 'ushort': case 'int': case 'uint':
case 'int8': case 'uint8': case 'int16': case 'uint16': case 'int32': case 'uint32':
return parseInt( n );
case 'float': case 'double': case 'float32': case 'float64':
return parseFloat( n );
}
}
function parseASCIIElement( properties, line ) {
const values = line.split( /\s+/ );
const element = {};
for ( let i = 0; i < properties.length; i ++ ) {
if ( properties[ i ].type === 'list' ) {
const list = [];
const n = parseASCIINumber( values.shift(), properties[ i ].countType );
for ( let j = 0; j < n; j ++ ) {
list.push( parseASCIINumber( values.shift(), properties[ i ].itemType ) );
}
element[ properties[ i ].name ] = list;
} else {
element[ properties[ i ].name ] = parseASCIINumber( values.shift(), properties[ i ].type );
}
}
return element;
}
function parseASCII( data, header ) {
// PLY ascii format specification, as per http://en.wikipedia.org/wiki/PLY_(file_format)
const buffer = {
indices: [],
vertices: [],
normals: [],
uvs: [],
faceVertexUvs: [],
colors: []
};
let result;
const patternBody = /end_header\s([\s\S]*)$/;
let body = '';
if ( ( result = patternBody.exec( data ) ) !== null ) {
body = result[ 1 ];
}
const lines = body.split( '\n' );
let currentElement = 0;
let currentElementCount = 0;
for ( let i = 0; i < lines.length; i ++ ) {
let line = lines[ i ];
line = line.trim();
if ( line === '' ) {
continue;
}
if ( currentElementCount >= header.elements[ currentElement ].count ) {
currentElement ++;
currentElementCount = 0;
}
const element = parseASCIIElement( header.elements[ currentElement ].properties, line );
handleElement( buffer, header.elements[ currentElement ].name, element );
currentElementCount ++;
}
return postProcess( buffer );
}
function postProcess( buffer ) {
let geometry = new BufferGeometry();
// mandatory buffer data
if ( buffer.indices.length > 0 ) {
geometry.setIndex( buffer.indices );
}
geometry.setAttribute( 'position', new Float32BufferAttribute( buffer.vertices, 3 ) );
// optional buffer data
if ( buffer.normals.length > 0 ) {
geometry.setAttribute( 'normal', new Float32BufferAttribute( buffer.normals, 3 ) );
}
if ( buffer.uvs.length > 0 ) {
geometry.setAttribute( 'uv', new Float32BufferAttribute( buffer.uvs, 2 ) );
}
if ( buffer.colors.length > 0 ) {
geometry.setAttribute( 'color', new Float32BufferAttribute( buffer.colors, 3 ) );
}
if ( buffer.faceVertexUvs.length > 0 ) {
geometry = geometry.toNonIndexed();
geometry.setAttribute( 'uv', new Float32BufferAttribute( buffer.faceVertexUvs, 2 ) );
}
geometry.computeBoundingSphere();
return geometry;
}
function handleElement( buffer, elementName, element ) {
if ( elementName === 'vertex' ) {
buffer.vertices.push( element.x, element.y, element.z );
if ( 'nx' in element && 'ny' in element && 'nz' in element ) {
buffer.normals.push( element.nx, element.ny, element.nz );
}
if ( 's' in element && 't' in element ) {
buffer.uvs.push( element.s, element.t );
}
if ( 'red' in element && 'green' in element && 'blue' in element ) {
buffer.colors.push( element.red / 255.0, element.green / 255.0, element.blue / 255.0 );
}
} else if ( elementName === 'face' ) {
const vertex_indices = element.vertex_indices || element.vertex_index; // issue #9338
const texcoord = element.texcoord;
if ( vertex_indices.length === 3 ) {
buffer.indices.push( vertex_indices[ 0 ], vertex_indices[ 1 ], vertex_indices[ 2 ] );
if ( texcoord && texcoord.length === 6 ) {
buffer.faceVertexUvs.push( texcoord[ 0 ], texcoord[ 1 ] );
buffer.faceVertexUvs.push( texcoord[ 2 ], texcoord[ 3 ] );
buffer.faceVertexUvs.push( texcoord[ 4 ], texcoord[ 5 ] );
}
} else if ( vertex_indices.length === 4 ) {
buffer.indices.push( vertex_indices[ 0 ], vertex_indices[ 1 ], vertex_indices[ 3 ] );
buffer.indices.push( vertex_indices[ 1 ], vertex_indices[ 2 ], vertex_indices[ 3 ] );
}
}
}
function binaryRead( dataview, at, type, little_endian ) {
switch ( type ) {
// corespondences for non-specific length types here match rply:
case 'int8': case 'char': return [ dataview.getInt8( at ), 1 ];
case 'uint8': case 'uchar': return [ dataview.getUint8( at ), 1 ];
case 'int16': case 'short': return [ dataview.getInt16( at, little_endian ), 2 ];
case 'uint16': case 'ushort': return [ dataview.getUint16( at, little_endian ), 2 ];
case 'int32': case 'int': return [ dataview.getInt32( at, little_endian ), 4 ];
case 'uint32': case 'uint': return [ dataview.getUint32( at, little_endian ), 4 ];
case 'float32': case 'float': return [ dataview.getFloat32( at, little_endian ), 4 ];
case 'float64': case 'double': return [ dataview.getFloat64( at, little_endian ), 8 ];
}
}
function binaryReadElement( dataview, at, properties, little_endian ) {
const element = {};
let result, read = 0;
for ( let i = 0; i < properties.length; i ++ ) {
if ( properties[ i ].type === 'list' ) {
const list = [];
result = binaryRead( dataview, at + read, properties[ i ].countType, little_endian );
const n = result[ 0 ];
read += result[ 1 ];
for ( let j = 0; j < n; j ++ ) {
result = binaryRead( dataview, at + read, properties[ i ].itemType, little_endian );
list.push( result[ 0 ] );
read += result[ 1 ];
}
element[ properties[ i ].name ] = list;
} else {
result = binaryRead( dataview, at + read, properties[ i ].type, little_endian );
element[ properties[ i ].name ] = result[ 0 ];
read += result[ 1 ];
}
}
return [ element, read ];
}
function parseBinary( data, header ) {
const buffer = {
indices: [],
vertices: [],
normals: [],
uvs: [],
faceVertexUvs: [],
colors: []
};
const little_endian = ( header.format === 'binary_little_endian' );
const body = new DataView( data, header.headerLength );
let result, loc = 0;
for ( let currentElement = 0; currentElement < header.elements.length; currentElement ++ ) {
for ( let currentElementCount = 0; currentElementCount < header.elements[ currentElement ].count; currentElementCount ++ ) {
result = binaryReadElement( body, loc, header.elements[ currentElement ].properties, little_endian );
loc += result[ 1 ];
const element = result[ 0 ];
handleElement( buffer, header.elements[ currentElement ].name, element );
}
}
return postProcess( buffer );
}
//
let geometry;
const scope = this;
if ( data instanceof ArrayBuffer ) {
const text = LoaderUtils.decodeText( new Uint8Array( data ) );
const header = parseHeader( text );
geometry = header.format === 'ascii' ? parseASCII( text, header ) : parseBinary( data, header );
} else {
geometry = parseASCII( data, parseHeader( data ) );
}
return geometry;
}
}
export { PLYLoader };

+ 0
- 0
templates/assets/js/contact.js View File


+ 0
- 20
templates/assets/js/pages.js View File

@ -1,20 +0,0 @@
$(document).ready(function(){
// Add smooth scrolling to all links with #
$("a").on('click', function(event) {
if (this.hash !== "") {
// Prevent default anchor click behavior
event.preventDefault();
// Store hash
var hash = this.hash;
$('html, body').animate({
scrollTop: $(hash).offset().top
}, 1000, function(){
// Add hash (#) to URL when done scrolling (default click behavior)
window.location.hash = hash;
});
} // End if
});
});

+ 0
- 80
templates/assets/js/slider.js View File

@ -1,80 +0,0 @@
let slides=document.querySelector('.slider-items').children;
let nextSlide=document.querySelector('.right-slide');
let prevSlide=document.querySelector('.left-slide');
let totalSlides=slides.length;
let index=0;
console.log(index);
nextSlide.onclick = () => {
next("next");
}
prevSlide.onclick = () => {
next("prev");
}
let next = (direction)=> {
if (direction=="next"){
index++;
if (index==totalSlides){
index=0;
}
}
else{
if(index==0){
index=totalSlides-1;
}
else {
index--;
}
}
for (i=0; i<slides.length;i++){
slides[i].classList.remove("active");
}
slides[index].classList.add("active");
}
const spider=document.querySelector('.spider-items').children;
const spiderNext=document.querySelector('#spider-right');
const spiderPrev=document.querySelector('#spider-left');
let spiderTotal=spider.length;
console.log(spider);
console.log(spiderNext);
console.log(spiderPrev);
console.log(spiderTotal);
spiderNext.onclick = () => {
nextSpider("next");
}
spiderPrev.onclick = () => {
nextSpider("prev");
}
let nextSpider = (direction)=> {
if (direction=="next"){
index++;
if (index==spiderTotal){
index=0;
}
}
else{
if(index==0){
index=spiderTotal-1;
}
else {
index--;
}
}
for (i=0; i<spider.length;i++){
spider[i].classList.remove("active");
}
spider[index].classList.add("active");
}

Loading…
Cancel
Save