有没有办法确定哪个对象正在调用draw方法。
创建:
joint.model = [[Box alloc] init];
主叫代码:
[joint.model draw];
draw方法(在Box类中):
-(void)draw
{
glBindVertexArrayOES(_boxVAO);
glDrawArrays(GL_TRIANGLES, 0, 7055*3);
}
如何在绘图方法中收到joint
对象?
如果需要更多课程信息,我可以附上,但我没有假设,因为它不多。
答案 0 :(得分:1)
model
对象需要指针返回joint
才能在-draw
方法中使用它。因此,您需要修改Box
类以获得指向joint
类型的指针,或者如果Box
由您正在使用的框架定义,则需要对其进行子类化。所以你可以这样做:
@class Box {
Model* model; // Or whatever type model is.
}
如果那不是一个选项,你可以这样做:
@class BetterBox : Box {
Model* model; // Or whatever type model is.
}
并确保model.joint
的创建方式如下:
model.joint = [[BetterBox alloc] init]; // or [[Box alloc] init] if you modified the Box class
[model.joint setModel:model];
然后在您的绘制方法中,您可以像这样访问model
:
- (void)draw
{
[model someMethod];
//... etc. ...
}