Package com.jme.math

Examples of com.jme.math.Vector2f


  public MaterialTerrainPage(String name, int blockSize, int size,
      Vector3f stepScale, int[] heightMap, boolean clod,
      MaterialMap matMap) {
    // super( name, blockSize, size, stepScale, heightMap, clod );
    this(name, blockSize, size, stepScale, heightMap, clod, size,
        new Vector2f(), 0, matMap);
    fixNormals();

  }
View Full Code Here


    // create 4 terrain pages
    int quarterSize = getSize() >> 2;

    int split = (getSize() + 1) >> 1;

    Vector2f tempOffset = new Vector2f();
    setOffsetAmount(getOffsetAmount() + quarterSize); // getOffsetAmount() += quarterSize;

    // 1 upper left
    int[] heightBlock1 = createHeightSubBlock(heightMap, 0, 0, split);
View Full Code Here

    // create 4 terrain blocks
    int quarterSize = getSize() >> 2;
    int halfSize = getSize() >> 1;
    int split = (getSize() + 1) >> 1;

    Vector2f tempOffset = new Vector2f();
    setOffsetAmount(getOffsetAmount() + quarterSize); // getOffsetAmount() += quarterSize;

    // 1 upper left
    int[] heightBlock1 = createHeightSubBlock(heightMap, 0, 0, split);
View Full Code Here

    index.put( 2 );
    index.put( 0 );
    index.put( 2 );
    index.put( 3 );
   
    BufferUtils.setInBuffer( new Vector2f( baseTextureCoord.x, baseTextureCoord.y +  TileTexture.TILE_HEIGHT ),  baseTextureBuffer,  0 );
    BufferUtils.setInBuffer( baseTextureCoord,  baseTextureBuffer,  1 );
    BufferUtils.setInBuffer( new Vector2f( baseTextureCoord.x + TileTexture.TILE_WIDTH, baseTextureCoord.y ),  baseTextureBuffer,  2 );
    BufferUtils.setInBuffer( new Vector2f( baseTextureCoord.x + TileTexture.TILE_WIDTH, baseTextureCoord.y + TileTexture.TILE_HEIGHT ),  baseTextureBuffer,  3 );

    if( overTextureCoord != null ) {
      FloatBuffer vertexOver = BufferUtils.createVector3Buffer( 4 );
      IntBuffer  indexOver  = BufferUtils.createIntBuffer( 6 );
      overTextureBuffer = BufferUtils.createVector3Buffer( 4 );

      BufferUtils.setInBuffer( origin.add( new Vector3f( -1.0f, 1.0f, 0.0f )),  vertexOver,  0 );
      BufferUtils.setInBuffer( origin.add( new Vector3f( -1.0f, -1.0f, 0.0f )),  vertexOver,  1 );
      BufferUtils.setInBuffer( origin.add( new Vector3f( 1.0f, -1.0f, 0.0f )),  vertexOver,  2 );
      BufferUtils.setInBuffer( origin.add( new Vector3f( 1.0f, 1.0f, 0.0f )),  vertexOver,  3 );
     
      indexOver.put( 0 );
      indexOver.put( 1 );
      indexOver.put( 2 );
      indexOver.put( 0 );
      indexOver.put( 2 );
      indexOver.put( 3 );

     
      BufferUtils.setInBuffer( new Vector2f( overTextureCoord.x, overTextureCoord.y + TileTexture.TILE_HEIGHT ),  overTextureBuffer,  0 );
      BufferUtils.setInBuffer( overTextureCoord,  overTextureBuffer,  1 );
      BufferUtils.setInBuffer( new Vector2f( overTextureCoord.x + TileTexture.TILE_WIDTH, overTextureCoord.y ),  overTextureBuffer,  2 );
      BufferUtils.setInBuffer( new Vector2f( overTextureCoord.x + TileTexture.TILE_WIDTH, overTextureCoord.y + TileTexture.TILE_HEIGHT ),  overTextureBuffer,  3 );

      this.addBatch( new TriangleBatch() );
      this.getBatch( 1 ).setVertexCount( 4 );
      this.getBatch( 1 ).setTriangleQuantity( 2 );
      this.getBatch( 1 ).setVertexBuffer( vertexOver );
View Full Code Here

            different = sample;
          }
        }
      }
     
      Vector2f coords = ht.get( key );
      int baseTexture = tileIndexForColor( same );
      int overTexture = tileIndexForColor( different );
      if( coords == null || baseTexture > overTexture ) {
        Vector2f newCoord = new Vector2f( 0.0f, 0.0f );
        if( ! key.equals( "SSSSSSSSS" )) {
          System.out.println( key );
          keys.add( key );
        } else {
          Random r = new Random();
          int k = r.nextInt(1000);
          if (k > 700) {
            int t = r.nextInt(3) + 4;
            int b = r.nextInt(4);
            newCoord.x = Math.abs(t) * TileTexture.TILE_WIDTH;
            newCoord.y = Math.abs(b) * TileTexture.TILE_HEIGHT;
          }
        }
       
        result = new Tile( origin, heightMap.getHeightMap(), tileTextures[baseTexture].getTexture(), newCoord );
      } else {
        result = new Tile( origin, heightMap.getHeightMap(), tileTextures[baseTexture].getTexture(), tileTextures[overTexture].getTexture(), new Vector2f(0.0f, 0.0f), coords);
      }
    }
    if( result == null ) {
      result = new Tile( origin, heightMap.getHeightMap(), tileTextures[0].getTexture(), new Vector2f(0.0f, 0.0f));
    }
    return result;
  }
View Full Code Here

      ht = new Hashtable<String,Vector2f>();
    }
   

    // autogen
    ht.put("SDD" +"SSD" +"SDD",new Vector2f( 4 * TileTexture.TILE_WIDTH, 0 * TileTexture.TILE_HEIGHT));
    ht.put("DDS" +"DSS" +"DDD",new Vector2f( 5 * TileTexture.TILE_WIDTH, 0 * TileTexture.TILE_HEIGHT));
    ht.put("SSD" +"SSS" +"SSD",new Vector2f( 5 * TileTexture.TILE_WIDTH, 2 * TileTexture.TILE_HEIGHT));
    ht.put("DSD" +"DSS" +"DDS",new Vector2f( 6 * TileTexture.TILE_WIDTH, 3 * TileTexture.TILE_HEIGHT));
    ht.put("DDD" +"SSS" +"SDD",new Vector2f( 7 * TileTexture.TILE_WIDTH, 3 * TileTexture.TILE_HEIGHT));
   
   
    ht.put("SDD" +"SSS" +"SSD",new Vector2f( 4 * TileTexture.TILE_WIDTH, 0 * TileTexture.TILE_HEIGHT));
    ht.put("DSD" +"DSD" +"DDS",new Vector2f( 5 * TileTexture.TILE_WIDTH, 0 * TileTexture.TILE_HEIGHT));
    ht.put("DSS" +"SSS" +"DDS",new Vector2f( 5 * TileTexture.TILE_WIDTH, 1 * TileTexture.TILE_HEIGHT));
    ht.put("SDD" +"SSD" +"DSD",new Vector2f( 5 * TileTexture.TILE_WIDTH, 2 * TileTexture.TILE_HEIGHT));
    ht.put("SSS" +"SSS" +"DDD",new Vector2f( 6 * TileTexture.TILE_WIDTH, 2 * TileTexture.TILE_HEIGHT));
    ht.put("SDD" +"DSD" +"DSD",new Vector2f( 4 * TileTexture.TILE_WIDTH, 3 * TileTexture.TILE_HEIGHT));
    ht.put("DDD" +"SSD" +"DDD",new Vector2f( 5 * TileTexture.TILE_WIDTH, 3 * TileTexture.TILE_HEIGHT));
    ht.put("SSD" +"SSS" +"DDD",new Vector2f( 6 * TileTexture.TILE_WIDTH, 3 * TileTexture.TILE_HEIGHT));
   
   
    ht.put("DSD" +"DSD" +"DSS",new Vector2f( 5 * TileTexture.TILE_WIDTH, 0 * TileTexture.TILE_HEIGHT));
    ht.put("SSD" +"DSD" +"DSS",new Vector2f( 6 * TileTexture.TILE_WIDTH, 0 * TileTexture.TILE_HEIGHT));
    ht.put("DSS" +"DSD" +"DDD",new Vector2f( 4 * TileTexture.TILE_WIDTH, 2 * TileTexture.TILE_HEIGHT));
    ht.put("SSD" +"SSD" +"SSD",new Vector2f( 5 * TileTexture.TILE_WIDTH, 2 * TileTexture.TILE_HEIGHT));
    ht.put("SDD" +"SSD" +"DDD",new Vector2f( 7 * TileTexture.TILE_WIDTH, 2 * TileTexture.TILE_HEIGHT));
    ht.put("DDD" +"SSS" +"SSS",new Vector2f( 4 * TileTexture.TILE_WIDTH, 3 * TileTexture.TILE_HEIGHT));
   
   
    ht.put("SSD" +"DSD" +"DSD",new Vector2f( 6 * TileTexture.TILE_WIDTH, 0 * TileTexture.TILE_HEIGHT));
    ht.put("DSS" +"DSS" +"DSD",new Vector2f( 4 * TileTexture.TILE_WIDTH, 1 * TileTexture.TILE_HEIGHT));
    ht.put("DSD" +"DSS" +"DSS",new Vector2f( 7 * TileTexture.TILE_WIDTH, 1 * TileTexture.TILE_HEIGHT));
    ht.put("DSS" +"DSS" +"DSS",new Vector2f( 4 * TileTexture.TILE_WIDTH, 2 * TileTexture.TILE_HEIGHT));
    ht.put("SSD" +"SSS" +"DDS",new Vector2f( 7 * TileTexture.TILE_WIDTH, 2 * TileTexture.TILE_HEIGHT));

    // RIGHT EDGE
    ht.put("SSD" +
         "SSD" +
         "SSD",
        new Vector2f( 2 * TileTexture.TILE_WIDTH, 2 * TileTexture.TILE_HEIGHT));
    ht.put("SSS" +"SSD" +"SSS",new Vector2f( 2 * TileTexture.TILE_WIDTH, 2 * TileTexture.TILE_HEIGHT));

   
    ht.put("SSD" +"SSD" +"SDD",new Vector2f( 3 * TileTexture.TILE_WIDTH, 2 * TileTexture.TILE_HEIGHT)); // RIGHT HAND TURN
    ht.put("SSS" +"SSS" +"SSD",new Vector2f( 2 * TileTexture.TILE_WIDTH, 0 * TileTexture.TILE_HEIGHT));
    ht.put("SSS" +"SSD" +"SSD",new Vector2f( 2 * TileTexture.TILE_WIDTH, 2 * TileTexture.TILE_HEIGHT));

    ht.put("SSD" +"SSD" +"DDD",new Vector2f( 3 * TileTexture.TILE_WIDTH, 2 * TileTexture.TILE_HEIGHT));// RIGHT HAND TURN
    ht.put("SSS" +"SSS" +"SDD",new Vector2f( 3 * TileTexture.TILE_WIDTH, 0 * TileTexture.TILE_HEIGHT));
    ht.put("SSS" +"SSD" +"SDD",new Vector2f( 3 * TileTexture.TILE_WIDTH, 2 * TileTexture.TILE_HEIGHT));

    ht.put("SSS" +"SSD" +"DDD",new Vector2f( 3 * TileTexture.TILE_WIDTH, 2 * TileTexture.TILE_HEIGHT));

    // LEFT SMALL
    ht.put("SSS" +"SSS" +"DSS",new Vector2f( 1 * TileTexture.TILE_WIDTH, 0 * TileTexture.TILE_HEIGHT));

    ht.put("SSS" +"DSS" +"DDD",new Vector2f( 3 * TileTexture.TILE_WIDTH, 1 * TileTexture.TILE_HEIGHT));

    ht.put("SSS" +"SSS" +"DDS",new Vector2f( 3 * TileTexture.TILE_WIDTH, 0 * TileTexture.TILE_HEIGHT));

   
    ht.put("DSS" +"SSS" +"SSS",new Vector2f( 0 * TileTexture.TILE_WIDTH, 1 * TileTexture.TILE_HEIGHT));
    ht.put("DDS" +"SSS" +"SSS",new Vector2f( 0 * TileTexture.TILE_WIDTH, 3 * TileTexture.TILE_HEIGHT));
    ht.put("DDD" +"DSS" +"SSS",new Vector2f( 1 * TileTexture.TILE_WIDTH, 3 * TileTexture.TILE_HEIGHT));

   
    //back towards right
    ht.put("DSS" +"DSS" +"DDD",new Vector2f( 3 * TileTexture.TILE_WIDTH, 1 * TileTexture.TILE_HEIGHT));
    ht.put("SSS" +"DSS" +"DSS",new Vector2f( 1 * TileTexture.TILE_WIDTH, 1 * TileTexture.TILE_HEIGHT));
    ht.put("DSS" +"DSS" +"DDS",new Vector2f( 3 * TileTexture.TILE_WIDTH, 1 * TileTexture.TILE_HEIGHT));

   
    ht.put("DDS" +"DSS" +"DSS",new Vector2f( 1 * TileTexture.TILE_WIDTH, 3 * TileTexture.TILE_HEIGHT));
    ht.put("DSS" +"DSS" +"SSS",new Vector2f( 1 * TileTexture.TILE_WIDTH, 1 * TileTexture.TILE_HEIGHT));

   
    ht.put("DDD" +"SSD" +"SSS",new Vector2f( 2 * TileTexture.TILE_WIDTH, 3 * TileTexture.TILE_HEIGHT));
    ht.put("SSD" +"SSS" +"SSS",new Vector2f( 0 * TileTexture.TILE_WIDTH, 2 * TileTexture.TILE_HEIGHT));
    ht.put("SDD" +"SSS" +"SSS",new Vector2f( 0 * TileTexture.TILE_WIDTH, 3 * TileTexture.TILE_HEIGHT));

    ht.put("DDD" +"DSS" +"DSS",new Vector2f( 1 * TileTexture.TILE_WIDTH, 3 * TileTexture.TILE_HEIGHT));

    ht.put("DDS" +"DSS" +"SSS",new Vector2f( 1 * TileTexture.TILE_WIDTH, 3 * TileTexture.TILE_HEIGHT));

    ht.put("SSS" +"DSS" +"DDS",new Vector2f( 3 * TileTexture.TILE_WIDTH, 1 * TileTexture.TILE_HEIGHT));

    ht.put("SSD" +"SSD" +"SSS",new Vector2f( 2 * TileTexture.TILE_WIDTH, 2 * TileTexture.TILE_HEIGHT));

    ht.put("DDD" +"SSD" +"SSD",new Vector2f( 2 * TileTexture.TILE_WIDTH, 3 * TileTexture.TILE_HEIGHT));
    ht.put("SDD" +"SSD" +"SSD",new Vector2f( 2 * TileTexture.TILE_WIDTH, 3 * TileTexture.TILE_HEIGHT));
    ht.put("SDD" +"SSD" +"SSS",new Vector2f( 2 * TileTexture.TILE_WIDTH, 3 * TileTexture.TILE_HEIGHT));

   
    ht.put("SSD" +"SSS" +"DSS",new Vector2f( 1 * TileTexture.TILE_WIDTH, 0 * TileTexture.TILE_HEIGHT));
    ht.put("SSD" +"SSD" +"DSS",new Vector2f( 1 * TileTexture.TILE_WIDTH, 0 * TileTexture.TILE_HEIGHT));

    ht.put("SSD" +"DSS" +"DDD",new Vector2f( 3 * TileTexture.TILE_WIDTH, 1 * TileTexture.TILE_HEIGHT));

    ht.put("SDD" +"SSS" +"DDS",new Vector2f( 3 * TileTexture.TILE_WIDTH, 0 * TileTexture.TILE_HEIGHT));
    ht.put("DDD" +"SSD" +"DSS",new Vector2f( 1 * TileTexture.TILE_WIDTH, 0 * TileTexture.TILE_HEIGHT));

    ht.put("SSD" +"DSS" +"DSS",new Vector2f( 1 * TileTexture.TILE_WIDTH, 1 * TileTexture.TILE_HEIGHT));

   
    // BOTTOM EDGE
    ht.put("SSS" +
         "SSS" +
         "DDD",
        new Vector2f( 3 * TileTexture.TILE_WIDTH, 0 * TileTexture.TILE_HEIGHT));
   
    // LEFT EDGE
    ht.put("DSS" +
         "DSS" +
         "DSS",
         new Vector2f( 1 * TileTexture.TILE_WIDTH, 1 * TileTexture.TILE_HEIGHT));
    ht.put("SSS" +"DSS" +"SSS",new Vector2f( 1 * TileTexture.TILE_WIDTH, 1 * TileTexture.TILE_HEIGHT));

    // TOP EDGE
    ht.put("DDD" +
         "SSS" +
         "SSS",
        new Vector2f( 0 * TileTexture.TILE_WIDTH, 3 * TileTexture.TILE_HEIGHT));
    ht.put("SDS" +"SSS" +"SSS",new Vector2f( 0 * TileTexture.TILE_WIDTH, 3 * TileTexture.TILE_HEIGHT));

    // corner A
  /*  ht.put( "SSD" +
        "SSD" +
        "SDD",
View Full Code Here

    protected void simpleUpdate() {

        //axisRoot.setLocalTranslation(cam.getWorldCoordinates(new Vector2f(512,384), 0).add(cam.getDirection().mult(0.3f)));

        camPosBall.setLocalTranslation(cam.getLocation().mult(0.001f));
        axisRoot.setLocalTranslation(cam.getWorldCoordinates(new Vector2f(512,384), 0).add(cam.getDirection().mult(0.3f)));
    //    cam.lookAt(new Vector3f(0,0,0), new Vector3f(1,1,0));
    }
View Full Code Here

    @Override
    protected void simpleUpdate() {

        //axisRoot.setLocalTranslation(cam.getWorldCoordinates(new Vector2f(512,384), 0).add(cam.getDirection().mult(0.3f)));

        axisRoot.setLocalTranslation(cam.getWorldCoordinates(new Vector2f(0,0), 0).add(cam.getDirection().mult(0.3f)));
    }
View Full Code Here

     * @return The next Vector2f from the buffer.
     */
    private static Vector2f getVector2f(FloatBuffer buf) {
        float x = buf.get();
        float y = buf.get();
        return new Vector2f(x, y);
    }
View Full Code Here

    /**
     * {@inheritDoc}
     */
    @Override
    public Vector2f getLocation(HUDComponent component) {
        Vector2f location = new Vector2f();

        if ((component != null) && (hudViewMap.get(component) != null)) {
            // get HUD component's view width
            HUDView2D view2d = (HUDView2D) hudViewMap.get(component);
            float compWidth = view2d.getDisplayerLocalWidth();
            float compHeight = view2d.getDisplayerLocalHeight();

            // get the bounds of the HUD containing the component
            int hudX = hud.getX();
            int hudY = hud.getY();
            int hudWidth = hud.getWidth();
            int hudHeight = hud.getHeight();

            // find the center of the HUD
            float hudCenterX = hudX + hudWidth / 2f;
            float hudCenterY = hudY + hudHeight / 2f;

            if ((component.getPreferredLocation() != Layout.NONE) &&
                    (component.getX() == 0) && (component.getY() == 0)) {
                // just for initial placement of objects using compass layout
                switch (component.getPreferredLocation()) {
                    case NORTH:
                        location.set(hudCenterX - compWidth / 2f, hudHeight - MIN_TOP_MARGIN - compHeight);
                        break;
                    case SOUTH:
                        location.set(hudCenterX - compWidth / 2f, MIN_BOTTOM_MARGIN);
                        break;
                    case WEST:
                        location.set(MIN_LEFT_MARGIN, hudCenterY - compHeight / 2f);
                        break;
                    case EAST:
                        location.set(hudWidth - MIN_RIGHT_MARGIN - compWidth, hudCenterY - compHeight / 2f);
                        break;
                    case CENTER:
                        location.set(hudCenterX - compWidth / 2f, hudCenterY - compHeight / 2f);
                        break;
                    case NORTHWEST:
                        location.set(MIN_LEFT_MARGIN, hudHeight - MIN_TOP_MARGIN - compHeight);
                        break;
                    case NORTHEAST:
                        location.set(hudWidth - MIN_RIGHT_MARGIN - compWidth, hudHeight - MIN_TOP_MARGIN - compHeight);
                        break;
                    case SOUTHWEST:
                        location.set(MIN_LEFT_MARGIN, MIN_BOTTOM_MARGIN);
                        break;
                    case SOUTHEAST:
                        location.set(hudWidth - MIN_RIGHT_MARGIN - compWidth, MIN_BOTTOM_MARGIN);
                        break;
                    default:
                        logger.warning("unhandled layout type: " + component.getPreferredLocation());
                        break;
                }
                // offset from the HUD origin
                location.set(location.x + hudX, location.y + hudY);
            } else {
                // just use the component's current location, but constrain the
                // position of the component to fit the bounds of the HUD
                int x = component.getX();
                int y = component.getY();

                if (component.getDecoratable()) {
                    if (x + compWidth < hudX + MIN_LEFT_MARGIN*4) {
                        // allow component to move off left edge, with at least
                        // MIN_LEFT_MARGIN visible (close button visible)
                        x = (int) (hudX + MIN_LEFT_MARGIN*4 - compWidth);
                    } else if (x > hudX + hudWidth - MIN_RIGHT_MARGIN) {
                        // allow component to move off right edge, with at least
                        // MIN_RIGHT_MARGIN visible
                        x = hudX + hudWidth - MIN_RIGHT_MARGIN;
                    }

                    if (y + compHeight < hud.getY() + MIN_BOTTOM_MARGIN) {
                        // allow component to move off bottom edge, with at least
                        // MIN_BOTTOM_MARGIN visible (header visible)
                        y = (int) (hudY + MIN_BOTTOM_MARGIN - compHeight);
                    } else if (y + compHeight > hudY + hudHeight - MIN_TOP_MARGIN) {
                        // do not allow component to move off top of HUD
                        y = (int) (hudY + hudHeight - MIN_TOP_MARGIN - compHeight);
                    }
                } else {
                    // make sure a non-decoratable component is always
                    // completely visible
                    if (x < hudX + MIN_LEFT_MARGIN) {
                        x = hudX + MIN_LEFT_MARGIN;
                    } else if (x + compWidth > hudX + hudWidth - MIN_RIGHT_MARGIN) {
                        x = (int) (hudX + hudWidth - MIN_RIGHT_MARGIN - compWidth);
                    }

                    if (y < hudY + MIN_BOTTOM_MARGIN) {
                        y = hudY + MIN_BOTTOM_MARGIN;
                    } else if (y + compHeight > hudY + hudHeight - MIN_TOP_MARGIN) {
                        y = (int) (hudY + hudHeight - MIN_TOP_MARGIN - compHeight);
                    }
                }
                location.set(x, y);
            }

            if (location.y + compHeight > hudY + hudHeight) {
                // make sure frame header isn't off top of HUD
                location.set(location.x, hudY + hudHeight - MIN_TOP_MARGIN - compHeight);
            }

            Vector2f currentPosition = positionMap.get(component);
            Vector2f newPosition = new Vector2f((location.x - hudX) / hudWidth, (location.y - hudY) / hudHeight);

            if ((currentPosition == null) || (Math.abs(currentPosition.x - newPosition.x) > 0.03) || (Math.abs(currentPosition.y - newPosition.y) > 0.03)) {
                positionMap.put(component, newPosition);
            }
        }
View Full Code Here

TOP

Related Classes of com.jme.math.Vector2f

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.