Try with React on Codepen:
importReact,{Component}from'react';import{App,Sphere}from'react-whs';exportclassApplicationextendsComponent{render(){return(<Appmodules={[newWHS.app.SceneModule(),newWHS.app.CameraModule({position: {z: 20}}),newWHS.app.RenderingModule(),newWHS.controls.OrbitModule()]}><Spheregeometry={[3,32,32]}material={newTHREE.MeshBasicMaterial({color: 0xffffff})}/></App>)}}importReact,{Component}from'react';import{App,Sphere}from'react-whs';exportclassApplicationextendsComponent{render(){return(<Appmodules={[// ...]}><Spheregeometry={[3,32,32]}material={newTHREE.MeshBasicMaterial({color: 0xffffff})}><Boxgeometry={[2,2,2]}material={newTHREE.MeshBasicMaterial({color: 0xff0000})}position={[5,5,2]}></Sphere></App>
)
}}Simply include
@reactifydecorator.
importReact,{Component}from'react';import*asTHREEfrom'three';import{MeshComponent}from'whs/src/core/MeshComponent';import{reactify}from'react-whs';
@reactifyexportdefaultclassBasicSphereextendsMeshComponent{build(){returnnewTHREE.Mesh(newTHREE.SphereGeometry(3,16,16),newTHREE.MeshBasicMaterial({color: 0xff0000})// red);}}For App use refApp.
For any component (Mesh, Light, Camera, ...) use refComponent.
importReact,{Component}from'react';import{App,Sphere}from'react-whs';exportclassApplicationextendsComponent{render(){return(<Appmodules={[// ...refApp={app=>{console.log(app);// will log this WHS.App object}}]}><Spheregeometry={[3,32,32]}material={newTHREE.MeshBasicMaterial({color: 0xffffff})}refComponent={component=>{console.log(component);// will log this WHS.Sphere object}}/></App>)}}To see how to make whs components work in react see previous note (Custom components)
WHS:
constcomponent=newMyComponent({parameter1: value1,parameter2: value2,position: newTHREE.Vector3(x,y,z)});component.addTo(app);React:
classMyComponentSyntaxExample{render(){return(<MyComponentparameter1={value1}parameter2={value2}position={[x,y,z]}/>)}}
