public void AplicarTransformacion(Transformacion3D Transformacion) { for (int i = 0; i <= mVertices.GetUpperBound(0); i++) { mVertices[i].CoodenadasSUR = Transformacion * mVertices[i].CoodenadasSUR; } mVertical *= Transformacion; CalculoTransformacion(); }
public static Caja3D AplicarTransformacion(Caja3D Caja, Transformacion3D Transformacion) { return new Caja3D(new Punto3D(Transformacion.Matriz * Caja.Posicion.Matriz), Caja.Dimensiones); }
public static Segmento3D AplicarTransformacion(Segmento3D Segmento, Transformacion3D Transformacion) { return new Segmento3D(new Punto3D(Transformacion.Matriz * Segmento.ExtremoInicial.Matriz), new Punto3D(Transformacion.Matriz * Segmento.ExtremoFinal.Matriz)); }
public static Recta3D AplicarTransformacion(Recta3D Recta, Transformacion3D Transformacion) { return new Recta3D(Transformacion.Matriz * Recta.Matrices[0], Transformacion.Matriz * Recta.Matrices[1]); }
public static Plano3D AplicarTransformacion(Plano3D Plano, Transformacion3D Transformacion) { return new Plano3D(new Punto3D(Transformacion.Matriz * Plano.ObtenerPunto(0, 0).Matriz), new Vector3D(Transformacion.Matriz * Plano.VectorNormal.Matriz)); }
public static Vector3D AplicarTransformacion(Vector3D Vector, Transformacion3D Transformacion) { return new Vector3D(Transformacion.Matriz * Vector.Matriz); }
public static Vertice AplicarTransformacion(Vertice Vertice, Transformacion3D Transformacion) { return new Vertice(new Punto3D(Transformacion.Matriz * Vertice.CoodenadasSUR.Matriz)); }
public static Transformacion3D EncadenarTransformaciones(Transformacion3D PrimeraTransformacion, Transformacion3D SegundaTransformacion) { return new Transformacion3D(SegundaTransformacion.Matriz * PrimeraTransformacion.Matriz); }
public static Punto3D AplicarTransformacion(Punto3D Punto, Transformacion3D Transformacion) { return new Punto3D(Transformacion.Matriz * Punto.Matriz); }
public void RotarSobreSRC(Vector3D Eje, float Rotacion) { mTransformacion = new Rotacion(Rotacion, Eje) + mTransformacion; RecalcularDatos(); if (Modificado != null) { Modificado(this); } }
public Camara3D() { mTransformacion = new Transformacion3D(); mInversa = new Transformacion3D(); mPosicion = new Punto3D(); mPuntodeMira = new Punto3D(0, 0, 1); mVectorDireccion = new Vector3D(0, 0, 1); mDistancia = 1000; mFrustum = new Caja3D(-50000, -50000, 1000, 100000, 100000, 100000); mResolucionPantalla = new Punto2D(800, 600); mRelacionAspecto = new Punto2D(mResolucionPantalla.X / mFrustum.Ancho, mResolucionPantalla.Y / mFrustum.Largo); mPantalla = new Caja2D(-ResolucionPantalla.X / 2, -ResolucionPantalla.Y / 2, ResolucionPantalla.X, ResolucionPantalla.Y); }
public void RotarFijoSobreSUR(Vector3D Eje, float Rotacion) { mTransformacion += new Rotacion(Rotacion, Eje, mPosicion); RecalcularDatos(); if (Modificado != null) { Modificado(this); } }
public void RotarSobreSUR(Recta3D Eje, float Rotacion) { mTransformacion += new Rotacion(Rotacion, Eje); RecalcularDatos(); if (Modificado != null) { Modificado(this); } }
public void TrasladarSobreSRC(Vector3D Traslacion) { mTransformacion = new Traslacion(Traslacion) + mTransformacion; RecalcularDatos(); if (Modificado != null) { Modificado(this); } }
public void TrasladarSobreSUR(Punto3D Destino) { mTransformacion += new Traslacion(mPosicion, Destino); RecalcularDatos(); if (Modificado != null) { Modificado(this); } }
private void RecalcularDatos() { mInversa = new Transformacion3D(Matriz.CalculoInversa(mTransformacion.Matriz)); mPosicion = mTransformacion * new Punto3D(); mPuntodeMira = mTransformacion * new Punto3D(0, 0, 1); mVectorDireccion = new Vector3D(mPosicion, mPuntodeMira); }