Revit.SDK.Samples.ObjectViewer.CS.GeometryData.AddTransform C# (CSharp) Method

AddTransform() private method

Add 2 Transform Matrix
private AddTransform ( Transform tran1, Transform tran2 ) : Transform
tran1 Transform
tran2 Transform
return Transform
        private Transform AddTransform(Transform tran1, Transform tran2)
        {
            Autodesk.Revit.DB.XYZ xyz = new Autodesk.Revit.DB.XYZ (0, 0, 0);
            Transform result = Transform.get_Translation(xyz);
            result.Origin = MathUtil.AddXYZ(tran1.Origin, tran2.Origin);

            Autodesk.Revit.DB.XYZ[] left = new Autodesk.Revit.DB.XYZ[3];
            Autodesk.Revit.DB.XYZ[] right = new Autodesk.Revit.DB.XYZ[3];

            for (int i = 0; i < 3; i++)
            {
                left[i] = tran1.get_Basis(i);
                right[i] = tran2.get_Basis(i);
            }

            Autodesk.Revit.DB.XYZ[] temp = MathUtil.MultiCross(left, right);

            for (int i = 0; i < 3; i++)
            {
                result.set_Basis(i, temp[i]);
            }

            return result;
        }