Bonjour,
Comment peut-on définir le type de données d'une variable ?
Et existe-t-il la possibilité de faire des macro en coffee ?
Salut,
si je ne dis pas de bêtises en coffee on ne défini pas le type de donnés. Le typage est dynamique. Comme en python vivement conseillé en ce moment. :wink:
Si tu insistes pour le faire il faut que tu passes en C++. Tu télécharges le SDK C++ pour C4D.
var i = 0.23 sera float , var i = 2 sera int , var i = vector(2,3,5) sera quelque chose. :mrgreen: (liste de float ?)
Idem pour les macro, il me semble bien que ce n'est pas possible en coffee.
Faut passer au C++.
SMC fan.
Justement, en python on a bien des fonctions pour définir chaque type, même une fonction pour au moins connaître le type mais soit elles n'existent pas soit elles n'ont pas le même nom en coffee.
J'écarte pas non plus le fait que je puisse simplement mal utiliser c4d...
Python est intégré à c4d ou c'est aussi merdique que le c++ qui n'est qu'une bibliothèque c4d à utiliser dans un compilateur ?
Je dirais que i sera du type vector, qui est répresenté par une structure de trois membres de type float, avec typeof(i) == DT_VECTOR.Envoyé par Jean-Laurent
Et typeof(), getclass() et getparent() c'est du mou de veau ? ©Envoyé par Glloq
Le C++ n'est pas une bibliothèque, c'est un langage. Sinon pour répondre a ta question Python est un langage interprété (comme le COFFEE) donc il n'a pas besoin d'etre compilé par définition.Envoyé par Glloq
Je te conseille de lire, et de lire beaucoup beaucoup beaucoup beaucoup avant de commencer le développement.Envoyé par Glloq
Tout dépend de ce que l'on appelle une macro, pour moi c'est synonyme de script...Envoyé par Glloq
Donc oui on peu faire des macro en coffee, il y a déjà le tuto de maître Fluffy ici : http://fluffy4d.com/?p=79i, où on récupère simplement des nom de commandes via l'historique de scripts ou script log in english. Et tout ça c'est du coffee donc rien ne t'empèche de complexifier tout ça avec des boucles des conditions et tout le toutim... Regarde un peu ici http://www.frenchcinema4d.fr/forum/i...?topic=25880.0 ou dans le sujet de César ici où il fait au final un script http://www.frenchcinema4d.fr/forum/i...?topic=26154.0
Ill y a un tuto kièmaimepofini ici http://www.frenchcinema4d.fr/forum/i...?topic=25634.0. Au risque de me répéter encore une fois le python réuni les avantages du coffee ( utilisable directement dans c4d, sous forme de scripts, tag, objet, noeud Xpresso) sans en avoir les limitations (beaucoup de fonctions existent en c++ et son absentes du coffee). Mais il offre également les avantages du C++ (création de plugin objet, tag , menu etc...) tout ça avec la puissance et la simplicité du langage python ...(non je vous jure je n'ai aucune action dans Py4D !).
Le seul bémol c'est que c'est encore une version béta, donc il manque 2-3 chose par rapport au c++ et il y a quelques bugs. Mais le gars qui développe tout ça est hyper réactif et disponible, tous les bugs que j'ai signalé sont déjà corrigés dans la dernière version et les fonctions manquantes seront probablement disponible dans la version 1.0
xs_yann, merci pour typeof(), tu connais aussi la correspondance de chaque identifiant ?
Sinon pour définir le type, y a pas un settype(), type(), int(), float(), etc. ?
Et tu veux me dire qu'on utilise pas une bibliothèque C4D pour coder en c++ ou j'ai mal compris ? :o
Oli_D, je pense au même genre que #define en c.
Merci pour tes exemples (même si ton César parle bizarrement), quant au python, je vais attendre car pour l'instant, j'essaie de me familiariser avec c4d pour aboutir en c++ (que je connais déjà) et le coffee est visiblement la première étape dans un bon apprentissage du développement pour C4D.
Ben la je vais rejoindre mon camarade oli et rajouter qu'il n'y aujourd'hui, aucun intérêt à apprendre le coffee.
Sachant qu'il vas être remplacer par le python, les fonctions du sdk coffee et du sdk c++ ne sont pas les mêmes. Le coffee est limité dans certaines fonctions. Il est encore plus mal documenté que le sdk c++ (et dieu sais que c'est déjà assez pénible)
Le seul truc chiant aujourd'hui avec le c++ c'est qu'il faut compiler pour mac et pour pc en 32 et 64 teub.
Quitte à apprendre un ensemble de fonctions, autant prendre le c++ (ou le python en béta).
Le c++ est tout de même éloigné de C4D, il est dans un compilateur, il faut compiler avant chaque essai...
Mais si toutes les fonctions n'ont pas le même nom, c'est sûr que ça fout la merde. Est-ce qu'au moins, avec le py4D, ce sont les mêmes fonctions qu'en C++ ?
Pour ma part, mon problème c'est que je ne sais vraiment, mais alors vraiment pas grand-chose en C4D, je sais tout juste faire un cube.
Je veux aider un pote a faire des addiciels puisque que je programme et que j'ai décrypté totalement un format de fichiers que C4D ne gère pas.
C'est dingue que le coffee ne soit pas le langage le plus complet pour C4D...
De toute façon, que ça soit en coffee, en c++ ou en python (si je me trompe pas), pour un plugin complet (donc hors noeud coffee ou python), il faut relancer cinema4D à chaque modif pour qu'elle soit pris en compte. Mais alors ça c'est d'un chiant de chez chiant de chez reloud..... même les fichiers d'interfaces ne sont pas chargés à chaque lancement du plugin mais une seule fois. (au premier lancement du plug)Envoyé par Glloq
Mais alors ça c'est un truc à devenir fou.... Donc un coup de compile avant de lancer le test ça prends 2 secondes, c'est pas ça qui vas te ralentir. La recherche de documentation, des fonctions, de qui fait quoi, ça c'est un truc qui bouffe un temps fou. Quand tu tombes pas sur un "ce n'est pas possible actuellement dans cinema4D" ....
Mais avec un peu de volonté et de patience, on fini par s'y retrouver.
C'est ce que je faisais aussi au début. Mais j'ai gagné beaucoup de temps par la suite grâce à tengaal (de mémoire). :wink:Envoyé par valkaari
Quand tu fais un plug coffee il n'est pas systématiquement nécessaire de relancer C4D.
Si tu es bon, tu peux même n'ouvrir le logiciel qu'une seule fois. :nono:
Dans la console coffee il y a la fonction "reload coffee plugin". Et c'est reparti. :poucehaut:
Si les modifications de ton code sont correctes aucun problème. Elles seront prises en compte.
Par contre si tu as des boucles infinies ou autres joyeusetés tu es bon pour ré ouvrir le logiciel.
C'est même ce qui m'a fait rester sur coffee par rapport au C++. Tu fais un plugin avec l'éditeur de texte et point barre et ça tourne sur toutes les versions avec peu de modifs. De la CE6 à la R11 en tout cas.
L'ennui c'est le SDK mal documenté et le manque de fonctions disponibles.
SMC fan.
Le reload fonctionne pas tout le temps non plus. (puis j'ai pas trop cherché à savoir pourquoi)
Vivement que python sorte pour justement avoir les avantages de coffee, mais en attendant il vaut mieux se tourner du coté c++ que coffee.
Il fonctionne systématiquement tant que le code est bon. :mrgreen:Envoyé par valkaari
SMC fan.
-> COFFEE SDK maxon.netEnvoyé par Glloq
Pas de directive de pré-processeur en COFFEE, cependant étant donné que les variables sont a typage dynamique, les macros peuvent etre remplacées par des fonctions.Envoyé par Glloq
Personnellement pour les define de constantes j'utilise par exemple : "const var PI = 3.14;" en global.#define ABS(X) ((X) < 0 ? -(X) : (X))
devient
abs(x)
{
return (x < 0 ? -x : x);
}
Et que l'id du plug n'a pas changé.Envoyé par Jean-Laurent
Ah oui, en faire une constante globale n'est pas con, merci.
Je... dois faire quoi ?Envoyé par xs_yann
Le chm pour le coffee de la version 11 n'a même pas le mot typeof quand je fais une recherche... :|
Envoyé par GlloqIl te faut le SDK 9.5 : http://www.maxon.net/en/support/for-...downloads.htmlEnvoyé par maxon.net
Existe-t-il un moyen de réallouer un tableau en COFFEE ?
Autrement qu'en créant une fonction qui le recopie.
Non mais tu peux utiliser ta propre classe de tableau dynamique : http://www.xsyann.com/270/coffee/vector-stack
edit : les exemples sur mon site datent un peu, il y a quelques défauts (mais c'est utilisable).
Dernière modification par xs_yann ; 03/11/2010 à 21h49.
Oui, c'est ce que j'ai fait, enfin, en une fonction équivalente à ta méthode PushBack.
Et aussi, est-ce qu'il existe des pointeurs, références ou un équivalent COFFEE ?
PS : Tout ton site est en anglais ?