ComputerGraphics/20210129/ljs/LjsGo.Navisworks/GraphicsAssignment/ExportGeometryToJson/TranslationUtils.cs
2021-02-20 15:27:11 +08:00

131 lines
4.7 KiB
C#

using Autodesk.Navisworks.Api.Interop.ComApi;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LjsGo.Navisworks.GraphicsAssignment.ExportGeometryToJson
{
public class TranslationUtils
{
public TranslationUtils()
{
}
public static List<double> TranslationNormalLCS2WCS(InwSimpleVertex v1, InwLTransform3f3 LCS2WCS)
{
Array array_v1 = (Array)(object)v1.normal;
//var v1Str = "[" + Convert.ToDouble(array_v1.GetValue(1)) + "," +
// Convert.ToDouble(array_v1.GetValue(2)) + "," +
// Convert.ToDouble(array_v1.GetValue(3)) + "]";
var result = new List<double>
{
Convert.ToDouble(array_v1.GetValue(1)),
Convert.ToDouble(array_v1.GetValue(2)),
Convert.ToDouble(array_v1.GetValue(3)),
};
return result;
}
public static List<double> TranslationCoordLCS2WCS(InwSimpleVertex v1, InwLTransform3f3 LCS2WCS)
{
Array array_v1 = (Array)(object)v1.coord;
double xTrans = LCS2WCS.GetTranslation().data1;
double yTrans = LCS2WCS.GetTranslation().data2;
double zTrans = LCS2WCS.GetTranslation().data3;
//var v1Str = "[" + (Convert.ToDouble(array_v1.GetValue(1)) + xTrans).ToString() + "," +
// (Convert.ToDouble(array_v1.GetValue(2)) + yTrans).ToString() + "," +
// (Convert.ToDouble(array_v1.GetValue(3)) + zTrans).ToString() + "]";
var result = new List<double>
{
Convert.ToDouble(array_v1.GetValue(1)) + xTrans,
Convert.ToDouble(array_v1.GetValue(2)) + yTrans,
Convert.ToDouble(array_v1.GetValue(3)) + zTrans
};
return result;
}
public static string TranslationNormalLCS2WCSStr(InwSimpleVertex v1, InwLTransform3f3 LCS2WCS)
{
Array array_v1 = (Array)(object)v1.normal;
var v1Str = "[" + Convert.ToDouble(array_v1.GetValue(1)) + "," +
Convert.ToDouble(array_v1.GetValue(2)) + "," +
Convert.ToDouble(array_v1.GetValue(3)) + "]";
return v1Str;
}
public static string TranslationCoordLCS2WCSStr(InwSimpleVertex v1, InwLTransform3f3 LCS2WCS)
{
Array array_v1 = (Array)(object)v1.coord;
double xTrans = LCS2WCS.GetTranslation().data1;
double yTrans = LCS2WCS.GetTranslation().data2;
double zTrans = LCS2WCS.GetTranslation().data3;
var v1Str = "[" + (Convert.ToDouble(array_v1.GetValue(1)) + xTrans).ToString() + "," +
(Convert.ToDouble(array_v1.GetValue(2)) + yTrans).ToString() + "," +
(Convert.ToDouble(array_v1.GetValue(3)) + zTrans).ToString() + "]";
return v1Str;
}
public static List<double> TranslationNormalLCS2WCS(InwSimpleVertex v1)
{
Array array_v1 = (Array)(object)v1.normal;
var result = new List<double>
{
Convert.ToDouble(array_v1.GetValue(1)),
Convert.ToDouble(array_v1.GetValue(2)),
Convert.ToDouble(array_v1.GetValue(3)),
};
return result;
}
public static List<double> TranslationCoordLCS2WCS(InwSimpleVertex v1)
{
Array array_v1 = (Array)(object)v1.coord;
var result = new List<double>
{
Convert.ToDouble(array_v1.GetValue(1)),
Convert.ToDouble(array_v1.GetValue(2)),
Convert.ToDouble(array_v1.GetValue(3))
};
return result;
}
public static string TranslationNormalLCS2WCSStr(InwSimpleVertex v1)
{
Array array_v1 = (Array)(object)v1.normal;
var v1Str = "[" + Convert.ToDouble(array_v1.GetValue(1)) + "," +
Convert.ToDouble(array_v1.GetValue(2)) + "," +
Convert.ToDouble(array_v1.GetValue(3)) + "]";
return v1Str;
}
public static string TranslationCoordLCS2WCSStr(InwSimpleVertex v1)
{
Array array_v1 = (Array)(object)v1.coord;
var v1Str = "[" + Convert.ToDouble(array_v1.GetValue(1)) + "," +
Convert.ToDouble(array_v1.GetValue(2)) + "," +
Convert.ToDouble(array_v1.GetValue(3)) + "]";
return v1Str;
}
}
}