JSFiddle - React, Tailwind, and code Playground

by Hilarius Doren

HTML

<script src="http://threejs.org/build/three.min.js"></script>
<script src="http://threejs.org/examples/js/controls/OrbitControls.js"></script>
<body  bgcolor="#CCC">
    <canvas  id="renderer" style="background-color:white"></canvas>
</body>

JavaScript

var renderer=scene=camera=model=rotateX=rotateY=controls='';
	var light,cube;    
	var DAY = 0;
	var sunLight, pointLight, ambientLight;
	var obj_x,obj_y,obj_z,obj_height,obj_widtht,obj_rotation;
	var mouse3D, isMouseDown = false, onMouseDownPosition,
	radious = 1600, theta = 45, onMouseDownTheta = 45, phi = 60, onMouseDownPhi = 60,
	isShiftDown = false;	
	
	var renderer=scene=camera=model=rotateX=rotateY=controls='';
	var light,cube;    
	var DAY = 0;
	var sunLight, pointLight, ambientLight;
	var obj_x,obj_y,obj_z,obj_height,obj_widtht,obj_rotation;
	var mouse3D, isMouseDown = false, onMouseDownPosition,
	radious = 1600, theta = 45, onMouseDownTheta = 45, phi = 60, onMouseDownPhi = 60,
	isShiftDown = false;	
	
	
	const DIGIT_0 = 48, DIGIT_9 = 57, COMMA = 44, SPACE = 32, PERIOD = 46,MINUS = 45;
 
	function transformSVGPath(pathStr)
	{
		//debugger;
		var path = new THREE.Shape();
		var idx = 1, len = pathStr.length, activeCmd,
		x = 0, y = 0, nx = 0, ny = 0, firstX = null, firstY = null,
		x1 = 0, x2 = 0, y1 = 0, y2 = 0,
		rx = 0, ry = 0, xar = 0, laf = 0, sf = 0, cx, cy;
		function eatNum() {
			var sidx, c, isFloat = false, s;
			// eat delims
			while (idx < len) {
				c = pathStr.charCodeAt(idx);
				if (c !== COMMA && c !== SPACE)
				break;
				idx++;
			}
			if (c === MINUS)
			sidx = idx++;
			else
			sidx = idx;
			// eat number
			while (idx < len) {
				c = pathStr.charCodeAt(idx);
				if (DIGIT_0 <= c && c <= DIGIT_9) {
				idx++;
				continue;
				}
				else if (c === PERIOD) {
				idx++;
				isFloat = true;
				continue;
				}
				s = pathStr.substring(sidx, idx);
				return isFloat ? parseFloat(s) : parseInt(s);
			}
			s = pathStr.substring(sidx);
			return isFloat ? parseFloat(s) : parseInt(s);
		}
		function nextIsNum() {
			var c;
			// do permanently eat any delims...
			while (idx < len) {
				c = pathStr.charCodeAt(idx);
				if (c !== COMMA && c !== SPACE)
				break;
				idx++;
			}
			c = pathStr.charCodeAt(idx);
			return (c === MINUS ||...