Archived

This topic is now archived and is closed to further replies.

Julio

copying array structure to dynamic array

Recommended Posts

Julio    116
hi, for this compiled vertex array class I'm doing I delete the pointer to the indicies, re-allocate memory for it based on the vertex count * 3 (x,y,z). My rendering code worked fine before I added a feature to copy data from my Face data structure to my vertex array pointer. here's what the code looks like: basic stuff
    
const short unsigned int x = 0;
const short unsigned int y = 1;
const short unsigned int z = 2;

typedef struct 
{
	float fU, fV;
}Vector2D;

typedef struct 
{
	float fX, fY, fZ;
	float fU, fV;
}Vector3D;

struct Face
{
	Vector3D Triangle[3];
	//Vector2D TexCoord;

	Vector3D Normal;
	unsigned int iTexID;
};    
for testing purposes. all values are getting set correctly.
  
        Face Tri[1];

	Tri[0].Triangle[0].fX=-1.0f; //-1,0,0

	Tri[0].Triangle[0].fY=0.0f;
	Tri[0].Triangle[0].fZ=0.0f;
	Tri[0].Triangle[1].fX=1.0f; //1,0,0

	Tri[0].Triangle[1].fY=0.0f;
	Tri[0].Triangle[1].fZ=0.0f;
	Tri[0].Triangle[2].fX=0.5f; //0.5,1,0

	Tri[0].Triangle[2].fY=1.0f;
	Tri[0].Triangle[2].fZ=0.0f;
    
Delete the array
  
	if (pIndicies)
	{
		delete [] pIndicies;
		pIndicies=0;
	}
    
Re-allocate memory
      
	pIndicies = new float[iVertexCount*3];
    
and finally copy it. I'd think this would be pretty easy but the values don't seem to be getting set.
      
	unsigned int v=0;
	for (unsigned int i=0; i<iVertexCount; i++)
	{
		/*for (int v=0; v<3; v++)
		{
			if (v==0)
				pIndicies[i+v]=pFaces[i].Triangle[x].fX;
			if (v==1)
				pIndicies[i+v]=pFaces[i].Triangle[y].fY;
			if (v==2)
				pIndicies[i+v]=pFaces[i].Triangle[z].fZ;
		}*/
		pIndicies[v+0]=pFaces[i].Triangle[x].fX;
		pIndicies[v+1]=pFaces[i].Triangle[y].fY;
		pIndicies[v+2]=pFaces[i].Triangle[z].fZ;

		v+=3;
	}
    
thanks in advance to any who reply, Joe How many Microsoft employees does it take to screw in a light bulb? None, they just declare drakness as a new standard. Edited by - Julio on August 3, 2001 11:05:03 PM

Share this post


Link to post
Share on other sites
Julio    116
Face *pFaces;



How many Microsoft employees does it take to screw in a light bulb?
None, they just declare drakness as a new standard.

Share this post


Link to post
Share on other sites
Julio    116
nevermind.



How many Microsoft employees does it take to screw in a light bulb?
None, they just declare drakness as a new standard.

Share this post


Link to post
Share on other sites