react-vtk-js
Version:
React based declarative vtk.js visualization pipeline
2 lines (1 loc) • 3.87 kB
JavaScript
import t from"../node_modules/@babel/runtime/helpers/esm/classCallCheck.js";import e from"../node_modules/@babel/runtime/helpers/esm/createClass.js";import r from"../node_modules/@babel/runtime/helpers/esm/inherits.js";import n from"../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js";import a from"../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js";import i,{Component as o}from"react";import s from"prop-types";import{toTypedArray as l}from"../utils.js";import{RepresentationContext as p,DownstreamContext as c,DataSetContext as u}from"./View.js";import f from"../node_modules/@kitware/vtk.js/Common/DataModel/PolyData.js";function y(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,i=a(t);if(e){var o=a(this).constructor;r=Reflect.construct(i,arguments,o)}else r=i.apply(this,arguments);return n(this,r)}}var m=function(n){r(s,o);var a=y(s);function s(e){var r;return t(this,s),(r=a.call(this,e)).polydata=f.newInstance(),r}return e(s,[{key:"render",value:function(){var t=this;return i.createElement(p.Consumer,null,(function(e){return i.createElement(c.Consumer,null,(function(r){return t.representation=e,t.downstream||(t.downstream=r),i.createElement(u.Provider,{value:t},i.createElement("div",{key:t.props.id,id:t.props.id},t.props.children))}))}))}},{key:"componentDidMount",value:function(){this.update(this.props)}},{key:"componentDidUpdate",value:function(t,e,r){this.update(this.props,t)}},{key:"componentWillUnmount",value:function(){this.polydata.delete(),this.polydata=null}},{key:"update",value:function(t,e){var r=t.connectivity,n=t.points,a=t.verts,i=t.lines,o=t.polys,s=t.strips,p=!1,c=Uint32Array;if(n&&(!e||n!==e.points)){var u=l(n,Float64Array);this.polydata.getPoints().setData(u,3),p=!0,c=u.length>196608?Uint32Array:Uint16Array}if(!a||e&&a===e.verts||(this.polydata.getVerts().setData(l(a,c)),p=!0),!i||e&&i===e.lines||(this.polydata.getLines().setData(l(i,c)),p=!0),!o||e&&o===e.polys||(this.polydata.getPolys().setData(l(o,c)),p=!0),!s||e&&s===e.strips||(this.polydata.getStrips().setData(l(s,c)),p=!0),r&&(r||!e||r!==e.connectivity)){var f=n.length/3;switch(r){case"points":var y=new Uint32Array(f+1);y[0]=f;for(var m=0;m<f;m++)y[m+1]=m;this.polydata.getVerts().setData(y),p=!0;break;case"triangles":for(var d=new Uint32Array(f+f/3),h=0,v=0;v<f;v+=3)d[h++]=3,d[h++]=v+0,d[h++]=v+1,d[h++]=v+2;this.polydata.getPolys().setData(d),p=!0;break;case"strips":var O=new Uint32Array(f+1);O[0]=f;for(var b=0;b<f;b++)O[b+1]=b;this.polydata.getStrips().setData(O),p=!0}}p&&this.modified()}},{key:"getDataSet",value:function(){return this.polydata}},{key:"modified",value:function(){this.polydata.modified(),this.downstream.setInputData(this.polydata,this.props.port),this.representation&&this.polydata.getPoints().getData().length&&this.representation.dataAvailable()}}]),s}();m.defaultProps={port:0,points:[],connectivity:"manual"},m.propTypes={id:s.string,port:s.number,points:s.oneOfType([s.arrayOf(s.number),s.object,s.instanceOf(Float64Array),s.instanceOf(Float32Array)]),verts:s.oneOfType([s.arrayOf(s.number),s.object,s.instanceOf(Uint8Array),s.instanceOf(Uint16Array),s.instanceOf(Uint32Array)]),lines:s.oneOfType([s.arrayOf(s.number),s.object,s.instanceOf(Uint8Array),s.instanceOf(Uint16Array),s.instanceOf(Uint32Array)]),polys:s.oneOfType([s.arrayOf(s.number),s.object,s.instanceOf(Uint8Array),s.instanceOf(Uint16Array),s.instanceOf(Uint32Array)]),strips:s.oneOfType([s.arrayOf(s.number),s.object,s.instanceOf(Uint8Array),s.instanceOf(Uint16Array),s.instanceOf(Uint32Array)]),connectivity:s.string,children:s.oneOfType([s.arrayOf(s.node),s.node])};export{m as default};