Package com.sun.j3d.utils.image

Examples of com.sun.j3d.utils.image.TextureLoader


        q.set(1.0f, 1.0f);
        plane.setTextureCoordinate(3, q);

        Appearance appear = new Appearance();

        TextureLoader loader = new TextureLoader(bimage);
        ImageComponent2D image = loader.getImage();

        if (Debug.debugging("3d")) {
            Debug.output("MapContent: image height: " + image.getHeight()
                    + ", width: " + image.getWidth());
        }
View Full Code Here


        if(changed){
            if(value instanceof File){
                File newFile=(File)value;
                try{
                    TextureLoader tex = new TextureLoader(newFile.getAbsolutePath(), null);
                    setTexture(tex.getTexture());
                    _object.getTexture().setUserData(newFile);
                }catch (Exception e) {
                    String emsg=e.getLocalizedMessage();
                    if(emsg==null){
                        emsg=e.getMessage();
View Full Code Here

          textureImage = ImageIO.read(textureImageUrl);
        } catch (IOException ex) {
          // Ignore images at other format
        }
        if (textureImage != null) {
          TextureLoader textureLoader = new TextureLoader(textureImage);
          Texture texture = textureLoader.getTexture();
          // Keep in user data the URL of the texture image
          texture.setUserData(textureImageUrl);
          currentAppearance.setTexture(texture);
        }
      } else {
View Full Code Here

    BufferedImage image = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);
    Graphics g = image.getGraphics();
    g.setColor(color);
    g.drawLine(0, 0, 0, 0);
    g.dispose();
    Texture texture = new TextureLoader(image).getTexture();
    texture.setCapability(Texture.ALLOW_IMAGE_READ);
    texture.setCapability(Texture.ALLOW_FORMAT_READ);
    texture.getImage(0).setCapability(ImageComponent2D.ALLOW_IMAGE_READ);
    texture.getImage(0).setCapability(ImageComponent2D.ALLOW_FORMAT_READ);
    return texture;
View Full Code Here

    }           
    final Texture texture;
    if (image == null) {
      texture = errorTexture;
    } else {
      texture = new TextureLoader(image).getTexture();
      // Keep in user data the URL of the texture image
      if (content instanceof URLContent) {
        texture.setUserData(((URLContent)content).getURL());
      }
    }
View Full Code Here

      if ("init_from".equals(name)) {
        try {
          URL textureImageUrl = new URL(baseUrl, getCharacters());
          BufferedImage textureImage = ImageIO.read(textureImageUrl);
          if (textureImage != null) {
            TextureLoader textureLoader = new TextureLoader(textureImage);
            Texture texture = textureLoader.getTexture();
            // Keep in user data the URL of the texture image
            texture.setUserData(textureImageUrl);
            this.textures.put(this.imageId, texture);
          }
        } catch (IOException ex) {
View Full Code Here

      Sphere.GENERATE_NORMALS_INWARD |
      Sphere.GENERATE_TEXTURE_COORDS, 50);
       
    Appearance backgroundApp = S.getAppearance();
    backGeoBranch.addChild(S);
    TextureLoader tex=null;
    if(!fname.startsWith("http://"))
      tex = new TextureLoader(fname,this);
    else {
      try {
        tex=new TextureLoader(new java.net.URL(fname),this);
      }
      catch(Exception e) {
      }
    }
    if (tex != null) backgroundApp.setTexture(tex.getTexture());
    bg.setGeometry(backGeoBranch);
    objTrans.addChild(bg);
    objRoot.addChild(objTrans);
  }
View Full Code Here

    Shape3D getArtilleryTarget(int type) {
        return getModel(tileManager.getArtilleryTarget(type), .5f, false);
    }
   
    public Texture2D getTexture(String filename) {
        TextureLoader tl = new TextureLoader(filename, TextureLoader.GENERATE_MIPMAP, null);
        Texture2D tex = (Texture2D)tl.getTexture();
        tex.setMagFilter(Texture.NICEST);
        tex.setMinFilter(Texture.NICEST);
        return tex;
    }
View Full Code Here

                        wr.setSample(x, y, 0, alpha*wr.getSampleFloat(x, y, 0));
                }
            }

            // Finally create actual texture
            TextureLoader tl = new TextureLoader(src, TextureLoader.GENERATE_MIPMAP);
            tex = (Texture2D)tl.getTexture();
            tex.setMagFilter(Texture.NICEST);
            tex.setMinFilter(Texture.NICEST);

            if (tileManager.isLoaded()) textureCache.put(new ImageAlpha(base, alpha), tex);
        }
View Full Code Here

   */
  private void initTextureCalibree(DocumentKarto docK){
    try{
      if ((docK==null)||(docK.getCarteFileName()==null)){
        //System.err.println("Erreur : Probl�me lors de l'initialisation de la texture calibr�e");
        earth = new TextureLoader(new java.net.URL("file:/nofile"), this).getTexture();
        return;
      }      else if (!docK.isCalibrated()){   
        earth = new TextureLoader(new java.net.URL("file:"+((docK.getCarteFileName().charAt(0)=='/')?"":"/")+docK.getCarteFileName()), this).getTexture();
        return;
      }

      // rectangle englobant la texture dont les positions sont calibr�es
      Rectangle2 rect=MathUtil.getEnglobingRect(docK.getProjection(),0,0,
                            docK.getLignesDeNiveaux().getXMax()-1,docK.getLignesDeNiveaux().getYMax()-1);
   
      System.out.println("RectangleTexture : "+rect);
      System.out.println("RectangleMNT : "+landMNT.getX1()+" "+landMNT.getY1()+" "+landMNT.getX2()+" "+landMNT.getY2());
   
      MediaTracker monTracker = new MediaTracker(this);
      Image img=Toolkit.getDefaultToolkit().getImage(docK.getCarteFileName());
      monTracker.addImage(img,0);   
      try
        monTracker.waitForID(0);
      }catch(InterruptedException e) {
        System.out.println("Exception : " + e.toString());
      }

      Image imageTexture;
     
      // rectangle � s�lectionner dans la texture
      double rx=Math.max(landMNT.getX1(),rect.x1);
      double ry=Math.max(landMNT.getY1(),rect.y1);
      double rw=Math.min(landMNT.getX2(),rect.x2)-rx;
      double rh=Math.min(landMNT.getY2(),rect.y2)-ry;
   
      //System.out.println("RectangleTexture1' : "+rx+" "+ry+" "+rw+" "+rh);
      //System.out.println("Taille image : "+img.getWidth(this)+"x"+img.getHeight(this));
   
      // on transforme les coordonn�es sur la carte en pixel dans l'image
   
      int x=(int)((rx-rect.x1)*img.getWidth(this)/(rect.x2-rect.x1));
      int y=(int)((ry-rect.y1)*img.getHeight(this)/(rect.y2-rect.y1));
      int w=(int)(rw*img.getWidth(this)/(rect.x2-rect.x1));
      int h=(int)(rh*img.getHeight(this)/(rect.y2-rect.y1));
     
      System.out.println("RectangleTexture2 : "+x+" "+y+" "+w+" "+h);
 
 
      if ((w>0) && (h>0)){
        // pixels contenant les donn�es de la texture
        int[] pixels = new int[(int)(w * h)];
        PixelGrabber pg = new PixelGrabber(img, x, y, w, h, pixels, 0, w);
        try {
          pg.grabPixels();
        } catch (InterruptedException e) {
          System.err.println("interrupted waiting for pixels!");
          return;
        }
        if ((pg.getStatus() & ImageObserver.ABORT) != 0) {
          System.err.println("image fetch aborted or errored");
          return;
        }
       
        // si le MNT se trouve dans la texture, c'est bon
        if ((landMNT.getX1()>rect.x1)&&(landMNT.getY1()>rect.y1)&&(landMNT.getX2()<rect.x2)&&(landMNT.getY2()<rect.y2)){
          imageTexture = Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(w, h, pixels, 0, w));
     
        }else{
          // calcul de la taille de la texture calibr�e finale
          int tailleW=(int)((landMNT.getX2()-landMNT.getX1())*w/rw);
          int tailleH=(int)((landMNT.getY2()-landMNT.getY1())*h/rh);
          int[] pixelsTex = new int[tailleW*tailleH];
         
          // dialog bouche-trou
          BoucheTrouDialog bchTrou=new BoucheTrouDialog();
     
          // tant qu'on n'a pas une r�ponse, on attend
          while (!bchTrou.isGood());
         
          // si l'utilisateur a choisi la couleur
          if (bchTrou.choiceIsColor()){
            // on remplit le tableau de la couleur
            Arrays.fill(pixelsTex,bchTrou.getCouleurBC().getRGB());
          }else{
            // sinon l'utilisateur a choisi la texture
            // on r�cup�re la texture d�finie par l'utilisateur
            Image imgBT=Toolkit.getDefaultToolkit().getImage(bchTrou.getNomFichier());
            monTracker.addImage(imgBT,1);   
            try
              monTracker.waitForID(1);
            }catch(InterruptedException e) {
              System.out.println("Exception : " + e.toString());
            }

            // on transforme l'image en un tableau
            int[] pixelsBT=new int[imgBT.getWidth(this)*imgBT.getHeight(this)];
     
            //System.out.println("W : "+imgBT.getWidth(this)+" H : "+imgBT.getHeight(this)+" L : "+pixelsBT.length);

            pg = new PixelGrabber(imgBT, 0, 0, imgBT.getWidth(this), imgBT.getHeight(this), pixelsBT, 0, imgBT.getWidth(this));
            try {
              pg.grabPixels();
            } catch (InterruptedException e) {
              System.err.println("interrupted waiting for pixels!");
              return;
            }
            if ((pg.getStatus() & ImageObserver.ABORT) != 0) {
              System.err.println("image fetch aborted or errored");
              return;
            }
   
            // on remplit notre tableau de texture avec la texture r�cup�r�e
            // que l'on r�p�te au bord
            for(int i=0;i<tailleW;i++){
              for (int j=0;j<tailleH;j++){       
                pixelsTex[i+tailleW*j]=pixelsBT[(i%imgBT.getWidth(this))+imgBT.getWidth(this)*(j%imgBT.getHeight(this))];
              }
            }
          } // else du if (bchTrou.choiceIsColor())
          // on r�cup�re la m�moire
          bchTrou.dispose();
     
          // indice o� l'on doit commencer � remplir la texture
          int debX=(int)((Math.max(rect.x1,landMNT.getX1())-landMNT.getX1())*w/rw);
          int debY=(int)((Math.max(rect.y1,landMNT.getY1())-landMNT.getY1())*h/rh);
           
          // remplissage
          for(int i=0;i<w;i++){
            for (int j=0;j<h;j++){
              pixelsTex[(debX+i) + (debY+j)*tailleW]=pixels[i+w*j]
            }
          }
          // on cr�e l'image � partir du tableau
          imageTexture = Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(tailleW, tailleH, pixelsTex, 0, tailleW));
           
        } // else de if ((landMNT.getX1()>rect.x1)&&(landMNT.getY1()>rect.y1)&&(landMNT.getX2()<rect.x2)&&(landMNT.getY2()<rect.y2)){
      }else{
        // else du if ((w>0) && (h>0)){
        imageTexture = createImage(16,16);
      }
      // taille de la texture finale calibr�e
      // (le TextureLoader ne fonctionne pas si les textures qu'on lui donne
      //  sont trop grandes ou bien si elles ne sont pas assez carr�)
      int newWidth=512;
      int newHeight=512;
 
      // retaillage de l'image � la nouvelle taille
      BufferedImage resizedImage = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_RGB);
      Graphics2D graphics2D = resizedImage.createGraphics();
      graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
      graphics2D.drawImage(imageTexture, 0, 0, newWidth, newHeight, null);
 
//System.out.println("Visu3DkartoMNT : resize image taille "+imageTexture.getHeight(null)+"x"+imageTexture.getWidth(null)+" sur taille : "+resizedImage.getHeight()+"x"+resizedImage.getWidth());
      // on affiche l'image et on demande a l'utilisateur s'il veut sauver
      Object[] options2 = {ResourceManager.get("OkKey"),ResourceManager.get("save")};
      int value = JOptionPane.showOptionDialog(this, "", ResourceManager.get("TextureMNT"),
      JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,
      new ImageIcon(resizedImage),options2,options2[0]);

      if (value==JOptionPane.NO_OPTION) {
        enregistreImage(resizedImage);
      }
    //GFE??  imageTexture=img_ico;
      // on charge la texture
      earth = new TextureLoader(resizedImage).getTexture();

    } catch (Exception e){
      //System.out.println("Land texture init error: "+e.getMessage());
      e.printStackTrace();
      JOptionPane.showMessageDialog(null,ResourceManager.get("errorTexMNT"),ResourceManager.get("error"),JOptionPane.WARNING_MESSAGE);     
View Full Code Here

TOP

Related Classes of com.sun.j3d.utils.image.TextureLoader

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.