{"version":3,"sources":["webpack:///./src/js/visualization/classes/materialObject.js","webpack:///./src/js/visualization/enums/renderType.js","webpack:///./src/js/visualization/objects/compoundObjects/compass.js","webpack:///./src/js/visualization/classes/stage.js","webpack:///./src/js/visualization/classes/visualization.js","webpack:///./src/js/visualization/objects/line.js","webpack:///./src/js/visualization/objects/compoundObjects/scaleLines.js","webpack:///./src/js/visualization/objects/ball.js","webpack:///./src/js/visualization/objects/piramide.js","webpack:///./src/js/visualization/entrypoints/Scurve.js","webpack:///./src/js/visualization/objects/gridPlane.js","webpack:///./src/js/visualization/enums/cameraType.js","webpack:///./src/js/visualization/enums/pointerType.js","webpack:///./src/js/visualization/enums/cameraPreset.js","webpack:///./src/js/visualization/objects/compoundObjects/scurve.js"],"names":["MaterialObject","this","obj","rotate90","Math","PI","x","y","z","Error","position","rotation","Compass","length","color","rx","ry","rz","dir","Vector3","normalize","origin","ArrowHelper","setPosition","setRotation","CAMERA_TYPE","CameraType","FREE_RANGE","CAMERA_POSITION","CAMERA_ROTATION","CAMERA_FOCALPOINT","Stage","elm","_settings","settings","stage","cameraType","cameraPosition","cameraRotation","cameraFocalPoint","cameraPreset","controls","scene","Scene","canvas","setCanvas","context","setContext","renderType","renderer","setRenderer","camera","setCamera","appendChild","domElement","init","debug","debugOptions","showAxes","setupAxes","showGrid","setupGridPlane","setupCompass","document","createElement","style","type","RenderType","getContext","WebGLRenderer","SVGRenderer","setSize","clientWidth","clientHeight","setClearColor","ORBIT","PerspectiveCamera","OrbitControls","target","axesHelper","AxesHelper","add","grid","GridPlane","compass","DEFAULTS","isAnimated","CameraPreset","FRONT","Visualization","merge","isReadyForManipulation","canvasContainerElement","getElementById","isFirstRender","debugElement","id","append","performExport","startAnimation","render","update","renderLoop","renderLoopId","requestAnimationFrame","INTERNAL_onFrameExecution","onFrameExecution","image","Image","src","toDataURL","cancelAnimationFrame","renderInterval","setInterval","setAttribute","clearInterval","Line","radius","geometry","CylinderGeometry","material","MeshBasicMaterial","Mesh","ScaleLines","lineSize","lineHeight","lineColor","Group","line","line2","line3","line4","line5","line6","line7","line8","line9","line10","line11","Ball","SphereGeometry","Piramide","height","ConeGeometry","data","SCurve","yDirectionIsUp","scurve","MySCurve","scaleLines","drawYAxisHelper","drawXAxisHelper","pointers","Map","ready","pointer","addPointer","percentile","getPointForX","set","name","getPointForY","remove","PointerType","INTERNAL","getXForY","point","EXTERNAL","getYForX","geometry3","Geometry","vertices","push","material3","LineBasicMaterial","geometry4","material4","size","divisions","colorCenterLine","colorGrid","GridHelper","CUBE_FRONT","CUBE_ANGLE","CUBE_TOP","SCURVE_FRONT","SCALE_FRONT","NUMERICALVALUE_FRONT","points","getSigmoidPathData","pathPoints","SplineCurve","getPoints","BufferGeometry","setFromPoints","splineObject","scaleData","x1","x2","y1","y2","PathData","sigmoidX","sigmoidY","pow","exp","vector","Vector2","index","reduce","r","a","i","aa","abs"],"mappings":"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","file":"3.js","sourcesContent":["export default class MaterialObject {\r\n constructor() {\r\n this.obj = null;\r\n\r\n this.rotate90 = () => { return Math.PI / 2; };\r\n }\r\n\r\n setPosition(x=null, y=null, z=null) {\r\n if(this.obj === null) {\r\n throw Error('Object not set');\r\n }\r\n if(x !== null) {\r\n this.obj.position.x = x;\r\n }\r\n if(y !== null) {\r\n this.obj.position.y = y;\r\n }\r\n if(z !== null) {\r\n this.obj.position.z = z;\r\n }\r\n }\r\n\r\n setRotation(x=null, y=null, z=null) {\r\n if(this.obj === null) {\r\n throw Error('Object not set');\r\n }\r\n\r\n if(x !== null) {\r\n this.obj.rotation.x = x;\r\n }\r\n if(y !== null) {\r\n this.obj.rotation.y = y;\r\n }\r\n if(z !== null) {\r\n this.obj.rotation.z = z;\r\n }\r\n }\r\n}","export default {\r\n TWO_D: '2d',\r\n WEBGL: 'webgl',\r\n WEBGL2: 'webgl2',\r\n SVG: 'svg'\r\n};","import { Vector3, ArrowHelper } from 'three';\r\nimport MaterialObject from '../../classes/materialObject.js'\r\n\r\nexport default class Compass extends MaterialObject {\r\n constructor(length, color, {x = null, y = null, z = null}={x:null, y:null, z:null},{rx = null, ry = null, rz = null}={rx:null, ry:null, rz:null}) {\r\n super();\r\n\r\n var dir = new Vector3(0, 0, 0);\r\n dir.normalize();\r\n\r\n var origin = new Vector3(0, 0, 0);\r\n\r\n this.obj = new ArrowHelper(dir, origin, length, color);\r\n\r\n this.setPosition(x, y, z);\r\n this.setRotation(rx, ry, rz);\r\n\r\n return this.obj;\r\n }\r\n}","import { Scene, PerspectiveCamera, WebGLRenderer, AxesHelper } from 'three';\r\nimport GridPlane from '../objects/gridPlane.js';\r\nimport CameraType from '../enums/cameraType.js';\r\nimport RenderType from '../enums/renderType.js';\r\nimport Compass from '../objects/compoundObjects/compass.js';\r\n\r\nimport { OrbitControls } from 'three/examples/jsm/controls/OrbitControls';\r\nimport { SVGRenderer } from 'three/examples/jsm/renderers/SVGRenderer';\r\n\r\n\r\nlet CAMERA_TYPE = CameraType.FREE_RANGE;\r\nlet CAMERA_POSITION = {x: 0, y: 0, z: 0};\r\nlet CAMERA_ROTATION = {x: 0, y: 0, z: 0};\r\nlet CAMERA_FOCALPOINT = {x: 0, y: 0, z: 0};\r\n\r\nexport default class Stage {\r\n constructor(elm, _settings={}) {\r\n this.settings = _settings;\r\n\r\n CAMERA_TYPE = _settings.stage.cameraType || CAMERA_TYPE;\r\n CAMERA_POSITION = _settings.stage.cameraPosition || CAMERA_POSITION;\r\n CAMERA_ROTATION = _settings.stage.cameraRotation || CAMERA_ROTATION;\r\n CAMERA_FOCALPOINT = _settings.stage.cameraFocalPoint || CAMERA_FOCALPOINT;\r\n\r\n if(_settings.stage.cameraPreset !== null && typeof _settings.stage.cameraPreset !== \"undefined\") {\r\n CAMERA_TYPE = _settings.stage.cameraPreset.cameraType || CAMERA_TYPE;\r\n CAMERA_POSITION = _settings.stage.cameraPreset.cameraPosition || CAMERA_POSITION;\r\n CAMERA_ROTATION = _settings.stage.cameraPreset.cameraRotation || CAMERA_ROTATION;\r\n CAMERA_FOCALPOINT = _settings.stage.cameraPreset.cameraFocalPoint || CAMERA_FOCALPOINT;\r\n }\r\n\r\n this.elm = elm;\r\n this.controls = null;\r\n\r\n this.scene = new Scene();\r\n\r\n this.canvas = this.setCanvas();\r\n this.context = this.setContext(this.canvas, _settings.renderType);\r\n this.renderer = this.setRenderer(this.elm, this.canvas , this.context, _settings.renderType);\r\n this.camera = this.setCamera(this.renderer);\r\n \r\n this.elm .appendChild(this.renderer.domElement);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n if(this.settings.debug) {\r\n\r\n if(this.settings.debugOptions.showAxes) {\r\n this.setupAxes();\r\n }\r\n\r\n if(this.settings.debugOptions.showGrid) {\r\n this.setupGridPlane();\r\n }\r\n \r\n this.setupCompass();\r\n }\r\n }\r\n\r\n setCanvas() {\r\n const canvas = document.createElement( 'canvas' );\r\n canvas.style = 'background: #ffffff;';\r\n return canvas;\r\n }\r\n\r\n setContext(canvas, type) {\r\n if(type !== RenderType.WEBGL2) {\r\n return null;\r\n }\r\n\r\n return canvas.getContext( 'webgl2' );\r\n }\r\n\r\n setRenderer(elm, canvas, context, type) {\r\n let renderer = null;\r\n\r\n switch(type) {\r\n case RenderType.WEBGL:\r\n renderer = new WebGLRenderer({ canvas: canvas });\r\n break;\r\n case RenderType.WEBGL2:\r\n renderer = new WebGLRenderer({ canvas: canvas, context: context });\r\n break;\r\n case RenderType.SVG:\r\n renderer = new SVGRenderer();\r\n break;\r\n }\r\n \r\n renderer.setSize(elm.clientWidth, elm.clientHeight);\r\n renderer.setClearColor( 0xffffff, 1 );\r\n \r\n return renderer;\r\n }\r\n\r\n setCamera(renderer=null) {\r\n if(renderer === null) {\r\n throw Error(\"Renderer must be set first\");\r\n }\r\n\r\n var camera = null;\r\n\r\n switch(CAMERA_TYPE) {\r\n case CameraType.ORBIT:\r\n camera = new PerspectiveCamera(45, this.elm .clientWidth/this.elm .clientHeight, 0.1, 1000);\r\n \r\n this.controls = new OrbitControls(camera, renderer.domElement);\r\n this.controls.target.x = CAMERA_FOCALPOINT.x;\r\n this.controls.target.y = CAMERA_FOCALPOINT.y;\r\n this.controls.target.z = CAMERA_FOCALPOINT.z;\r\n\r\n camera.position.x = CAMERA_POSITION.x;\r\n camera.position.y = CAMERA_POSITION.y;\r\n camera.position.z = CAMERA_POSITION.z;\r\n\r\n camera.rotation.x = CAMERA_ROTATION.x;\r\n camera.rotation.y = CAMERA_ROTATION.y;\r\n camera.rotation.z = CAMERA_ROTATION.z;\r\n //this.controls.update() must be called after any manual changes to the camera's transform\r\n break;\r\n case CameraType.FREE_RANGE:\r\n default:\r\n camera = new PerspectiveCamera( 45, this.elm .clientWidth/this.elm .clientHeight, 0.1, 1000 );\r\n\r\n camera.position.x = CAMERA_POSITION.x;\r\n camera.position.y = CAMERA_POSITION.y;\r\n camera.position.z = CAMERA_POSITION.z;\r\n\r\n camera.rotation.x = CAMERA_ROTATION.x;\r\n camera.rotation.y = CAMERA_ROTATION.y;\r\n camera.rotation.z = CAMERA_ROTATION.z;\r\n break;\r\n }\r\n\r\n return camera\r\n }\r\n\r\n setCameraView() {\r\n this.camera\r\n }\r\n\r\n setupAxes() {\r\n let axesHelper = new AxesHelper( 200 );\r\n this.scene.add(axesHelper);\r\n }\r\n\r\n setupGridPlane() {\r\n var grid = new GridPlane(300, 30);\r\n this.scene.add( grid );\r\n }\r\n\r\n setupCompass() {\r\n var compass = new Compass(100, 0xff0000, {x: 0, y: 1, z: 0}, {rx: Math.PI / 2, ry: 0, rz: Math.PI});\r\n this.scene.add( compass );\r\n }\r\n}","import merge from 'webpack-merge';\r\n\r\nimport Stage from '../classes/stage.js';\r\nimport CameraPreset from '../enums/cameraPreset.js';\r\nimport RenderType from '../enums/renderType.js';\r\n\r\n\r\nconst DEFAULTS = {\r\n debug: false,\r\n debugOptions: {\r\n showAxes: true,\r\n showGrid: true\r\n },\r\n renderType: RenderType.WEBGL2,\r\n isAnimated: true,\r\n stage: {\r\n cameraPreset: CameraPreset.FRONT\r\n }\r\n};\r\n\r\nexport default class Visualization {\r\n constructor(_settings={}) {\r\n this.settings = merge(DEFAULTS, _settings);\r\n\r\n this.isReadyForManipulation = false;\r\n this.canvasContainerElement = document.getElementById('canvasContainer');\r\n\r\n this.isFirstRender = true;\r\n\r\n this.stage = new Stage(this.canvasContainerElement, this.settings);\r\n\r\n if(this.settings.debug) {\r\n this.debugElement = document.createElement('div');\r\n this.debugElement.id = 'canvasDebug';\r\n\r\n this.canvasContainerElement.append(this.debugElement);\r\n }\r\n\r\n this.performExport = false;\r\n this.isAnimated = this.settings.isAnimated || false;\r\n\r\n if(this.isAnimated) {\r\n this.startAnimation();\r\n } else {\r\n this.render();\r\n }\r\n }\r\n\r\n exportImage() {\r\n this.performExport = true;\r\n }\r\n\r\n //call this function when the visualization is ready to animate\r\n ready() {\r\n this.isReadyForManipulation = true;\r\n }\r\n\r\n onFrameExecution() {\r\n //Implement this function in the lower level class using a Visualization;\r\n }\r\n\r\n INTERNAL_onFrameExecution() {\r\n if(this.stage.controls !== null) {\r\n this.stage.controls.update();\r\n }\r\n }\r\n\r\n startAnimation() {\r\n var renderLoop = () => {\r\n this.renderLoopId = requestAnimationFrame( renderLoop );\r\n \r\n if(this.isReadyForManipulation) {\r\n this.INTERNAL_onFrameExecution();\r\n this.onFrameExecution();\r\n }\r\n \r\n this.render();\r\n\r\n if(this.performExport) {\r\n //TODO: obviously this is not the correct place or code:\r\n var image = new Image();\r\n image.id = \"pic\"\r\n image.src = this.stage.renderer.domElement.toDataURL();\r\n document.getElementById('canvasContainer').appendChild(image);\r\n \r\n this.performExport = false;\r\n }\r\n };\r\n\r\n renderLoop();\r\n }\r\n\r\n stopAnimation() {\r\n cancelAnimationFrame(this.renderLoopId);\r\n }\r\n\r\n render() {\r\n this.renderInterval = setInterval(() => {\r\n if(this.isReadyForManipulation) {\r\n this.stage.renderer.render( this.stage.scene, this.stage.camera );\r\n\r\n if(this.isFirstRender) {\r\n this.canvasContainerElement.setAttribute('data-isready', 'true');\r\n this.isFirstRender = false;\r\n }\r\n\r\n clearInterval(this.renderInterval);\r\n }\r\n }, 2000);\r\n }\r\n}","import { CylinderGeometry, MeshBasicMaterial, Mesh } from 'three';\r\nimport MaterialObject from '../classes/materialObject.js'\r\n\r\nexport default class Line extends MaterialObject {\r\n\r\n constructor(radius, length, color, {x = null, y = null, z = null}={x: null, y: null, z: null}, {rx = null, ry = null, rz = null}={rx: null, ry: null, rz: null}) {\r\n super();\r\n \r\n var geometry = new CylinderGeometry( radius, radius, length, 32 );\r\n var material = new MeshBasicMaterial({ color: color });\r\n this.obj = new Mesh(geometry, material);\r\n\r\n this.setPosition(x, y, z);\r\n this.setRotation(rx, ry, rz);\r\n\r\n return this.obj;\r\n }\r\n}","import { Group } from 'three';\r\n\r\nimport MaterialObject from '../../classes/materialObject.js';\r\nimport Line from '../../objects/line.js';\r\n\r\nexport default class ScaleLines extends MaterialObject {\r\n constructor(lineSize, lineHeight, lineColor, {x = null, y = null, z = null}={x:null, y:null, z:null},{rx = null, ry = null, rz = null}={rx:null, ry:null, rz:null}) {\r\n super();\r\n \r\n this.obj = new Group();\r\n\r\n var line = new Line(lineSize, lineHeight, lineColor, {x: 50, y: 0}, {rz: Math.PI/2});\r\n var line2 = new Line(lineSize, lineHeight, lineColor, {x: 50, y: 10}, {rz: Math.PI/2});\r\n var line3 = new Line(lineSize, lineHeight, lineColor, {x: 50, y: 20}, {rz: Math.PI/2});\r\n var line4 = new Line(lineSize, lineHeight, lineColor, {x: 50, y: 30}, {rz: Math.PI/2});\r\n var line5 = new Line(lineSize, lineHeight, lineColor, {x: 50, y: 40}, {rz: Math.PI/2});\r\n var line6 = new Line(lineSize, lineHeight, lineColor, {x: 50, y: 50}, {rz: Math.PI/2});\r\n var line7 = new Line(lineSize, lineHeight, lineColor, {x: 50, y: 60}, {rz: Math.PI/2});\r\n var line8 = new Line(lineSize, lineHeight, lineColor, {x: 50, y: 70}, {rz: Math.PI/2});\r\n var line9 = new Line(lineSize, lineHeight, lineColor, {x: 50, y: 80}, {rz: Math.PI/2});\r\n var line10 = new Line(lineSize, lineHeight, lineColor, {x: 50, y: 90}, {rz: Math.PI/2});\r\n var line11 = new Line(lineSize, lineHeight, lineColor, {x: 50, y: 100}, {rz: Math.PI/2});\r\n\r\n this.obj.add(line);\r\n this.obj.add(line2);\r\n this.obj.add(line3);\r\n this.obj.add(line4);\r\n this.obj.add(line5);\r\n this.obj.add(line6);\r\n this.obj.add(line7);\r\n this.obj.add(line8);\r\n this.obj.add(line9);\r\n this.obj.add(line10);\r\n this.obj.add(line11);\r\n\r\n this.setPosition(x, y, z);\r\n this.setRotation(rx, ry, rz);\r\n\r\n //return this.obj;\r\n }\r\n}","import { SphereGeometry, MeshBasicMaterial, Mesh } from 'three';\r\nimport MaterialObject from '../classes/materialObject.js'\r\n\r\nexport default class Ball extends MaterialObject {\r\n constructor(radius, color, {x = null, y = null, z = null}={x:null, y:null, z:null}) {\r\n super();\r\n \r\n var geometry = new SphereGeometry( radius, 32, 32 );\r\n var material = new MeshBasicMaterial( {color: color } );\r\n this.obj = new Mesh( geometry, material );\r\n \r\n this.setPosition(x, y, z);\r\n\r\n return this.obj;\r\n }\r\n}","import { ConeGeometry, MeshBasicMaterial, Mesh } from 'three';\r\nimport MaterialObject from '../classes/materialObject.js'\r\n\r\nexport default class Piramide extends MaterialObject {\r\n constructor(radius, height, color, {x = null, y = null, z = null}={x:null, y:null, z:null}) {\r\n super();\r\n \r\n var geometry = new ConeGeometry(radius, height, 3 );\r\n var material = new MeshBasicMaterial( {color: color} );\r\n this.obj = new Mesh( geometry, material );\r\n \r\n this.setPosition(x, y, z);\r\n\r\n return this.obj;\r\n }\r\n}","import { Mesh, Vector3, Geometry, LineBasicMaterial, Line, SphereGeometry, MeshBasicMaterial } from 'three';\r\n\r\nimport Visualization from '../classes/visualization.js';\r\nimport MySCurve from '../objects/compoundObjects/scurve.js';\r\nimport ScaleLines from '../objects/compoundObjects/scaleLines.js';\r\nimport Ball from '../objects/ball.js';\r\nimport Piramide from '../objects/piramide.js';\r\nimport PointerType from '../enums/pointerType.js';\r\n\r\nimport merge from 'webpack-merge';\r\n\r\nconst DEFAULTS = {\r\n data: {\r\n\r\n }\r\n};\r\n\r\n\r\nexport default class SCurve extends Visualization {\r\n constructor(_settings={}) {\r\n let settings = merge(DEFAULTS, _settings);\r\n super(settings);\r\n\r\n this.settings = settings;\r\n\r\n this.y = 0;\r\n this.yDirectionIsUp = true;\r\n\r\n this.scurve = new MySCurve();\r\n this.stage.scene.add(this.scurve.obj);\r\n\r\n this.scaleLines = new ScaleLines(.1, 100, 0x392930);\r\n this.stage.scene.add(this.scaleLines.obj);\r\n\r\n if (settings.debug) {\r\n this.drawYAxisHelper();\r\n this.drawXAxisHelper();\r\n }\r\n\r\n this.pointers = new Map();\r\n \r\n this.init();\r\n this.ready();\r\n }\r\n\r\n init() {\r\n for (let pointer of this.settings.data.pointers) {\r\n this.addPointer(pointer);\r\n }\r\n }\r\n\r\n addPointer(pointer) {\r\n if (typeof pointer.percentile.x !== \"undefined\") {\r\n let obj = this.getPointForX(pointer.percentile.x, pointer.color, pointer.type);\r\n this.stage.scene.add(obj);\r\n this.pointers.set(pointer.name, obj);\r\n }\r\n if (typeof pointer.percentile.y !== \"undefined\") {\r\n let obj = this.getPointForY(pointer.percentile.y, pointer.color, pointer.type);\r\n this.stage.scene.add(obj);\r\n this.pointers.set(pointer.name, obj);\r\n }\r\n }\r\n\r\n removePointer(name) {\r\n this.pointers.remove(name);\r\n }\r\n\r\n getPointForY(y, color=0x0000ff, type=PointerType.INTERNAL) {\r\n let x = this.scurve.getXForY(y);\r\n\r\n var point = null;\r\n switch (type) {\r\n case PointerType.INTERNAL:\r\n point = new Ball(2, color, { x: x, y: y });\r\n break;\r\n case PointerType.EXTERNAL:\r\n point = new Piramide(3, 3, color, { x: x, y: y });\r\n break;\r\n }\r\n\r\n return point;\r\n }\r\n\r\n getPointForX(x, color = 0x0000ff, type = PointerType.INTERNAL) {\r\n let y = this.scurve.getYForX(x);\r\n\r\n var point = null;\r\n switch (type) {\r\n case PointerType.INTERNAL:\r\n point = new Ball(2, color, { x: x, y: y });\r\n break;\r\n case PointerType.EXTERNAL:\r\n point = new Piramide(3, 3, color, { x: x, y: y });\r\n break;\r\n }\r\n\r\n return point;\r\n }\r\n\r\n onFrameExecution() {\r\n return;\r\n\r\n //testscript to test every possible y value:\r\n this.drawPointHelper();\r\n\r\n if (this.yDirectionIsUp) {\r\n this.y += .1;\r\n } else {\r\n this.y -= .1;\r\n }\r\n\r\n this.line.position.y = this.y;\r\n\r\n this.target.position.y = this.y;\r\n this.target.position.x = this.scurve.getXForY(this.y);\r\n\r\n if(this.y >= 100) {\r\n this.yDirectionIsUp = false;\r\n } \r\n\r\n if(this.y <= 0) {\r\n this.yDirectionIsUp = true;\r\n } \r\n }\r\n\r\n drawPointHelper() {\r\n var geometry = new SphereGeometry(2, 32, 32);\r\n var material = new MeshBasicMaterial({ color: 0xff0000 });\r\n this.target = new Mesh(geometry, material);\r\n this.target.position.y = this.y;\r\n this.target.position.x = this.scurve.getXForY(this.y);\r\n this.stage.scene.add(this.target);\r\n }\r\n\r\n drawYAxisHelper() {\r\n var geometry3 = new Geometry();\r\n geometry3.vertices.push(new Vector3(0, 0, 0));\r\n geometry3.vertices.push(new Vector3(0, 100, 0));\r\n var material3 = new LineBasicMaterial({ color: 0xff0000 });\r\n this.line3 = new Line(geometry3, material3);\r\n this.stage.scene.add(this.line3);\r\n\r\n for (let y = 0; y <= 100; y += 10) {\r\n var geometry4 = new Geometry();\r\n geometry4.vertices.push(new Vector3(-10, y, 0));\r\n geometry4.vertices.push(new Vector3(10, y, 0));\r\n var material4 = new LineBasicMaterial({ color: 0xff0000 });\r\n this.line4 = new Line(geometry4, material4);\r\n this.stage.scene.add(this.line4);\r\n }\r\n }\r\n\r\n drawXAxisHelper() {\r\n var geometry = new Geometry();\r\n geometry.vertices.push(new Vector3(0, this.y, 0));\r\n geometry.vertices.push(new Vector3(100, this.y, 0));\r\n var material = new LineBasicMaterial({ color: 0x0000ff });\r\n this.line = new Line(geometry, material);\r\n this.stage.scene.add(this.line);\r\n }\r\n}","import { GridHelper } from 'three';\r\nimport MaterialObject from '../classes/materialObject.js'\r\n\r\nexport default class GridPlane extends MaterialObject {\r\n constructor(size, divisions, colorCenterLine, colorGrid, {x = null, y = null, z = null}={x:null, y:null, z:null},{rx = null, ry = null, rz = null}={rx:null, ry:null, rz:null}) {\r\n super();\r\n \r\n this.obj = new GridHelper( size, divisions, colorCenterLine, colorGrid);\r\n \r\n this.setPosition(x, y, z);\r\n this.setRotation(rx, ry, rz);\r\n\r\n return this.obj;\r\n }\r\n}","export default {\r\n ORBIT: 'orbit',\r\n FREE_RANGE: 'freerange'\r\n};","export default {\r\n INTERNAL: 'internal',\r\n EXTERNAL: 'external'\r\n};","import CameraType from './cameraType.js';\r\n\r\nexport default {\r\n FRONT: {\r\n cameraType: CameraType.FREE_RANGE,\r\n cameraPosition: { x: 0, y: 50, z: 250 },\r\n cameraRotation: { x: 0, y: 0, z: 0 }\r\n },\r\n ORBIT: {\r\n cameraType: CameraType.ORBIT,\r\n cameraPosition: { x: 0, y: 300, z: 0 },\r\n cameraRotation: { x: 1.4, y: -6, z: 0 }\r\n },\r\n CUBE_FRONT: {\r\n cameraType: CameraType.FREE_RANGE,\r\n cameraPosition: { x: 0, y: 140, z: 250 },\r\n cameraRotation: { x: -0.4, y: 0, z: 0 }\r\n },\r\n CUBE_ANGLE: {\r\n cameraType: CameraType.ORBIT,\r\n cameraPosition: { x: 87, y: 203, z: 169 },\r\n cameraRotation: { x: -0.7, y: 0.36, z: 0.31 },\r\n cameraFocalPoint: { x: 0, y: 50, z: 0 }\r\n },\r\n CUBE_TOP: {\r\n cameraType: CameraType.FREE_RANGE,\r\n cameraPosition: { x: 0, y: 250, z: 0 },\r\n cameraRotation: { x: 11, y: 0, z: 0 }\r\n },\r\n SCURVE_FRONT: {\r\n cameraType: CameraType.FREE_RANGE,\r\n cameraPosition: { x: 50, y: 50, z: 175 },\r\n cameraRotation: { x: 0, y: 0, z: 0 } \r\n },\r\n SCALE_FRONT: {\r\n cameraType: CameraType.FREE_RANGE,\r\n cameraPosition: { x: 50, y: 50, z: 175 },\r\n cameraRotation: { x: 0, y: 0, z: 0 } \r\n },\r\n NUMERICALVALUE_FRONT: {\r\n cameraType: CameraType.FREE_RANGE,\r\n cameraPosition: { x: 50, y: 50, z: 200 },\r\n cameraRotation: { x: 0, y: 0, z: 0 }\r\n },\r\n};","import { Group, BufferGeometry, LineBasicMaterial, Line, SplineCurve, Vector2 } from 'three';\r\nimport MaterialObject from '../../classes/materialObject.js'\r\n\r\nfunction sigmoid(x) {\r\n return 1 / (1 + Math.pow(Math.exp(1), -x));\r\n}\r\n\r\nexport default class SCurve extends MaterialObject {\r\n constructor({x = null, y = null, z = null}={x: null, y: null, z: null}, {rx = null, ry = null, rz = null}={rx: null, ry: null, rz: null}) {\r\n super();\r\n\r\n const sigmoidData = [\r\n { x: 0, y: 0 },\r\n { x: 100, y: 100 }\r\n ];\r\n\r\n this.obj = new Group();\r\n\r\n this.points = this.getSigmoidPathData(sigmoidData);\r\n var curve = new SplineCurve(this.points);\r\n var pathPoints = curve.getPoints(100);\r\n var geometry = new BufferGeometry().setFromPoints(pathPoints);\r\n var material = new LineBasicMaterial({ color: 0x000000 });\r\n var splineObject = new Line(geometry, material);\r\n \r\n this.obj.add(splineObject);\r\n\r\n this.setPosition(x, y, z);\r\n this.setRotation(rx, ry, rz);\r\n\r\n //return this.obj;\r\n }\r\n\r\n getSigmoidPathData(scaleData) {\r\n let x1 = scaleData[0].x;\r\n let x2 = scaleData[1].x;\r\n let y1 = scaleData[0].y;\r\n let y2 = scaleData[1].y;\r\n\r\n let PathData = [];\r\n\r\n for (let z = -6; z <= 6; z += .05) {\r\n let sigmoidX = x1 + (x2 - x1) * ((z + 6) / 12);\r\n let sigmoidY = y1 + (y2 - y1) * sigmoid(z);\r\n\r\n var vector = new Vector2(sigmoidX, sigmoidY);\r\n\r\n PathData.push(vector);\r\n }\r\n return PathData;\r\n }\r\n\r\n getXForY(y) {\r\n var index = this.points.reduce(function (r, a, i, aa) {\r\n return i && Math.abs(aa[r].y - y) < Math.abs(a.y - y) ? r : i;\r\n }, -1);\r\n\r\n return this.points[index].x;\r\n }\r\n\r\n getYForX(x) {\r\n var index = this.points.reduce(function (r, a, i, aa) {\r\n return i && Math.abs(aa[r].x - x) < Math.abs(a.x - x) ? r : i;\r\n }, -1);\r\n\r\n return this.points[index].y;\r\n }\r\n}"],"sourceRoot":""}