Void-voiD

Untitled

Aug 4th, 2020
193
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.     xhr.open('GET', url, true);
  43.     xhr.responseType = 'json';
  44.    
  45.     xhr.onload = function() {
  46.        
  47.         let status = xhr.status;
  48.        
  49.         if (status == 200) {
  50.             callback(null, xhr.response);
  51.         } else {
  52.             callback(status);
  53.         }
  54.     };
  55.     xhr.send();
  56. };
  57.  
  58. // функция вызывается в случае ввода текста в поле для идентификации молекулы
  59. const getMolecula = () => {
  60.     let text = document.getElementById("searchbox").value;
  61.     if (text) {
  62.         current_molecula = text;
  63.  
  64.         // создание ссылки
  65.         let link = "https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/fastformula/" + current_molecula + "/JSON";
  66.        
  67.         getJSON(link, function(error, data) {
  68.             if (error != null) {
  69.                 alert(error);
  70.             } else {
  71.                 alert("YEAH");
  72.                 jsonData = data.json();
  73.             }
  74.         });
  75.     }
  76. }
  77.  
Add Comment
Please, Sign In to add comment