GLBasic Benutzerhandbuch

Main sections

X_GETFACE

X_GETFACE obj#, frame#, index#, face[]



Mit diesem Befehl bekommt man die Information über ein Dreieck im 3D Model obj# bei dessen Animationsphase frame#.
index# gibt dabei den Index des Dreiecks an und muss im Bereich 0 und X_NUMFACES(obj#)-1 liegen.
Die Informationen werden in das Feld face[] geschrieben. Das Feld wird intern dimensioniert auf [3][9]. Die erste Feldinformation gibt den Kontenindex an, die Zweite bestimmt den Wert:
face[i][0] = x
face[i][1] = y
face[i][2] = z
face[i][3] = tx
face[i][4] = ty
face[i][5] = farbe
face[i][6] = nx
face[i][7] = ny
face[i][8] = nz

x,y,z = Koordinates des Punktes
tx,ty = Textur-Koordinaten des Punktes
nx,ny,nz = Normalenvektorenrichtung des Punktes

Damit lässt sich ein 3D Objekt komplett analysieren.

LOCAL face[]
    X_LOADOBJ "wumbo.ddd", 0

    X_MAKE3D 1,500,45
    X_CAMERA 10,2,-1, 0,2,0
    X_DRAWOBJ 0, 2
    count = X_NUMFACES(0)
    FOR i=0 TO count-1
        X_GETFACE 0, 2, i, face[]
        // face[node 0..2][x,y,z,tx,ty,col]
        X_LINE face[0][0], face[0][1], face[0][2], face[1][0], face[1][1], face[1][2], 4, RGB(0,0,255)
        X_LINE face[2][0], face[2][1], face[2][2], face[1][0], face[1][1], face[1][2], 4, RGB(0,0,255)
        X_LINE face[0][0], face[0][1], face[0][2], face[2][0], face[2][1], face[2][2], 4, RGB(0,0,255)
        
        X_DOT face[0][0], face[0][1], face[0][2], 8, RGB(0,255,0)
        X_DOT face[1][0], face[1][1], face[1][2], 8, RGB(0,255,0)
        X_DOT face[2][0], face[2][1], face[2][2], 8, RGB(0,255,0)
    NEXT

    SHOWSCREEN
    MOUSEWAIT

See also...