JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://rawgit.com/kovacsv/JSModeler/master/build/three.min.js"></script>
<script src="https://rawgit.com/kovacsv/JSModeler/master/build/jsmodeler.js"></script>
<script src="https://rawgit.com/kovacsv/JSModeler/master/build/jsmodeler.ext.three.js"></script>
<script src="https://rawgit.com/kovacsv/JSModeler/master/build/lib/three.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div>
<button>select and rotate</button>
</div>
<br>three:
<br>
<canvas id="three" width="800" height="300"></canvas>
JavaScript
function GetBodyAndMaterials() {
var materials = new JSM.MaterialSet();
materials.AddMaterial(new JSM.Material({
ambient: 0xcc0000,
diffuse: 0xcc0000
}));
materials.AddMaterial(new JSM.Material({
ambient: 0x0000cc,
diffuse: 0x0000cc
}));
var body = new JSM.GenerateCuboid(0.5, 0.5, 0.5);
var vert0 = body.AddVertex(new JSM.BodyVertex(new JSM.Coord(0, 0, 0)));
var vert1 = body.AddVertex(new JSM.BodyVertex(new JSM.Coord(1, 0, 0)));
var vert2 = body.AddVertex(new JSM.BodyVertex(new JSM.Coord(1, 1, 0)));
var vert3 = body.AddVertex(new JSM.BodyVertex(new JSM.Coord(0, 1, 0)));
var vert4 = body.AddVertex(new JSM.BodyVertex(new JSM.Coord(0, 0, 1)));
var vert5 = body.AddVertex(new JSM.BodyVertex(new JSM.Coord(1, 0, 1)));
var vert6 = body.AddVertex(new JSM.BodyVertex(new JSM.Coord(1, 1, 1)));
var vert7 = body.AddVertex(new JSM.BodyVertex(new JSM.Coord(0, 1, 1)));
body.AddPoint(new JSM.BodyPoint(vert4));
body.AddPoint(new JSM.BodyPoint(vert5));
body.AddPoint(new JSM.BodyPoint(vert6));
body.AddPoint(new JSM.BodyPoint(vert7));
body.GetPolygon(1).SetMaterialIndex(0);
body.GetPolygon(2).SetMaterialIndex(1);
return [body, materials];
}
function LoadThree() {
var viewerSettings = {
cameraEyePosition: [1.0, 3.0, 2.0],
cameraCenterPosition: [0.0, 0.0, 0.0],
cameraUpVector: [0, 0, 1]
};
viewer = new JSM.ThreeViewer();
if (!viewer.Start(document.getElementById('three'), viewerSettings)) {
alert('error (three)');
}
var bodyAndMaterials = GetBodyAndMaterials();
var meshes = JSM.ConvertBodyToThreeMeshes(bodyAndMaterials[0], bodyAndMaterials[1])
viewer.AddMeshes(meshes);
viewer.FitInWindow();
viewer.Draw();
}
$('button').click(function() {
var meshesFound = [];
viewer.scene.traverse(function(current) {
if (current instanceof THREE.Mesh) {
meshesFound.push(current);
}
});
if (meshesFound.length > 0) {
var new_material = new THREE.MeshBasicMaterial({
color:...