See site in english Voir le site en francais
Website skin:
home  download  forum  link  contact

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

Author Topic: Mes questions sur VC++ 2005  (Read 23805 times)

0 Members and 1 Guest are viewing this topic.

Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #75 - 25 September 2010, 20:44:05
J'ai essayé avec
Code: [Select]
vs.rvel += crossp(_V(0, 0.01, 0), vs.rvel); Mais il va beaucoup trop loin (je ne lui rajoute que 0.01 m/s) et, surtout, son vecteur dépend encore de mon orientation... :sad:.


Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #76 - 25 September 2010, 20:48:49
Quote
En gros, j'aimerais savoir comment créer un vecteur de déplacement relativement à mon vaisseau.

D'abord , est-ce que c'est la bonne formulation ?
:wonder:
Qu'est-ce qu'un déplacement ?
En psychanalyse :
Code: [Select]
Le déplacement est un mécanisme de défense du moi. Il s'agit d'un mouvement de l'affect d'une représentation à une autre. ...J'imagine que ce n'est pas ce cas de figure qui t'intéresse ? :badsmile:
Donc :
Quote
L'addition des vecteurs de déplacement
 
Les déplacements qui se font le long d'une même droite sont appelés des «déplacements colinéaires». Ils peuvent aller dans le même sens (parallèles) ou dans le sens opposé (antiparallèles). L'addition de déplacements colinéaires peut se faire graphiquement ou mathématiquement.

Prends le temps de réfléchir à cette déclaration .
Pourrais-tu l'utiliser dans ton cas ?
Si oui , comment ?
D'abord , regardes ce dont tu disposes :
D'une position de tes modules , d'une direction ( l'orientation de l'axe xyz ) .

Ton problème est que tu veux que ton module conserve son attitude ( orientation ) tout en adoptant un déplacement
représenté mathématiquement par un vecteur , orienté différemment ( comme une normale ?) au plan de déplacement du vaisseau ..

Quelle sera l'orientation de ce nouveau vecteur , et comment la calculer ?
Quelle fonction mathématique contenue dans le SDK d'Orbiter peut t'aider pour ce résultat ?
Connais-tu l'angle caractérisant la différence d'orientation de l'ancien et du nouveau vecteur ?
Et si tes modules sont répartis symétriquement de chaque coté de l'axe centrel du vaisseau , leurs vecteurs de déplacement seront contraires .

Pour résoudre une équation , nous avons besoin de toutes les composantes connues .
Je n'en sais pas assez sur ton projet .
Eclaire moi !
;)


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #77 - 25 September 2010, 20:58:43
Quote
et, surtout, son vecteur dépend encore de mon orientation...

Nouveau besoin , plus précis !
Donc , tu veux bien créer un vecteur pour chacun de tes modules , par rapport à un angle donné ( fixé par toi ) le différenciant du vecteur d'orientation de son plan d'origine ( le vaisseau ) .

Je crois que l'outil adéquat , c'est la matrice !
Elle combine une succéssion d'opérations pour un résultat attendu .
Malheureusement , je butte encore sur leur emploi , qui est pourtant la pierre d'angle de tout calcul 3D .
C'est possible de se passer des matrices , mais pas des opérations de vecteurs !
D'où mon propos de bien intégrer les Vecteurs pour être capable en suite d'interpréter les calculs matriciels .
Je vais voir ce que je peux faire ( ou plutôt ce que je peux trouver :badsmile: ) à ce sujet .

Faire tourner un vecteur sur son axe de (delta) degrés pour qu'il devienne un nouveau vecteur pour un nouvel objet .
Ouf ... C'est la formulation qui est le plus pénible !
 :music:


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #78 - 25 September 2010, 21:06:33
Pour résumé, je veux créé une séparation de quelque chose top secret sur l'axe des x de mon vaisseau. La manière que j'ai trouvé, c'est d'ajouter de la vitesse sur l'axe des x du module qui se sépare. Mais, en faisant ainsi, le déplacement n'est pas dans l'axe des x de mon vaisseau mère, mais de celui de la planète de référence.


Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline Alexandre

  • Legend
  • ******
  • Posts: 1600
  • Country: France fr
  • Karma: 5
Reply #79 - 25 September 2010, 21:20:27
Quote
Pour résumé, je veux créé une séparation de quelque chose top secret

Je confirme ^^ je suis pas au courant, je vais m'informé :ptdr:


-----------------------
Alexandre
Orbiter sur Windows 8, ça fonctionne !
Ma chaine Youtube:
http://www.youtube.com/user/AlexBadsmile?feature=mhee

Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #80 - 25 September 2010, 21:21:40
Personne est au courant à part moi. J'attend de voir si je suis capable. Je ne veux pas créer de faux espoirs.
:eek:


Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #81 - 25 September 2010, 21:31:28

" Prenez garde à la manière dont vous écoutez " . Conseil de sagesse .
" Ne persiste pas dans ton entêtement exécrable , ce n'est pas ainsi que tu réussiras " . Idem

Valable pour chacun de nous .
Un déplacement psychanalytique , en attendant la réponse ?
if you listen carefully , now you will hear

Je dois faire l'expérience chez moi , avant d'être capable de te venir en aide .
C'est une chose que j'ai à faire pour moi , de toute façon , alors autant la faire ensemble .
Pour le "secret" , j'ai bien une petite idée ... mais chut !


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline pilote334

  • Sr. Member
  • ****
  • Posts: 300
  • Karma: 5
Reply #82 - 25 September 2010, 21:49:20
En fait pour l'éloignement de ton vaisseau enfant, tu peux te baser sur l'axe d'orientation du vaisseau mère (GetGlobalOrientation()) que tu peux récupérer. Cette donnée + la donnée vecteur vitesse = déplacement opposé dans l'axe ! Bingo !

A noter qu'il existe aussi "SetGlobalOrientation()" pour ton vaisseau fille. Youppee, tes références sont les mêmes donc l'orientation de l'un par rapport à l'autre est la même....

Yves



Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #83 - 25 September 2010, 23:11:59
Quote
void VESSEL::GetRotationMatrix  ( MATRIX3 &  R   )  const

Returns the current rotation matrix for transformations from the vessel's local frame of reference to the global frame.


Parameters:
 R  rotation matrix  // que tu fournis vide , qui revient remplie par la fonction

Note:
To transform a point rlocal from local vessel coordinates to a global point rglobal, the following formula is used:
rglobal = R rlocal + pvessel,
where pvessel is the vessel's global position.
This transformation can be directly performed by a call to Local2Global.

Cette méthode te permet d'obtenir la matrice que j'évoquais précédemment .
A quoi sert-elle et comment l'utiliser ?
En utilisant cette fonction par exemple , sur ton objet à séparer .
Mais la matrice doit-être configurée...


Code: [Select]
void VESSEL::SetRotationMatrix  ( const MATRIX3 &  R   )  const

Applies a rotation by replacing the vessel's local to global rotation matrix.


Parameters:
 R  rotation matrix  

Note:
The rotation matrix maps from the orientation of the vessel's local frame of reference to the orientation of the global frame (ecliptic at 2000.0).
The user is responsible for providing a valid rotation matrix. The matrix must be orthogonal and normalised: the norms of all column vectors of R must be 1,
and scalar products between any column vectors must be 0.



Une meilleure solution ?
Tu as :

Code: [Select]
void VESSEL::GlobalRot  ( const VECTOR3 &  rloc,  
  VECTOR3 &  rglob  
 )   const

Performs a rotation of a direction from the local vessel frame to the global frame.


Parameters:
[in]  rloc  point in local vessel coordinates  
[out]  rglob  rotated point  

Note:
[b]This function is equivalent to multiplying rloc with the rotation matrix returned by GetRotationMatrix.
Should be used to transform directions.[/b] To transform points, use Local2Global, which additionally adds the vessel's global position to the rotated point.

A+



Message modifié ( 25-10-2010 03:59 )

Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #84 - 25 September 2010, 23:47:16

J'essaie de me mettre à ta place , j'arrive à me rappeler du temps où je n'avais aucune notion concernant le cercle ,
le centre , les point définis par le centre du cercle , l' angle , et le rayon .
Cette culture mathématique est INDISPENSABLE dans bien des domaines , encore plus dans le notre : la représentation
dans l'espace d'évènements physiques et mobiles définis dans le temps .

La plupart d'entre nous aimons Orbiter car il nous permet ( outre son aspect ludique) de faire l'expérience de la Vérité
que l'on perçoit ( physique) au travers d'un calculateur qui va se charger pour nous de répéter inlassablement ( hors CTD) les mêmes opérations mathématiques que nous ne comprenions pas , sans champ d'action ( Domaine d'application).

Le ciel a longtemps été une énigme pour l'homme , mais à force d'observation , il a réussi à imiter ce que font naturellement les oiseaux , voler .
D'une manière empirique , certaines expériences ont permis de faire quelques vols , mais les accidents n'étaient pas rares .

L'Espace est un nouveau défi à l'esprit de l'homme , et outre les étoiles , il n'y a pas beaucoup de références .
Orbiter est un défi aussi pour un programmeur , car même si son auteur a pensé à fournir des outils " tout prêt " ,
nous devons d'abord les saisir ( prendre en main) , comprendre pour quelle raison ils existent et enfin les utiliser .
C'est mon approche à moi du problème , celle par laquelle je sais que ce que je fais ici n'est pas vain .

J'espère que je ne t'ennuie pas trop avec mes réflexions personnelles .
:badsmile:
Un petit lien culturel :
http://www.mathsgeo.net/rep/conv.html#angle

A+


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #85 - 26 September 2010, 01:36:35
Je crois avoir trouvé une solution :

Quote
AddForce
Add a custom body force.
Synopsis:
void AddForce (const VECTOR3 &F, const VECTOR3 &r) const
Parameters:
F force vector [N]
r force attack point [m]
Notes:
·  This function can be used to implement custom forces (braking chutes,
tethers, etc.). It should not be used for standard forces such as engine thrust
or aerodynamic forces which are handled internally (although in theory this
function makes it possible to bypass Orbiter's built-in thrust and
aerodynamics model completely and replace it by a user-defined model).
·  The force is applied only for the next time step. AddForce will therefore
usually be used inside the VESSEL2::clbkPreStep callback function.

Ça marche sauf que la force est générée au vaisseau mère, alors que je veux que se soit le vaisseau fille qui recoive la force. Any suggestions ?


Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #86 - 26 September 2010, 01:41:39

Ben déjà bravo pour ton astuce !
Je voulais dire ton bon sens .
Trouver un moyen ( un pointeur ? ) d'appliquer cette force sur la fille ...
Je ne connaissais pas cette fonction , je vais voir dans le SDK .
Bonne information !  :top:
A+


Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #87 - 26 September 2010, 01:51:34
Ok .
Dans le sens où tu veux aller , je dirais :

Tu utilises une fonction qui crée un vaisseau fille , qui te renvoie un Handle que tu ne conserves pas .
Si tu le conservais , tu pourrais avoir accès à ses propres fonctions .


OAPIFUNC OBJHANDLE oapiCreateVessel  ( const char *  name,  
  const char *  classname,  
  const VESSELSTATUS &  status  
 )

Tu conserves le Handle pour construire une interface VESSEL :
OBJHANDLE monHandle ; ( voir exemple en bas)

Code: [Select]
VESSEL::VESSEL  ( OBJHANDLE  hVessel,  
  int  fmodel = 1  
 )    

Creates a VESSEL interface instance from a vessel handle.


Parameters:
 hVessel  vessel handle  
 fmodel  level of realism requested (0=simple, 1=realistic)  

Note:
This function creates an interface to an existing vessel. It does not create a new vessel.
 New vessels are created with the oapiCreateVessel and oapiCreateVesselEx functions.
The VESSEL constructor (or the constructor of a derived specialised vessel class) will normally be
invoked in the ovcInit callback function of a vessel module:

 class MyVessel: public VESSEL
 {
     // MyVessel interface definition
 };

 DLLCLBK VESSEL *ovcInit (OBJHANDLE hvessel, int flightmodel)
 {
     return new MyVessel (hvessel, flightmodel);
 }

 DLLCLBK void ovcExit (VESSEL *vessel)
 {
     delete (MyVessel*)vessel;
 }

The VESSEL interface instance created in ovcInit should be deleted in ovcExit.


Essaye pour voir :
VESSEL * bibimodule = new VESSEL ( monHandle ) ;
Ainsi , tu disposes d'un pointeur global sur ton module , et tu as accès à ses fonctions .
J'espère que çà va marcher !
C'est une possibilité , il en existe d'autres .
Au boulot !
:badsmile:



Message modifié ( 25-10-2010 03:58 )

Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #88 - 26 September 2010, 01:54:45
J'ai réussi !

J'ai fait une recherche Google (n'ayant pas lu ton dernier post, car j'étais déconnecté du fofo), et je suis tombé sur : http://orbiter-forum.com/showthread.php?t=17376

La réponse de Glider m'a vraiment aidé. J'ai maintenant un vaisseau fille qui se détache d'un vaisseau mère !

:merci: pour votre aide Spocky et Pilote334 !


Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #89 - 26 September 2010, 01:58:29
:applause:;):applause:

Pour le dessert :

OBJHANDLE monHandle ;

HANDLE traduit en français donnerait " poignée " .
OBJHANDLE se traduit donc par Poignée de l'Objet .
Je dis çà pour les non-Canadiens et les billes en Anglais .
Ben ouais !
C'est un langage logique , mais anglois !

A+



Message modifié ( 26-09-2010 02:15 )

Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline pilote334

  • Sr. Member
  • ****
  • Posts: 300
  • Karma: 5
Reply #90 - 26 September 2010, 03:54:03
En fait OBJHANDLE représente l'identifiant unique de ton vaisseau (mère, fille...etc...). Tu connais son nom, alors tu peux connaitre son handle par la fonction "oapiGetObjectByName(char *name)". Et si tu connais son handle, alors tu peux faire ce que tu veux, quelquesoit le vaisseau choisi...

Yves



Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #91 - 26 September 2010, 15:15:33
La magnifique SDK d'Orbiter :love:


Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #92 - 25 October 2010, 03:39:32
Fallait bien que je le ressorte un jour (le post de l'éternité :badsmile: )

Encore pour ma création fantôme (qui sera sûrement bientôt annoncée, j'attend l'autorisation de l'auteur...), je dois ouvrir une boîte de dialogue d'Orbiter (comme celle dans IMFD quand on sélectionne une planète de destination ou autre). Mais voilà, je ne comprend pas l'API, et mon manque de connaissances C++ ne m'aide pas non plus. Je cite l'API_Reference 2006 en page 224-225 :

Quote
oapiOpenInputBox
Opens a modal input box requesting a string from the user.

Synopsis:
void oapiOpenInputBox (
char *title,
bool (*Clbk)(void*,char*,void*),
char *buf = 0,
int vislen = 20,
void *usrdata = 0)

Parameters:
title input box title
Clbk callback function receiving the result of the user input (see notes)
buf initial state of the input string
vislen number of characters visible in input box
usrdata user-defined data passed to the callback function

Notes:
·  Format for callback function:
bool InputCallback (void *id, char *str, void *usrdata)
where id identifies the input box, str contains the user-supplied string, and
usrdata contains the data specified in the call to oapiOpenInputBox.
The callback function should return true if it accepts the string, false
otherwise (the box will not be closed if the callback function returns false).
·  The box can be closed by the user by pressing Enter (“OK”) or Esc
(“Cancel”). The callback function is only called in the first case.
·  The input box is modal, i.e. all keyboard input is redirected into the dialog
box. Normal key functions resume after the box is closed.

C'est le paramètre 3 que je ne comprend pas. Qu'est-ce qu'il faut mettre là ? Une fonction ? Si c'est le cas, à quoi elle doit ressembler ?



Message modifié ( 25-10-2010 03:40 )

Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #93 - 25 October 2010, 03:56:34
Salut Bibi !
Cette fonction est une fonction Callback .
Pilote334 m'avait aidé sur ce point en mp .

Message de Pilote334 :
Code: [Select]
bonjour Spock,

1- déclarer un fonction comme celle-ci :

bool OutAddr (void *id, char *str, void *data)
{
    sprintf(dts1.addrout,"%s",str);
return 1;
}


ensuite, dans le "consume_buttons",

if (bt==0)
{
oapiOpenInputBox ("Enter IP address :", OutAddr, 0, 15, (void*)this);


}


pour moi, dts1.addrout représente la variable de réception de ce que l'utilisateur rentre...

bonne utilisation

Yves

J'ai réussi à faire fonctionner ma boite en suivant son conseil , aprés quelques manips ...
Remplacer "dts1.addrout" par "bibidata" , avec char bibidata [50] par exemple;
sprintf copiera le contenu de str dans bibidata.
Si tu n'y arrives pas , je te posterais un exemple fonctionnel issu de CityDesigner .
A+



Message modifié ( 25-10-2010 04:05 )

Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline MrSpock

  • Legend
  • ******
  • Posts: 1593
  • Karma: 0
Reply #94 - 25 October 2010, 09:10:28
En cadeau bonus , un extrait de code utilisant SAPI ( text to speech) qui permet
en quelques lignes de faire parler ton programme .
Démo :

Code: [Select]
#include "stdafx.h"
#include "stdio.h"
#include

int _tmain(int argc, _TCHAR* argv[])
{
ISpVoice * pVoice = NULL;

    if (FAILED(::CoInitialize(NULL)))
        return FALSE;

    HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
    if( SUCCEEDED( hr ) )
    {
      pVoice->Speak(L"Coucou BiBi Uncle!!", 0, NULL);
      pVoice->Release();
      pVoice = NULL;

    }
    ::CoUninitialize();

return 0;
}

J'ai trouvé une voix française ( virginie ) , qui rend très bien .
Je pense l'utiliser dés à présent dans mes programmes .
A+



Message modifié ( 25-10-2010 09:11 )

Mr Spock ,
Consultant de VULCAN TECH INDUSTRY.
( et accessoirement chatouilleur de PLAYMOBILS@tm )
http://kenai.com/projects/spacetechs-mecanos

Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #95 - 25 October 2010, 23:29:34
J'ai cette erreur lorsque je compile ce code :
Code: [Select]
error C3867: &'ProjetSecret::FonctionSecrete' : liste d'arguments manquante dans l'appel de fonction ;
utilisez 'ProjetSecret::FonctionSecrete' pour créer un pointeur vers membre

Code: [Select]
case OAPI_KEY_U:
       oapiOpenInputBox ("ENTER SECRET THING", FonctionSecrete, 0, 25, (void*)this);
       break;

Code: [Select]
bool ProjetSecret::FonctionSecrete (void *id, char *str, void *data)
{
char string[50];
sprintf(string,"%s",str);
return 1;
}



Message modifié ( 25-10-2010 23:31 )

Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #96 - 26 October 2010, 00:38:20
TROUVÉ !
La fonction ne doit pas appartenir à la classe, donc, pas de ProjetSecret:: au début. C'est une fonction "globale".

:merci: Spocky et Pilote443 (indirectement :badsmile: )

:wor:



Message modifié ( 26-10-2010 01:15 )

Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline tofitouf

  • Legend
  • ******
  • Posts: 1380
  • Karma: 0
Reply #97 - 26 October 2010, 09:41:38
tu peux utiliser aussi le c++ mais il faut alors que tu déclare ta focntion comme statique

dans ton .h
Code: [Select]
class ProjetSecret
{
public:
    [b]static[/b] bool FonctionSecrete (void *id, char *str, void *data);


}

Dans cette fonction tu peux appeler que des autres fonctions statiques de la classes ou manipuler les membres statiques.


---------------------------------------------

PC en rade, codage en panne.... Nom de Zeus

Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #98 - 26 October 2010, 23:11:20
Hmm... static, je prend ça en note.

Merci Tofitouf ! :)


« Last Edit: 26 October 2010, 23:11:20 by Bibi Uncle »
Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon