Code Vonc

Créer un objet polygonal

Script COFFEE pour Cinéma 4D R13.

Comment installer ?How to install ?
CommentairesComments

Ce mini tutoriel vous montrera comment créer un polygone dans Cinéma 4D avec un script COFFEE.



Structure d'un polygone :


Les sommets d'un polygone sont identifiés par 4 points A, B, C, D. Dans le cas d'un triangle, le point C et D ont le même identifiant.


Création d'un objet polygonal :



Ce script créé des polygones à partir d'un tableau de coordonnées de points et d'un tableau de la structure des polygones.


main(doc,op)
{
    var objet = AllocObject(Opolygon);

    var nbPts = 6; // Nombre de points
    var nbPolys = 3; // Nombre de polygones
    var posPts = new(array, nbPts); // Coordonnées des points
    var maillage = new(array, nbPolys*4); // Connexion des polygones

    posPts[0] = vector(0, 0, 0);
    posPts[1] = vector(200, 0, 0);
    posPts[2] = vector(200, 0, 200);
    posPts[3] = vector(0, 0, 200);
    posPts[4] = vector(200, 100, 0);
    posPts[5] = vector(200, 100, 200);

    // Polygone 0
    maillage[0] = 0; // Point A du polygone n / 4
    maillage[1] = 1; // Point B du polygone (n-1) / 4
    maillage[2] = 2; // Point C du polygone (n-2) / 4
    maillage[3] = 3; // Point D du polygone (n-3) / 4

    // Polygone 1
    maillage[4] = 1;
    maillage[5] = 2;
    maillage[6] = 5;
    maillage[7] = 4;

    // Polygone 2
    maillage[8] = 3;
    maillage[9] = 2;
    maillage[10] = 5;
    maillage[11] = 5;

    var vc = new(VariableChanged); if (!vc) return FALSE;
    vc->Init(0, nbPts);
    objet->MultiMessage(MSG_POINTS_CHANGED, vc);
    objet->SetPoints(posPts);

    var vc2 = new(VariableChanged); if (!vc2) return FALSE;
    vc2->Init(0, nbPolys);
    objet->MultiMessage(MSG_POLYGONS_CHANGED, vc2);
    objet->SetPolygons(maillage);

    objet#ID_BASELIST_NAME = "Objet";
    doc->InsertObject(objet, NULL, NULL);
    objet->Message(MSG_UPDATE);
    doc->SetActiveObject(objet);
    CallCommand(14023); // Aligner les normales
}