Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2012-10-24 14:12:46 Nouvelle version processing... nouveaux problèmes?

Malleat
membre
Date d'inscription: 2012-04-15
Messages: 148
Site web

Nouvelle version processing... nouveaux problèmes?



Bonjour a tous

J'essais d'utiliser ceci, pour créer une fenêtre d'importation (que je vais raccorder a un bouton cp5) mais cela me dit que "selectInput(string,string) is not avaible for the argument... etc

Je vous le copie ici (il n'est pas long):

PImage img;

void setup() {
  size(600, 600);
}

void draw() {
  if (img!=null) image(img, 0, 0);
}
void mousePressed() {
  String loadPath = selectInput();  // Opens file chooser
  if (loadPath == null) {
    // If a file was not selected
    println("No file was selected...");
  } 
  else {
    // If a file was selected, print path to file
    println(loadPath);
    if(loadPath.substring(loadPath.length()-4).equals(".jpg")) img=loadImage(loadPath);
  }
}

Je ne comprend pas...


Deuxième point, J'essais d'utiliser l'importeur OBJ (saito obj loader), et la en utilisant le code suivant j'ai un problème sur la ligne " hint( ENABLE_OPENGL_4X_SMOOTH ); ". Apparement ça ne calcul pas l'ONPENGL? J'utilise la version 2b3 de processing pour info.

import javax.media.opengl.*; 
import processing.opengl.*;
import objimp.*;

float aspectRatio = 1;

ObjImpScene scene2;


void setup()
{
  size( 800, 600, OPENGL );

  aspectRatio = width / (float)height;

  hint( ENABLE_OPENGL_4X_SMOOTH );
  smooth();

  frameRate( 60 );

  scene2 = new ObjImpScene( this );
  scene2.load( dataPath("sponza.obj"), 5 );
//  scene2.load( dataPath("spheres.obj"), .5 );
}



void draw()
{
  float time = millis() * 0.001;

  background( 0.4*255 );
  perspective( PI*.25, aspectRatio, 1, 1000 );
//  camera( 10, -10, 10, 0, 0, 0, 0, 1, 0 );  
  camera( 0, -3, 0, -2*cos(time*.5), sin(time)*2-3, -2*sin(time*.5), 0, 1, 0 );//cam_pos.x, cam_pos.y, cam_pos.z, cam_tar.x, cam_tar.y, cam_tar.z, cam_up.x, cam_up.y, cam_up.z ); 
  
  // setup light. to do correct lighting you need to set it before any world transformations
  GL _gl = ((PGraphicsOpenGL)g).beginGL();
  setupLight( _gl, new float[]{0, 15, 0}, 1 );
  ((PGraphicsOpenGL)g).endGL(); 

  scale( 1, -1, 1 );  // make y axis points up

  
//  translate( 0, -10, 0 );
  rotateY( radians(mouseX) );
  
  scene2.draw();  
}




// val is 0 or 1. 0 = directional light, 1 = point light
void setupLight( GL g, float[] pos, float val )
{
  float[] light_emissive = { 0.0f, 0.0f, 0.0f, 1 };
  float[] light_ambient = { 0.0f, 0.0f, 0.0f, 1 };
  float[] light_diffuse = { 1.0f, 1.0f, 1.0f, 1.0f };
  float[] light_specular = { 1.0f, 1.0f, 1.0f, 1.0f };  
  float[] light_position = { pos[0], pos[1], pos[2], val };  

  g.glLightfv ( GL.GL_LIGHT1, GL.GL_AMBIENT, light_ambient, 0 );
  g.glLightfv ( GL.GL_LIGHT1, GL.GL_DIFFUSE, light_diffuse, 0 );
  g.glLightfv ( GL.GL_LIGHT1, GL.GL_SPECULAR, light_specular, 0 );
  g.glLightfv ( GL.GL_LIGHT1, GL.GL_POSITION, light_position, 0 );  
  g.glEnable( GL.GL_LIGHT1 );
  g.glEnable( GL.GL_LIGHTING );
  
  g.glEnable( GL.GL_COLOR_MATERIAL );
}  




void stop()
{
  super.stop();
}

SITE WEB ->REVŒLUTION

Hors ligne

 

#2 2012-10-24 14:14:04 Re : Nouvelle version processing... nouveaux problèmes?

Malleat
membre
Date d'inscription: 2012-04-15
Messages: 148
Site web

Re: Nouvelle version processing... nouveaux problèmes?



Je précise, a part le simplifier, je n'ai absolument pas modifier le code que j'ai trouver dans les librairies et le wiki !!!


SITE WEB ->REVŒLUTION

Hors ligne

 

#3 2012-10-24 20:00:10 Re : Nouvelle version processing... nouveaux problèmes?

oyster_twiter
membre
Lieu: saint-herblain
Date d'inscription: 2008-04-01
Messages: 444
Site web

Re: Nouvelle version processing... nouveaux problèmes?



salut,

dans la liste des modifs du nouveau P5 il y a:

citation :

selectInput(), selectOutput(), and selectFolder() have all been modified. The old versions have been removed because they were problematic. The new versions use a callback scheme, meaning that you provide the name of a function that will be called after a file has been selected. This is because the file chooser window must operate in a separate thread from the rest of your sketch. The new methods are:

void selectInput(String prompt, String callback);
void selectInput(String prompt, String callback, File file);
void selectInput(String prompt, String callback, File file, Object callbackObject);

An example of using selectInput is below.

void setup() {
  selectInput("Select a file to process:", "fileSelected");
}

void fileSelected(File selection) {
  if (selection == null) {
    println("Window was closed or the user hit cancel.");
  } else {
    println("User selected " + selection.getAbsolutePath());
  }
}

Passing in a File object will provide a default file to be used. Passing in a callbackObject allows you to call a method in a class other than your primary sketch.

c'est mis à jour dans la page reference :

http://www.processing.org/reference/selectInput_.html

À première vue tu ne peux plus utiliser selectInput() sans arguments entre parenthèses...
J'ai l'impression que la page pour hint() a été modifiée également :
http://www.processing.org/reference/hint_.html

les pages du wiki n'ont surement pas été modifiée, tu peux peut être faire remonter le problème ?
+++

Dernière modification par oyster_twiter (2012-10-24 20:01:19)

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024