Void-voiD

Untitled

Aug 4th, 2020
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let gl, canvas, current_molecula, jsonData;
  2.  
  3.  
  4. const start = () => {
  5.     canvas = document.getElementById("glcanvas");
  6.    
  7.     gl = initWebGL(canvas);      // инициализация контекста GL
  8.    
  9.     // продолжать только если WebGL доступен и работает
  10.    
  11.     if (gl) {
  12.         gl.clearColor(0.0, 0.0, 0.0, 1.0);                      // установить в качестве цвета очистки буфера цвета черный, полная непрозрачность
  13.         gl.enable(gl.DEPTH_TEST);                               // включает использование буфера глубины
  14.         gl.depthFunc(gl.LEQUAL);                                // определяет работу буфера глубины: более ближние объекты перекрывают дальние
  15.         gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER_BIT);      // очистить буфер цвета и буфер глубины.
  16.     }
  17. }
  18.  
  19.  
  20. const initWebGL = (canvas) => {
  21.     gl = null;
  22.    
  23.     try {
  24.         // Попытаться получить стандартный контекст. Если не получится, попробовать получить экспериментальный.
  25.         gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
  26.     } catch(e) {
  27.        
  28.     }
  29.      
  30.     // Если мы не получили контекст GL, завершить работу
  31.     if (!gl) {
  32.         alert("Unable to initialize WebGL. Your browser may not support it.");
  33.         gl = null;
  34.     }
  35.          
  36.     return gl;
  37. }
  38.  
  39.  
  40. const getJSON = (url, callback) => {
  41.     let xhr = new XMLHttpRequest();
  42.    
  43.     xhr.timeout = 20000;
  44.     xhr.open('GET', url, true);
  45.     xhr.responseType = 'json';
  46.     xhr.onload = function() {
  47.        
  48.         let status = xhr.status;
  49.        
  50.         if (status == 200) {
  51.             callback(null, xhr.response);
  52.         } else {
  53.             callback(status);
  54.         }
  55.     };
  56.     xhr.send();
  57. };
  58.  
  59. // функция вызывается в случае ввода текста в поле для идентификации молекулы
  60. const getMolecula = () => {
  61.     let text = document.getElementById("searchbox").value;
  62.     if (text) {
  63.         current_molecula = text;
  64.  
  65.         // создание ссылки
  66.         let link = "https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/fastformula/" + current_molecula + "/JSON";
  67.        
  68.         Object.size = function(obj) {
  69.             var size = 0, key;
  70.             for (key in obj) {
  71.                 if (obj.hasOwnProperty(key)) size++;
  72.             }
  73.                 return size;
  74.         };
  75.        
  76.        
  77.         getJSON(link, function(error, data) {
  78.             if (error != null) {
  79.                 alert(error);
  80.             } else {
  81.                 jsonData = data;
  82.                 // console.log(data);
  83.             }
  84.         });
  85.     }
  86. }
  87.  
Add Comment
Please, Sign In to add comment