fix view direction
This commit is contained in:
parent
7826b3a3f4
commit
0adfcb721a
@ -139,6 +139,17 @@ namespace PDF3D.Addin
|
||||
IDTF.Net.View view = new IDTF.Net.View() { Name = item.Name, Resource = ViewResource };
|
||||
view.ViewData.ViewAttributeScreenUnit = ViewAttributeScreenUnit.PERCENT;
|
||||
XYZ direction = item.ViewDirection.CrossProduct(item.UpDirection);
|
||||
var viewTransform = Transform.Identity;
|
||||
viewTransform.BasisX = item.ViewDirection;
|
||||
viewTransform.BasisY = item.UpDirection;
|
||||
viewTransform.BasisZ = direction;
|
||||
var basic = Transform.Identity;
|
||||
basic.BasisX = new XYZ(0, 0, 1);
|
||||
basic.BasisY = new XYZ(0, 1, 0);
|
||||
basic.BasisZ = new XYZ(-1, 0, 0);
|
||||
var ori = viewTransform.Multiply(basic);
|
||||
|
||||
|
||||
view.Parents = new List<Parent>()
|
||||
{
|
||||
new Parent()
|
||||
@ -146,9 +157,9 @@ namespace PDF3D.Addin
|
||||
Name = "<NULL>",
|
||||
Transform = new Transform4x4()
|
||||
{
|
||||
c0r0 = item.ViewDirection.X, c0r1 = item.ViewDirection.Y, c0r2 = item.ViewDirection.Z, c0r3 = 0,
|
||||
c1r0 = item.UpDirection.X, c1r1 = item.UpDirection.Y, c1r2 = item.UpDirection.Z, c1r3 = 0,
|
||||
c2r0 = direction.X, c2r1 = direction.Y, c2r2 =direction.Z, c2r3 = 0,
|
||||
c0r0 = ori.BasisX.X, c0r1 = ori.BasisX.Y, c0r2 = ori.BasisX.Z, c0r3 = 0,
|
||||
c1r0 = ori.BasisY.X, c1r1 = ori.BasisY.Y, c1r2 = ori.BasisY.Z, c1r3 = 0,
|
||||
c2r0 = ori.BasisZ.X, c2r1 = ori.BasisZ.Y, c2r2 = ori.BasisZ.Z, c2r3 = 0,
|
||||
c3r0 = item.Origin.X * 304.8, c3r1 = item.Origin.Y * 304.8, c3r2 = item.Origin.Z * 304.8, c3r3 = 1,
|
||||
}
|
||||
}
|
||||
@ -331,28 +342,6 @@ namespace PDF3D.Addin
|
||||
|
||||
item.Mesh.ModelPositionList = points;
|
||||
}
|
||||
//List<Point3> points = new List<Point3>();
|
||||
//foreach (var point in item.Mesh.ModelPositionList)
|
||||
//{
|
||||
// var str = point.ToString();
|
||||
// if (!points.Any(x => x.ToString() == str))
|
||||
// {
|
||||
// points.Add(point);
|
||||
// }
|
||||
//}
|
||||
//if (points.Count != item.Mesh.ModelPositionList.Count)
|
||||
//{
|
||||
// var ptStr = points.Select(x => x.ToString()).ToList();
|
||||
// for (int i = 0; i < item.Mesh.MeshFacePositionList.Count; i++)
|
||||
// {
|
||||
// Int3 face = item.Mesh.MeshFacePositionList[i];
|
||||
// int a = ptStr.IndexOf(item.Mesh.ModelPositionList[face.IntArray[0]].ToString());
|
||||
// int b = ptStr.IndexOf(item.Mesh.ModelPositionList[face.IntArray[1]].ToString());
|
||||
// int c = ptStr.IndexOf(item.Mesh.ModelPositionList[face.IntArray[2]].ToString());
|
||||
// item.Mesh.MeshFacePositionList[i] = new Int3(a, b, c);
|
||||
// }
|
||||
// item.Mesh.ModelPositionList = points;
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user