{
const helloDataVisual = new dataVisual({data, visual});
const height = width / 2;
const camera = new THREE.PerspectiveCamera(75, width / height, 0.1, 1000);
camera.position.set(-5, 4, 0);
const renderer = new THREE.WebGLRenderer({antialias: true});
renderer.setSize(width, height);
renderer.setPixelRatio(devicePixelRatio);
const controls = new THREE.OrbitControls(camera, renderer.domElement);
controls.autoRotate = option.rotate;
const visualDiv = document.createElement("div");
visualDiv.appendChild(renderer.domElement);
helloDataVisual
.addToolTip(renderer, camera,
option.customToolTip ? getToolTipText : undefined
);
invalidation.then( () => renderer.dispose() );
while (true) {
renderer.render(helloDataVisual.visual.scene, camera);
if (option.rotate) controls.update();
yield visualDiv;
}
}