Ok,Essayer un minuscule winy classes 3D pour iPhone
J'essaie de gagner du temps en créant des classes génériques pour dessiner des objets dans l'espace 3D. J'ai créé une classe Object3D avec les propriétés x, y et z.
thumbnail3D est un "fils" d'Object3D utilisant l'héritage. Vertex3D est une structure avec un GLfloat pour chaque coord.
Le problème est quand je tente de compiler la méthode initWithPosition :(Vertex3D *) sommet, et l'erreur est:
Demande de membre « x » dans quelque chose de structurer ou de syndicat. Demande de membre 'y' dans quelque chose qui ne soit pas une structure ou une union. Demande de membre 'z' dans quelque chose de non structure ou union.
Mais, la structure est sur l'importation ...
#import <UIKit/UIKit.h>
#import <OpenGLES/ES2/gl.h>
@interface Object3D : NSObject
{
GLfloat x;
GLfloat y;
GLfloat z;
}
@property GLfloat x;
@property GLfloat y;
@property GLfloat z;
-(void) render;
@end
Le rendu est encore Hardcoded
#import "Thumbnail3D.h"
#import "ConstantsAndMacros.h"
#import "OpenGLCommon.h"
@implementation Thumbnail3D
@synthesize width;
@synthesize height;
-(void)render
{
Triangle3D triangle[2];
triangle[0].v1 = Vertex3DMake(0.0, 1.0, -3.0);
triangle[0].v2 = Vertex3DMake(1.0, 0.0, -3.0);
triangle[0].v3 = Vertex3DMake(-1.0, 0.0, -3.0);
triangle[1].v1 = Vertex3DMake(-1.0, 0.0, -3.0);
triangle[1].v2 = Vertex3DMake(1.0, 0.0, -3.0);
triangle[1].v3 = Vertex3DMake(0.0, -1.0, -3.0);
glLoadIdentity();
glClearColor(0.7, 0.7, 0.7, 1.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnableClientState(GL_VERTEX_ARRAY);
glColor4f(1.0, 0.0, 0.0, 1.0);
glVertexPointer(3, GL_FLOAT, 0, &triangle);
glDrawArrays(GL_TRIANGLES, 0, 18);
glDisableClientState(GL_VERTEX_ARRAY);
}
-(void)initWithPosition:(Vertex3D *)vertex
{
x = vertex.x;
y = vertex.y;
z = vertex.z;
}
@end
Eh bien, d'une part j'aime ça moi-même parce que je pense que c'est le moyen le plus rapide d'apprendre mais d'autre part, c'est peut-être un bon petit moteur là-bas Je peux utiliser;) –
L'exemple de code n'est pas clair. Thumbnail3D est-il une sous-classe de Object3D ou Vertex3D? Qu'est-ce que Vertex3D? – TechZen
thumbnail3D est un "fils" d'Object3D utilisant l'héritage. Vertex3D est une structure avec un GLfloat pour chaque coord. –