PDA

Voir la version complète : COFFE et Position de Pts ?????



Stéphane HENRY
21/09/2002, 00h33
Salut
Bon je me lance mais ne vous moquez pas

Voila j'ai (je pense) bien lu Tengal dans ces tutos (merci)

Pour récuperer la position x,y,z d'un objet "truc" dans la variable toto, ont écrit:

toto=truc->GetPosition

Pour accéder au particularitées propres à chaque objet il y à les containers

PRIM_CUBE_SUBZ

par exemple


Mais comment ont récupére les valeurs x,y,z d'un point dans un objet polygonal ??????

Exemple: l'objet s'appelle Plan

Plan->GetPosition

donne la position x,y,z de l'axe de l'objet Plan mais pour le Point n° 163 ont fait comment.

J'ai cherchais dans les containeres et j'ai pas trouvé de fonction du genre

PRIM_POLYGONE_GETPT

Avez vous des idées

Merci d'avance

Tengaal
21/09/2002, 01h23
Alors là tu me poses une sacrée colle !
Non je déconne, c'est hyper simple...

La fonction objet->GetPosition() renvoit la position de l'axe de objet par rapport à son parent. (si il n'a pas de parent c'est par rapport au monde)
Les objets polygonaux (PolygonObject) et les objets Splines (SplineObject) sont des "PointObjects", c'est à dire qu'ils utilisent une structure de stockage de points dans une liste, on peut comprendre ce stockage en séléctionnant un objet polygonal et en regardant la liste des points ou des polygones dans l'onglet Structure du gestionnaire d'objets.
Concrètement, les "PointObjects" disposent de fonctions spécifiques:

var nbPoints=objet->GetPointCount(); // renvoit le nombre de points de l'objet
var pos=objet->GetPoint(indice); //renvoit la position x,y,z du point n° indice.
objet->SetPoint(indice,pos); //place le point n° indice à la position pos
Bien sûr, indice=0 à nbPoints-1 car le premier point à l'indice 0.

Sinon, il est possible de prendre entièrement la liste de points avec
var tableau=new(array,nbPoints); // créé un tableau vide de nbPoints valeurs
tableau=objet->GetPoints(); // GetPoints avec un S !
var pos=tableau[indice]; // donne la position du point n° indice
objet->SetPoints(tableau); // fixe la liste de point

on a donc les coordonnées de chaque point par rapport à l'axe de objet : (pos.x, pos.y, pos.z)

INFO:
Pour les containers, il faut comprendre qu'un container est une liste (tableau) de paramètres, ces paramètres sont accessibles par leur numéro d'identification qui, pour faciliter la programmation, est remplacé par un nom particulier (ex: PRIM_CUBE_LEN qui pointe sur un vecteur dont les composantes x,y et z désignent la largeur, la hauteur et la profondeur d'un cube primitif).

Stéphane HENRY
22/09/2002, 00h46
Salut

Hou la la ! Attend j'imprime et je relis à tête reposée.

Merci mille fois pour la réponse.

Cette exercice hautement intellectuel (pour moi) m'amuse assez même si je ne vais pas au bout.

Enfin ont à rarement vue des gens se noyer dans du COFFE pourtant il y à matière.

A tu eu l'occasion de venir à POMME EXPO ?, il y avait là un des trois créateurs d'origine de C4D et manifestement pour ce que tu fait en ce moment il est intéressant de connaître des gens en interne.

Si tu veut et en dehors de ce cher forum je t'envoie le maïl direct de
Friederike Bruckert qui parle très bien Français et m'à assurée d'une attention particulière et d'une transmission rapide aux équipe de développeurs MAXON si des questions pointues se font sentir.

Bien amicalement

A+

Tengaal
22/09/2002, 01h45
Je n'ai pas pu aller à l'Apple Expo car je n'étais pas sur Paris à ce moment là, mais chez moi à 400 km...
En ce qui concerne mes trucs en cours de développement, pour l'instant je préfère mettre ça au point tout seul et pouvoir présenter des versions finalisées. Après si les gars de chez Maxon veulent me contacter, pourquoi pas ? :wink:
Mais je suis trop humble pour imaginer que mon travail puisse les intéresser... :oops: