2013-04-16 3 views
0

Я пытаюсь скопировать содержимое массива vertexDataTextured ArmandDeBrignac [] в массив vertexDataTextured MeshVertexData []. Но это не работает ... Я думаю, что проблема заключается в методе struct, есть элементы GLKvector .....?Копирование структуры Array в другой массив структур (GLKVector)

Это мой заголовок-файла:

struct vertexDataTextured 
{ 
    GLKVector3  vertex; 
    GLKVector3  normal; 
    GLKVector2  texCoord; 
}; 
typedef struct vertexDataTextured vertexDataTextured; 
typedef vertexDataTextured* vertexDataTexturedPtr; 


vertexDataTextured MeshVertexData[] = {}; 

vertexDataTextured ArmandDeBrignac[] = { 
    {/*v:*/{-0.979979, -2.383373, -1.142941}, /*n:*/{0.000000, -0.725242, -0.688467}, /*t:*/{0.794971, 0.247112}}, 
    {/*v:*/{-0.859054, -2.367034, -0.829303}, /*n:*/{0.023591, -0.999512, 0.019593}, /*t:*/{0.786435, 0.224949}}, 
    {/*v:*/{-1.056731, -2.383373, -1.142941}, /*n:*/{-0.337657, -0.631642, -0.697836}, /*t:*/{0.800393, 0.247114}}, 
    {/*v:*/{-0.979979, -2.117816, -1.142941}, /*n:*/{0.000000, 0.500198, -0.865902}, /*t:*/{0.645127, 0.391262}}, 
    {/*v:*/{-0.979979, -2.383373, -1.142941}, /*n:*/{0.000000, -0.725242, -0.688467}, /*t:*/{0.663889, 0.391205}}, 
    {/*v:*/{-1.056731, -2.383373, -1.142941}, /*n:*/{-0.337657, -0.631642, -0.697836}, /*t:*/{0.663906, 0.396627}}, 
    {/*v:*/{-0.993670, -2.036772, 0.915066}, /*n:*/{-0.771722, 0.588244, 0.241585}, /*t:*/{0.293949, 0.430232}}, 
}; 


@interface FlaschenManager : NSObject 

-(void) getFlaschenID: (NSString*) Name andTexture: (NSString*) path; 

@end 

и мой .m File

@implementation FlaschenManager 

-(void) getFlaschenID: (NSString*) Name andTexture: (NSString*) path 
{ 

    if ([Name isEqualToString:@"ArmandDeBrignac"]) 
    { 
     NSLog(@"%@",Name); 

     MeshVertexData[0].vertex.v[0]=ArmandDeBrignac[0].vertex.v[0]; 
     // MeshVertexData[] = ArmandDeBrignac[]; 

    } else if ([Name isEqualToString:@"Hennessy"]) 
    { 
     NSLog(@"%@ ", Name); 
     FlaschenName = Name; 
    } 
} 
@end 

ответ

0

может быть, попробовать что-то вроде этого

vertexDataTextured ArmandDeBrignac[] = { 
    {/*v:*/GLKVertex3Make(-0.979979, -2.383373, -1.142941), /*n:*/GLKVertex3Make(-0.979979, -2.383373, -1.142941), /*t:*/GLKVertex2Make(-0.979979, -2.383373) 
} 

также вы, вероятно, хотите, чтобы скорее пойти

MeshVertexData[0].vertex = ArmandDeBrignac[0].vertex; 

, если вы пытаетесь получить доступ к индексу 0 из вершины а затем использовать его А компонентов вместо

MeshVertexData[0].vertex.x = ArmandDeBrignac[0].vertex.x; 

не проверял это на всех, но его предложение

+0

Спасибо за ваш ответ! Теперь он работает, чтобы скопировать элементы! Но есть новая проблема, если я скопирую вышеприведенный код в моем проекте, я получаю сбой ARC Semantic Issue .... с другим массивом? ... Потому что я не выделяю память для своего нового массива struct? –

+0

вам, вероятно, нужно будет узнать размер структуры с помощью 'sizeof()' then malloc нового массива, а затем присвойте значения – Fonix

 Смежные вопросы

  • Нет связанных вопросов^_^