/// <summary> /// Crea una línea en base a sus puntos extremos /// </summary> /// <param name="start">Punto de inicio</param> /// <param name="end">Punto de fin</param> /// <returns>Línea creada</returns> public static TgcLine fromExtremes(Vector3 start, Vector3 end) { TgcLine line = new TgcLine(); line.pStart = start; line.pEnd = end; line.updateValues(); return line; }
/// <summary> /// Crea una línea en base a sus puntos extremos /// </summary> /// <param name="start">Punto de inicio</param> /// <param name="end">Punto de fin</param> /// <returns>Línea creada</returns> public static TgcLine fromExtremes(Vector3 start, Vector3 end) { TgcLine line = new TgcLine(); line.pStart = start; line.pEnd = end; line.updateValues(); return(line); }
/// <summary> /// Crea mallas a modo Debug para visualizar la configuración del esqueleto /// </summary> public void buildSkletonMesh() { //Crear array para dibujar los huesos y joints Color jointsColor = Color.Violet; Color bonesColor = Color.Yellow; Vector3 jointsSize = new Vector3(2, 2, 2); Vector3 ceroVec = new Vector3(0, 0, 0); skeletonRenderJoints = new TgcBox[bones.Length]; skeletonRenderBones = new TgcLine[bones.Length]; int boneColor = Color.Yellow.ToArgb(); //Actualizar jerarquia for (int i = 0; i < bones.Length; i++) { TgcSkeletalBone bone = bones[i]; //Es hijo o padre if (bone.ParentBone == null) { skeletonRenderBones[i] = null; } else { //Crear linea de hueso para renderziar esqueleto TgcLine boneLine = new TgcLine(); boneLine.PStart = TgcVectorUtils.transform(ceroVec, bone.MatFinal); boneLine.PEnd = TgcVectorUtils.transform(ceroVec, bone.ParentBone.MatFinal); boneLine.Color = bonesColor; skeletonRenderBones[i] = boneLine; } //Crear malla de Joint para renderizar el esqueleto TgcBox jointBox = TgcBox.fromSize(jointsSize, jointsColor); jointBox.AutoTransformEnable = false; skeletonRenderJoints[i] = jointBox; } }