Three.js - ExtrudeGeometry usando profundidad y un vector de dirección

Quiero extruir una forma y crear unExtrudeGeometry, pero la forma debe extruirse en una determinada dirección. Tengo una dirección en unVector3

La forma se dibuja en el plano x, y y normalmente la z es la dirección de extrusión (profundidad de extrusión). Entonces un vector de dirección(0,0,1) daría como resultado la extrusión predeterminada. Pero por ejemplo un(0,0,-1) extruiría la forma en la otra dirección.

Primero intenté usar una ruta de extrusión para lograr esto, pero cuando uso una ruta, la forma puede "girar" libremente y la orientación inicial es arbitraria. Esto no es lo que necesito, la forma debe permanecer orientada como está. Puedes leer detalles sobre estoaquí en mi pregunta anterior.

Ya se me ocurrió la idea de aplicar una matriz a la segunda mitad de los vértices de la Geometría Extruida resultante, pero parece que no puedo obtener la geometría que quiero. Tal vez sea mi uso torpe de las matrices, pero creo que las normales de la cara apuntan al revés después de este truco.

Nota El vector de dirección nunca será ortogonal al eje z ya que esto daría formas inválidas

Entonces la pregunta:

¿Cómo obtengo una solución confiable para extruir mi forma en la dirección dada? Aquí un ejemplo. La forma es un cuadrado en el plano x, y (ancho y largo 2000), la profundidad de extrusión también es 2000 y tres vectores diferentes con un dibujo del resultado esperado visto en 2D (vista frontal) y 3D.

Respuestas a la pregunta(1)

Su respuesta a la pregunta