2012-02-16 66 views
1

我通过如何解析DAE文件到OpenGL ES的一个例子如下(http://www.everita.com/lightwave-collada-and-opengles-在最iphone)。转换C结构到目标C对象 - iPhone - 的OpenGL ES

在本例中有以下代码:

const Vertex3D tigerBottomNormals[] = { 
{-0.425880, -0.327633, 0.350967}, 
{-0.480159, -0.592888, 0.042138}, 
{-0.113803, -0.991356, 0.065283}, 
}; 

这里,C结构是用来存储3个阵列各包含三个浮点值。

我的问题是我将如何将此数据结构转换为客观的C对象。我想我会在更大的容器NSArray内创建NSArrays,但我不确定如何加入三个单独的浮点值,以便它们可以作为一个项添加到数组中。

在此先感谢。

回答

2

我建议你重新考虑你在这种情况下用Objective-C类替换普通C结构的决定。 Objective-C是C的一个子集,所以它可以和普通的C结构一起工作,没有任何问题,上面的代码应该可以编译。我有一堆用C/C++实现的低级数学结构的项目,这些代码使得代码简单易读,可用于这个特定的任务。但是,如果您严格需要Obj-C包装器,请检查CIVector类 - 您必须创建类似的东西(或者甚至可以直接使用CIVector,因为CoreImage是iOS 5的一部分)。

3

我不知道很多OpenGL ES的,但你可以声明一个类,如:

@interface YourClass : NSObject 
{ 
    float value1; 
    float value2; 
    float value3; 
} 

@end 

为了保持你的变量。如果需要,可以将这些对象存储在NSArray中。