當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript gl-matrix.vec2類代碼示例

本文整理匯總了TypeScript中gl-matrix.vec2的典型用法代碼示例。如果您正苦於以下問題:TypeScript vec2類的具體用法?TypeScript vec2怎麽用?TypeScript vec2使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了vec2類的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: tileToViewport

 /**
  * viewportPos = viewportFromSquare * squareFromMap * mapFromTile * tilePos
  * viewportPos = (viewportFromClip * verticalFlip * clipFromSquare) * squareFromMap * (verticalFlip * mapFromTile) * tilePos
  */
 tileToViewport(...pos : number[]) : PosXY{
   let vec = pos as any as vec2;
   vec2.transformMat2d(vec, vec, this.mapFromTileMatrix);
   vec2.transformMat2d(vec, vec, this.squareFromMapMatrix);
   vec2.transformMat2d(vec, vec, this.viewportFromSquareMatrix);
   return vec as any as PosXY;
 }
開發者ID:mariusGundersen,項目名稱:Ekkiog,代碼行數:11,代碼來源:Perspective.ts

示例2: viewportToTile

 /**
  * tilePos = mapToTile * squareToMap * viewportToSquare * viewportPos
  * tilePos = (mapToTile * verticalFlip) * squareToMap * (clipToSquare * verticalFlip * viewportToClip) * viewportPos
  */
 viewportToTile(...pos : number[]) : PosXY{
   let vec = pos as any as vec2;
   vec2.transformMat2d(vec, vec, this.viewportToSquareMatrix);
   vec2.transformMat2d(vec, vec, this.squareToMapMatrix);
   vec2.transformMat2d(vec, vec, this.mapToTileMatrix);
   return vec as any as PosXY;
 }
開發者ID:mariusGundersen,項目名稱:Ekkiog,代碼行數:11,代碼來源:Perspective.ts

示例3: reset

 /** Resets to fit tiles in viewport */
 reset({top, left, bottom, right} : Box){
   const topLeft = [left, top] as PosXY;
   const bottomRight = [right, bottom] as PosXY;
   vec2.transformMat2d(topLeft as any, topLeft, this.mapFromTileMatrix);
   vec2.transformMat2d(bottomRight as any, bottomRight, this.mapFromTileMatrix);
   this.transformMapToSquare(
     [topLeft, [-1,1]],
     [bottomRight, [ 1,-1]]
   );
 }
開發者ID:mariusGundersen,項目名稱:Ekkiog,代碼行數:11,代碼來源:Perspective.ts

示例4: constructor

  constructor(gl : WebGLRenderingContext, image : HTMLImageElement){
    super(gl, 0);
    this.width = image.width;
    this.height = image.height;
    this.image = image;

    vec2.set(this.size, image.width, image.height);
    vec2.set(this.halfSize, image.width/2, image.height/2);
    vec2.set(this.inverseSize, 1/image.width, 1/image.height);

    this.update();
  }
開發者ID:mariusGundersen,項目名稱:Ekkiog,代碼行數:12,代碼來源:ImageTexture.ts

示例5: constructor

  constructor(gl : WebGLRenderingContext, width=0, height=width){
    this.gl = gl;
    this.texture = gl.createTexture() || (() => {throw new Error("Could not make texture")})();

    this.width = width;
    this.height = height;

    this.size = vec2.fromValues(width, height);
    this.halfSize = vec2.fromValues(width/2, height/2);
    this.inverseSize = vec2.fromValues(1/width, 1/height);

    this.bind();

    this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MAG_FILTER, this.gl.NEAREST);
    this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MIN_FILTER, this.gl.NEAREST);

    this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_S, this.gl.CLAMP_TO_EDGE);
    this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_T, this.gl.CLAMP_TO_EDGE);
  }
開發者ID:mariusGundersen,項目名稱:Ekkiog,代碼行數:19,代碼來源:Texture.ts

示例6: intersectObject

  public intersectObject(object: Mesh) {
    if (!object.visible) return;
    let intersect;
    let uv;
    let face;

    // Check sphere
    if (object.boundingSphere === undefined) object.computeBoundingSphere();
    sphere.copy(object.boundingSphere);
    // Apply object modelMatrix, incase object has been transformed
    sphere.applyMatrix(object.modelMatrix);

    // Exit if the ray doesn't intersect the sphere
    if (!this.ray.intersectsSphere(sphere)) {
      return;
    }

    for (const f of object.geometry.faces) {
      vec3.copy(fvA.v, f.vertices[0].v);
      vec3.copy(fvB.v, f.vertices[1].v);
      vec3.copy(fvC.v, f.vertices[2].v);

      // Multiply vertices by object matrix
      vec3.transformMat4(fvA.v, fvA.v, object.modelMatrix);
      vec3.transformMat4(fvB.v, fvB.v, object.modelMatrix);
      vec3.transformMat4(fvC.v, fvC.v, object.modelMatrix);

      intersect = this.ray.intersectTriangle(fvA, fvB, fvC);

      if (intersect) {
        // Get uv intersection
        vec2.copy(uvA.v, object.geometry.uvs[f.uvs[0]].v);
        vec2.copy(uvB.v, object.geometry.uvs[f.uvs[1]].v);
        vec2.copy(uvC.v, object.geometry.uvs[f.uvs[2]].v);
        face = f;
        uv = this.uvIntersection(intersect, fvA, fvB, fvC);
        break;
      }
    }

    return intersect ? { point: intersect, uv, face } : null;
  }
開發者ID:davidpaulrosser,項目名稱:leonardo,代碼行數:42,代碼來源:Raycaster.ts

示例7: distance

 public distance(vector2: Vector2) {
   return vec2.distance(this.v, vector2.v);
 }
開發者ID:davidpaulrosser,項目名稱:leonardo,代碼行數:3,代碼來源:Vector2.ts

示例8: constructor

 constructor(x = 0, y = 0) {
   this.v = vec2.create();
   this.set(x, y);
   return this;
 }
開發者ID:davidpaulrosser,項目名稱:leonardo,代碼行數:5,代碼來源:Vector2.ts

示例9: scale

 public scale(value: number) {
   vec2.scale(this.v, this.v, value);
   return this;
 }
開發者ID:davidpaulrosser,項目名稱:leonardo,代碼行數:4,代碼來源:Vector2.ts

示例10: subtractVectors

 public subtractVectors(vector0: Vector2, vector1: Vector2) {
   const out = vec2.create();
   vec2.subtract(out, vector0.v, vector1.v);
   return out;
 }
開發者ID:davidpaulrosser,項目名稱:leonardo,代碼行數:5,代碼來源:Vector2.ts


注:本文中的gl-matrix.vec2類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。