updated for current version of HeroForge

This commit is contained in:
Christoph Stahl 2018-06-15 23:46:21 +02:00
parent 13758ea23a
commit 35116eac44
3 changed files with 31 additions and 12 deletions

View File

@ -11,6 +11,7 @@ Usage
3. Paste the following 3. Paste the following
``` ```
$("<script>").load("https://raw.githubusercontent.com/mrdoob/three.js/dev/build/three.min.js").appendTo($("body"))
$("<script>").load("https://raw.githubusercontent.com/christofsteel/herosaver/master/herosaver.min.js").appendTo($("body")) $("<script>").load("https://raw.githubusercontent.com/christofsteel/herosaver/master/herosaver.min.js").appendTo($("body"))
``` ```

View File

@ -15,9 +15,9 @@
if(typeof THREE == 'undefined' && typeof require != 'undefined') if(typeof THREE == 'undefined' && typeof require != 'undefined')
var THREE = require('three') var THREE = require('three')
THREE.STLExporter = function () {}; RK.STLExporter = function () {};
THREE.STLExporter.prototype = { RK.STLExporter.prototype = {
constructor: THREE.STLExporter, constructor: THREE.STLExporter,
@ -30,7 +30,7 @@ THREE.STLExporter.prototype = {
var output = ''; var output = '';
output += 'solid exported\n'; output += 'solid exported\n';
scene.traverse( function ( object ) { scene.traverse( function ( object ) {
if(object instanceof THREE.Mesh){ if(object instanceof RK.Mesh){
// if object is hidden - exit // if object is hidden - exit
if(object.visible == false) return; if(object.visible == false) return;
@ -40,9 +40,9 @@ THREE.STLExporter.prototype = {
var skeleton = object.skeleton; var skeleton = object.skeleton;
var mesh = object; var mesh = object;
if(geometry instanceof THREE.BufferGeometry){ if(geometry instanceof RK.BufferGeometry){
var oldgeometry = geometry.clone(); var oldgeometry = geometry.clone();
geometry = new THREE.Geometry().fromBufferGeometry(geometry); geometry = new RK.Geometry().fromBufferGeometry(geometry);
var skinIndex = oldgeometry.getAttribute('skinIndex'); var skinIndex = oldgeometry.getAttribute('skinIndex');
var skinWeight = oldgeometry.getAttribute('skinWeight'); var skinWeight = oldgeometry.getAttribute('skinWeight');
var morphTarget = oldgeometry.getAttribute('morphTarget0'); var morphTarget = oldgeometry.getAttribute('morphTarget0');
@ -60,16 +60,16 @@ THREE.STLExporter.prototype = {
geometry.morphTargets[j].vertices = []; geometry.morphTargets[j].vertices = [];
} }
for(var i = 0; i < geometry.vertices.length; i++) { for(var i = 0; i < geometry.vertices.length; i++) {
geometry.skinIndices.push((new THREE.Vector4 ()).fromAttribute(skinIndex,i)); geometry.skinIndices.push((new THREE.Vector4 ()).fromBufferAttribute(skinIndex,i));
geometry.skinWeights.push((new THREE.Vector4 ()).fromAttribute(skinWeight,i)); geometry.skinWeights.push((new THREE.Vector4 ()).fromBufferAttribute(skinWeight,i));
for(var j = 0; j < mtcount; j++) { for(var j = 0; j < mtcount; j++) {
geometry.morphTargets[j].vertices.push((new THREE.Vector3 ()).fromAttribute(oldgeometry.getAttribute('morphTarget' + j))); geometry.morphTargets[j].vertices.push((new THREE.Vector3 ()).fromBufferAttribute(oldgeometry.getAttribute('morphTarget' + j)));
} }
} }
} }
} }
if ( geometry instanceof THREE.Geometry) { if ( geometry instanceof RK.Geometry) {
var vertices = geometry.vertices; var vertices = geometry.vertices;
var faces = geometry.faces; var faces = geometry.faces;
@ -185,7 +185,7 @@ THREE.STLExporter.prototype = {
}; };
if (typeof module !== "undefined" && module.exports) { if (typeof module !== "undefined" && module.exports) {
module.exports = THREE.STLExporter module.exports = RK.STLExporter
} }
else if ((typeof define !== "undefined" && define !== null) && (define.amd !== null)) { else if ((typeof define !== "undefined" && define !== null) && (define.amd !== null)) {
define([], function() { define([], function() {
@ -205,7 +205,7 @@ var labelljson = $("<label/>").attr({"for": "ljson"}).addClass("shop-button").c
stl.click(function(e) { stl.click(function(e) {
e.preventDefault(); e.preventDefault();
var exporter = new THREE.STLExporter(); var exporter = new RK.STLExporter();
var objs = CK.activeCharacter.threeObj.children; var objs = CK.activeCharacter.threeObj.children;
var max_obj = 0; var max_obj = 0;
var i; var i;
@ -245,3 +245,4 @@ $("#print-my-mini").append(stl);
$("#print-my-mini").append(sjson); $("#print-my-mini").append(sjson);
$("#print-my-mini").append(ljson); $("#print-my-mini").append(ljson);
$("#print-my-mini").append(labelljson); $("#print-my-mini").append(labelljson);

19
herosaver.min.js vendored

File diff suppressed because one or more lines are too long