Bien, tengo este problema. Tengo la estructura siguiente:
struct p
{
Vector3 posicion;
Vector3 Normal;
};
Resulta que es posible que la estructura sea diferente porque depende del tipo de vértice, por ejemplo.
struct p
{
Vector3 posicion;
float u,v;
};
Por tanto, sé que SIEMPRE al principio tengo la posición, pero no sé lo que hay detrás.
Pues quiero copiar la posición de un array a otro. En C sería algo así:
[CODE]
void copiar(char *origen, char*destino,int tamañoorigen,int tamañodestino,int numelementos)
{
for(int c=0;c memcpy(destino,origen,3*4);// copio la posicion
origen+=tamañoorigen;
destino+=tamañodestino;
}
}
¿Cómo puedo hacer esto en C#?
Sé que no era exactamente lo que querías, así que (a falta de mas conocimientos por mi parte :( ) sólo puedo recomendar echar un vistazo a esta bonita unsafe clase de memoria:
http://www.csharpfriends.com/Spec/index.as...specID=25.8.htmdonde podemos encontrar:
Citar
class Test
{
static void Main() {
unsafe {
byte* buffer = (byte*)Memory.Alloc(256);
for (int i = 0; i < 256; i++) buffer = (byte)i;
byte[] array = new byte[256];
fixed (byte* p = array) Memory.Copy(buffer, p, 256);
Memory.Free(buffer);
for (int i = 0; i < 256; i++) Console.WriteLine(array);
}
}
}
que usa
// Copies count bytes from src to dst. The source and destination
// blocks are permitted to overlap.
public static void Copy(void* src, void* dst, int count) {
byte* ps = (byte*)src;
byte* pd = (byte*)dst;
if (ps > pd) {
for (; count != 0; count--) *pd++ = *ps++;
}
else if (ps < pd) {
for (ps += count, pd += count; count != 0; count--) *--pd = *--
ps;
}
}
¡Esto puede funcionar!! (ole)
Muchísimas gracias (uoh)
Cita de: "Haddd"¡Esto puede funcionar!! (ole)
Muchísimas gracias (uoh)
Sí, por poder, puede, pero no me hago cargo de los resultados :rolleyes: