using System; using System.Runtime.InteropServices; [Flags] public enum StructureType { High = 1 << 0, Low = 1 << 1, FaultHigh = 1 << 2, FaultLow = 1 << 3, NoseHigh = 1 << 4, NoseLow = 1 << 5, StructrueAll = High | Low | FaultHigh | FaultLow | NoseHigh | NoseLow, StructrueNone = 0, } [StructLayout(LayoutKind.Sequential, Pack = 0)] public struct StructureCalculateParameter { // 最小面积 [MarshalAs(UnmanagedType.R8)] public double m_dMinimumArea; // Limit Number [MarshalAs(UnmanagedType.I4)] public System.Int32 m_nLimitNum; // Fault Filter [MarshalAs(UnmanagedType.U1)] public bool m_bFaultFilter; // 断层闭合距离 [MarshalAs(UnmanagedType.R8)] public double m_dFaultCloseDis; // 最大闭合距离 [MarshalAs(UnmanagedType.R8)] public double m_dCloseDistance; // 断层延伸长度 [MarshalAs(UnmanagedType.R8)] public double m_dExtendDis; // Offset Distance [MarshalAs(UnmanagedType.R8)] public double m_dOffsetDis; // 最小角度 [MarshalAs(UnmanagedType.R8)] public double m_dMiniAngle; // Redundant [MarshalAs(UnmanagedType.R8)] public double m_dRedundant; // Radius [MarshalAs(UnmanagedType.R8)] public double m_dRadius; [MarshalAs(UnmanagedType.U1)] public bool m_bSmooth; // 光滑半径 [MarshalAs(UnmanagedType.R8)] public double m_dZoomin; // 放大系数 [MarshalAs(UnmanagedType.R8)] public double m_dUnitSacle; // 鼻状隆起和沟槽重合比 [MarshalAs(UnmanagedType.R8)] public double m_minDepth; // 最小幅度 [MarshalAs(UnmanagedType.R8)] public double m_maxDepth; // 最大幅度 /// /// The shape types /// [MarshalAs(UnmanagedType.I4)] public StructureType m_ShapeTypes; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] public string CurveLayer; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] public string FaultageLayer; };