Advertisement
TTFTCUTS

three.dart

Jul 8th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 13.80 KB | None | 0 0
  1. @JS('THREE')
  2. library three;
  3.  
  4. import "dart:html";
  5. import "dart:js";
  6. import "package:js/js.dart";
  7. import "dart:typed_data";
  8.  
  9. @JS()
  10. abstract class Object3D {
  11.     external void lookAt(Vector3 vector);
  12.     external add(Object3D object);
  13.     external remove(Object3D object);
  14.  
  15.     external Vector3 get position;
  16.     external Vector3 get scale;
  17.  
  18.     external Vector3 get up;
  19. }
  20.  
  21. @JS()
  22. class Vector3 {
  23.     external Vector3(num x, num y, num z);
  24.     factory Vector3.zero() {
  25.         return new Vector3(0,0,0);
  26.     }
  27.  
  28.     external num get x;
  29.     external void set x(num x);
  30.  
  31.     external num get y;
  32.     external void set y(num y);
  33.  
  34.     external num get z;
  35.     external void set z(num z);
  36. }
  37.  
  38. @JS()
  39. class Face3 {
  40.  
  41. }
  42.  
  43. // Renderer ################################################################
  44.  
  45. @JS()
  46. class Scene extends Object3D {
  47.     external Scene();
  48. }
  49.  
  50. @JS()
  51. class WebGLRenderer {
  52.     external WebGLRenderer(WebGLRendererOptions parameters);
  53.     external CanvasElement get domElement;
  54.  
  55.     external void setClearColor(num color, num alpha);
  56.     external void render(Scene scene, Camera camera);
  57. }
  58.  
  59. @anonymous
  60. @JS()
  61. class WebGLRendererOptions {
  62.     external factory WebGLRendererOptions ({
  63.         CanvasElement canvas,
  64.         bool alpha : false,
  65.         bool antialias : false
  66.     });
  67. }
  68.  
  69. // Camera ################################################################
  70.  
  71. @JS()
  72. abstract class Camera extends Object3D {
  73.     external Camera();
  74. }
  75.  
  76. @JS()
  77. class PerspectiveCamera extends Camera {
  78.     external PerspectiveCamera( num fov, num aspect, num near, num far );
  79. }
  80.  
  81. // Lights  ################################################################
  82.  
  83. @JS()
  84. abstract class Light extends Object3D {
  85.     external num get color;
  86.     external void set color(num val);
  87.  
  88.     external num get intensity;
  89.     external void set intensity(num val);
  90. }
  91.  
  92. @JS()
  93. class DirectionalLight extends Light {
  94.     external DirectionalLight([num color = 0xFFFFFF, num intensity = 1.0]);
  95. }
  96.  
  97. @JS()
  98. class AmbientLight extends Light {
  99.     external AmbientLight([num color = 0xFFFFFF, num intensity = 1.0]);
  100. }
  101.  
  102. // Geometry ################################################################
  103.  
  104. @anonymous
  105. @JS()
  106. abstract class AbstractGeometry {}
  107.  
  108. @JS()
  109. abstract class Geometry implements AbstractGeometry {
  110.     external JsArray get vertices;
  111.     external JsArray get faces;
  112.     external JsArray get faceVertexUvs;
  113.  
  114.     external void set dynamic(bool flag);
  115.  
  116.     external void set verticesNeedUpdate(bool flag);
  117.     external void set elementsNeedUpdate(bool flag);
  118.     external void set uvsNeedUpdate(bool flag);
  119.     external void set normalsNeedUpdate(bool flag);
  120.     external void set colorsNeedUpdate(bool flag);
  121.     external void set groupsNeedUpdate(bool flag);
  122.     external void set lineDistancesNeedUpdate(bool flag);
  123.  
  124.     external void computeFaceNormals();
  125.     external void computeVertexNormals([areaWeighted = true]);
  126.     external void computeBoundingBox();
  127.     external void computeBoundingSphere();
  128.  
  129.     external void dispose();
  130. }
  131.  
  132. @JS()
  133. class BufferGeometry implements AbstractGeometry {
  134.     external void fromGeometry(Geometry source);
  135.  
  136.     external BufferGeometryAttributes get attributes;
  137.  
  138.     external void set verticesNeedUpdate(bool flag);
  139.     external void set uvsNeedUpdate(bool flag);
  140.     external void set normalsNeedUpdate(bool flag);
  141.     external void set colorsNeedUpdate(bool flag);
  142.     external void set groupsNeedUpdate(bool flag);
  143. }
  144.  
  145. @anonymous
  146. @JS()
  147. class BufferGeometryAttributes {
  148.     external BufferAttribute get position;
  149. }
  150.  
  151. @JS()
  152. class BufferAttribute {
  153.     external Float32List get array;
  154.     external int get itemSize;
  155.     external int get count;
  156. }
  157.  
  158. @JS()
  159. class PlaneBufferGeometry extends BufferGeometry {
  160.     external PlaneBufferGeometry(num width, num height, [num widthSegments, num heightSegments]);
  161. }
  162.  
  163. @JS()
  164. class SphereGeometry extends Geometry {
  165.     external SphereGeometry( num radius, [num widthSegments, num heightSegments, num phiStart, num phiLength, num thetaStart, num thetaLength]);
  166. }
  167.  
  168. @JS()
  169. class PlaneGeometry extends Geometry {
  170.     external PlaneGeometry(num width, num height, [num widthSegments, num heightSegments]);
  171. }
  172.  
  173. // Textures ################################################################
  174.  
  175. @JS()
  176. class Texture {
  177.     external Texture(CanvasImageSource image, [int mapping, int wrapS, int wrapT, int magFilter, int minFilter, int format, int anisotropy=1]);
  178.  
  179.     external void dispose();
  180.  
  181.     external void set needsUpdate(bool flag);
  182.  
  183.     external CanvasImageSource get image;
  184.     external void set image(CanvasImageSource img);
  185.  
  186.     external void set flipY(bool flag);
  187.  
  188.     external num get minFilter;
  189.     external void set minFilter(int val);
  190.     external num get magFilter;
  191.     external void set magFilter(int val);
  192.     external num get wrapS;
  193.     external void set wrapS(int val);
  194.     external num get wrapT;
  195.     external void set wrapT(int val);
  196.     external num get format;
  197.     external void set format(int val);
  198.     external num get type;
  199.     external void set type(int val);
  200.     external num get anisotropy;
  201.     external void set anisotropy(int val);
  202. }
  203.  
  204. // Material ################################################################
  205.  
  206. @JS()
  207. abstract class Material {
  208.     external void dispose();
  209. }
  210.  
  211. @JS()
  212. class MeshBasicMaterial extends Material {
  213.     external MeshBasicMaterial();
  214. }
  215.  
  216. @JS()
  217. class MeshStandardMaterial extends Material {
  218.     external MeshStandardMaterial(MeshStandardMaterialParameters parameters);
  219. }
  220.  
  221. @anonymous
  222. @JS()
  223. class MeshStandardMaterialParameters {
  224.     external factory MeshStandardMaterialParameters ({
  225.         num color : 0xffffff,
  226.         num roughness : 0.5,
  227.         num metalness : 0.5,
  228.         Texture map,
  229.         Texture lightmap,
  230.         num lightMapIntensity : 1.0,
  231.         Texture aoMap,
  232.         num aoMapIntensity : 1.0,
  233.         num emissive : 0x000000,
  234.         Texture emissiveMap,
  235.         num emissiveIntensity : 1.0,
  236.         Texture bumpMap,
  237.         num bumpMapScale : 1.0,
  238.         Texture normalMap,
  239.         // normalMapScale
  240.         Texture displacementMap,
  241.         num displacementScale : 1.0,
  242.         num displacementBias : 0.0,
  243.         Texture roughnessMap,
  244.         Texture metalnessMap,
  245.         Texture alphaMap,
  246.         Texture envMap,
  247.         num envMapIntensity : 1.0,
  248.         num refractionRatio : 0.98,
  249.         bool fog : true,
  250.         num shading,
  251.         bool wireframe : false,
  252.         num wireframeLinewidth : 1.0,
  253.         String wireframeLinecap : "round",
  254.         String wireframeLinejoin : "round",
  255.         num vertexColors,
  256.         bool skinning : false,
  257.         bool morphTargets : false,
  258.         bool morphNormals : false
  259.     });
  260. }
  261.  
  262. // Meshes ################################################################
  263.  
  264. @JS()
  265. class Mesh extends Object3D {
  266.     external Mesh(AbstractGeometry geometry, Material material);
  267. }
  268.  
  269. // Controls ################################################################
  270.  
  271. @JS()
  272. class OrbitControls {
  273.     external OrbitControls(Object3D object, Element domElement);
  274.  
  275.     external bool update();
  276.  
  277.     external bool get enabled;
  278.     external void set enabled(bool flag);
  279.  
  280.     external Vector3 get target;
  281.  
  282.     external void set enableDamping(bool flag);
  283.     external void set dampingFactor(num val);
  284.     external void set enableZoom(bool flag);
  285.     external void set zoomSpeed(num val);
  286.     external void set enableRotate(bool flag);
  287.     external void set rotateSpeed(num val);
  288.     external void set enablePan(bool flag);
  289.     external void set keyPanSpeed(num val);
  290.     external void set autoRotate(bool flag);
  291.     external void set autoRotateSpeed(num val);
  292.     external void set enableKeys(bool flag);
  293. }
  294.  
  295. // Constants ################################################################
  296.  
  297. @JS() external num get REVISION;
  298. @anonymous @JS() class MouseButtons {
  299.     external int get LEFT;
  300.     external int get MIDDLE;
  301.     external int get RIGHT;
  302. }
  303. @JS() external MouseButtons get MOUSE;
  304. @JS() external num get CullFaceNone;
  305. @JS() external num get CullFaceBack;
  306. @JS() external num get CullFaceFront;
  307. @JS() external num get CullFaceFrontBack;
  308. @JS() external num get FrontFaceDirectionCW;
  309. @JS() external num get FrontFaceDirectionCCW;
  310. @JS() external num get BasicShadowMap;
  311. @JS() external num get PCFShadowMap;
  312. @JS() external num get PCFSoftShadowMap;
  313. @JS() external num get FrontSide;
  314. @JS() external num get BackSide;
  315. @JS() external num get DoubleSide;
  316. @JS() external num get FlatShading;
  317. @JS() external num get SmoothShading;
  318. @JS() external num get NoColors;
  319. @JS() external num get FaceColors;
  320. @JS() external num get VertexColors;
  321. @JS() external num get NoBlending;
  322. @JS() external num get NormalBlending;
  323. @JS() external num get AdditiveBlending;
  324. @JS() external num get SubtractiveBlending;
  325. @JS() external num get MultiplyBlending;
  326. @JS() external num get CustomBlending;
  327. @anonymous @JS() class BlendingModeEnum {
  328.     external num get NoBlending;
  329.     external num get NormalBlending;
  330.     external num get AdditiveBlending;
  331.     external num get SubtractiveBlending;
  332.     external num get MultiplyBlending;
  333.     external num get CustomBlending;
  334. }
  335. @JS() external BlendingModeEnum get BlendingMode;
  336. @JS() external num get AddEquation;
  337. @JS() external num get SubtractEquation;
  338. @JS() external num get ReverseSubtractEquation;
  339. @JS() external num get MinEquation;
  340. @JS() external num get MaxEquation;
  341. @JS() external num get ZeroFactor;
  342. @JS() external num get OneFactor;
  343. @JS() external num get SrcColorFactor;
  344. @JS() external num get OneMinusSrcColorFactor;
  345. @JS() external num get SrcAlphaFactor;
  346. @JS() external num get OneMinusSrcAlphaFactor;
  347. @JS() external num get DstAlphaFactor;
  348. @JS() external num get OneMinusDstAlphaFactor;
  349. @JS() external num get DstColorFactor;
  350. @JS() external num get OneMinusDstColorFactor;
  351. @JS() external num get SrcAlphaSaturateFactor;
  352. @JS() external num get NeverDepth;
  353. @JS() external num get AlwaysDepth;
  354. @JS() external num get LessDepth;
  355. @JS() external num get LessEqualDepth;
  356. @JS() external num get EqualDepth;
  357. @JS() external num get GreaterEqualDepth;
  358. @JS() external num get GreaterDepth;
  359. @JS() external num get NotEqualDepth;
  360. @JS() external num get MultiplyOperation;
  361. @JS() external num get MixOperation;
  362. @JS() external num get AddOperation;
  363. @JS() external num get NoToneMapping;
  364. @JS() external num get LinearToneMapping;
  365. @JS() external num get ReinhardToneMapping;
  366. @JS() external num get Uncharted2ToneMapping;
  367. @JS() external num get CineonToneMapping;
  368. @JS() external num get UVMapping;
  369. @JS() external num get CubeReflectionMapping;
  370. @JS() external num get CubeRefractionMapping;
  371. @JS() external num get EquirectangularReflectionMapping;
  372. @JS() external num get EquirectangularRefractionMapping;
  373. @JS() external num get SphericalReflectionMapping;
  374. @JS() external num get CubeUVReflectionMapping;
  375. @JS() external num get CubeUVRefractionMapping;
  376. @anonymous @JS() class TextureMappingEnum {
  377.     external num get UVMapping;
  378.     external num get CubeReflectionMapping;
  379.     external num get CubeRefractionMapping;
  380.     external num get EquirectangularReflectionMapping;
  381.     external num get EquirectangularRefractionMapping;
  382.     external num get SphericalReflectionMapping;
  383.     external num get CubeUVReflectionMapping;
  384.     external num get CubeUVRefractionMapping;
  385. }
  386. @JS() external TextureMappingEnum get TextureMapping;
  387. @JS() external num get RepeatWrapping;
  388. @JS() external num get ClampToEdgeWrapping;
  389. @JS() external num get MirroredRepeatWrapping;
  390. @anonymous @JS() class TextureWrappingEnum {
  391.     external num get RepeatWrapping;
  392.     external num get ClampToEdgeWrapping;
  393.     external num get MirroredRepeatWrapping;
  394. }
  395. @JS() external TextureMappingEnum get TextureWrapping;
  396. @JS() external num get NearestFilter;
  397. @JS() external num get NearestMipMapNearestFilter;
  398. @JS() external num get NearestMipMapLinearFilter;
  399. @JS() external num get LinearFilter;
  400. @JS() external num get LinearMipMapNearestFilter;
  401. @JS() external num get LinearMipMapLinearFilter;
  402. @anonymous @JS() class TextureFilterEnum {
  403.     external num get NearestFilter;
  404.     external num get NearestMipMapNearestFilter;
  405.     external num get NearestMipMapLinearFilter;
  406.     external num get LinearFilter;
  407.     external num get LinearMipMapNearestFilter;
  408.     external num get LinearMipMapLinearFilter;
  409. }
  410. @JS() external TextureFilterEnum get TextureFilter;
  411. @JS() external num get UnsignedByteType;
  412. @JS() external num get ByteType;
  413. @JS() external num get ShortType;
  414. @JS() external num get UnsignedShortType;
  415. @JS() external num get IntType;
  416. @JS() external num get UnsignedIntType;
  417. @JS() external num get FloatType;
  418. @JS() external num get HalfFloatType;
  419. @JS() external num get UnsignedShort4444Type;
  420. @JS() external num get UnsignedShort5551Type;
  421. @JS() external num get UnsignedShort565Type;
  422. @JS() external num get UnsignedInt248Type;
  423. @JS() external num get AlphaFormat;
  424. @JS() external num get RGBFormat;
  425. @JS() external num get RGBAFormat;
  426. @JS() external num get LuminanceFormat;
  427. @JS() external num get LuminanceAlphaFormat;
  428. @JS() external num get RGBEFormat;
  429. @JS() external num get DepthFormat;
  430. @JS() external num get DepthStencilFormat;
  431. @JS() external num get RGB_S3TC_DXT1_Format;
  432. @JS() external num get RGBA_S3TC_DXT1_Format;
  433. @JS() external num get RGBA_S3TC_DXT3_Format;
  434. @JS() external num get RGBA_S3TC_DXT5_Format;
  435. @JS() external num get RGB_PVRTC_4BPPV1_Format;
  436. @JS() external num get RGB_PVRTC_2BPPV1_Format;
  437. @JS() external num get RGBA_PVRTC_4BPPV1_Format;
  438. @JS() external num get RGBA_PVRTC_2BPPV1_Format;
  439. @JS() external num get RGB_ETC1_Format;
  440. @JS() external num get LoopOnce;
  441. @JS() external num get LoopRepeat;
  442. @JS() external num get LoopPingPong;
  443. @JS() external num get InterpolateDiscrete;
  444. @JS() external num get InterpolateLinear;
  445. @JS() external num get InterpolateSmooth;
  446. @JS() external num get ZeroCurvatureEnding;
  447. @JS() external num get ZeroSlopeEnding;
  448. @JS() external num get WrapAroundEnding;
  449. @JS() external num get TrianglesDrawMode;
  450. @JS() external num get TriangleStripDrawMode;
  451. @JS() external num get TriangleFanDrawMode;
  452. @JS() external num get LinearEncoding;
  453. @JS() external num get sRGBEncoding;
  454. @JS() external num get GammaEncoding;
  455. @JS() external num get RGBEEncoding;
  456. @JS() external num get LogLuvEncoding;
  457. @JS() external num get RGBM7Encoding;
  458. @JS() external num get RGBM16Encoding;
  459. @JS() external num get RGBDEncoding;
  460. @JS() external num get BasicDepthPacking;
  461. @JS() external num get RGBADepthPacking;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement