using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace GeoSigma.SigmaDrawerStyle { public class Constants { public const double InvalidDouble = -1E101; public const int PLINE_NAME_ALONG_CURVE = 0x08000000; //曲线内部上名字 public const int PLINE_IN_NAME_AUTO_DECREASE = 0x10000000; // 当文字太大时自动缩小 public static LineType ParseLineType(string typeString) { LineType lineType = LineType.PLINE_ZERO; switch (typeString) { case "NODRAW": lineType = LineType.PLINE_NODRAW; break; case "W": lineType = LineType.PLINE_W; break; case "V": lineType = LineType.PLINE_VIRTUAL; break; case "D": lineType = LineType.PLINE_DESIGN; break; case "M": lineType = LineType.PLINE_MIDLE; break; case "S": lineType = LineType.PLINE_SOLID; break; case "C": lineType = LineType.PLINE_CLOSE; break; case "B": lineType = LineType.PLINE_BEZIER; break; case "P": lineType = LineType.PLINE_SPLINE; break; case "O": lineType = LineType.PLINE_OFFSET; break; case "T": lineType = LineType.PLINE_TRANSPARENT; break; case "A": lineType = LineType.PLINE_WAVE; break; case "AS": lineType = LineType.PLINE_WAVE_SOLID; break; case "BS": lineType = LineType.PLINE_BS; break; case "BC": lineType = LineType.PLINE_BC; break; case "PS": lineType = LineType.PLINE_SPLINES; break; case "PC": lineType = LineType.PLINE_SPLINEC; break; case "OS": lineType = LineType.PLINE_OFFSET_SOLID; break; case "TS": lineType = LineType.PLINE_TS; break; case "HS": lineType = LineType.PLINE_HS; break; case "TBS": lineType = LineType.PLINE_TBS; break; case "TPS": lineType = LineType.PLINE_T_SPLINES; break; case "TC": lineType = LineType.PLINE_TC; break; case "TB": lineType = LineType.PLINE_TB; break; default: lineType = LineType.PLINE_ZERO; break; } return lineType; } } //曲线类型 public enum LineType { PLINE_ZERO = 0x00000000, //原始 PLINE_NODRAW = 0x00000001, //不画曲线 PLINE_W = 0x00000002, //'W' // PLINE_VIRTUAL = 0x00000004, //'V' PLINE_DESIGN = 0x00000008, //'D' PLINE_MIDLE = 0x00000010, //'M' PLINE_SOLID = 0x00000020, //'S' PLINE_CLOSE = 0x00000040, //'C' PLINE_BEZIER = 0x00000080, //'B' PLINE_SPLINE = 0x00000100, //'P' //三次样条光滑 PLINE_OFFSET = 0x00000200, //'O' PLINE_TRANSPARENT = 0x00000400, //'T' //透明 PLINE_WAVE = 0x00000800, //'A' //波浪线 PLINE_TRANSPARENT_VALUE = 0x00001000, //'H' // 'H' 透明度 PLINE_SMOOTH_HEAD = 0x00010000, //曲线圆头显示 PLINE_MARK_NAME_NUM = 0x00020000, //表示按个数上名字 PLINE_MARK_NAME_STEP = 0x00040000, //表示按步长上名字 PLINE_WAVE_SOLID = (PLINE_WAVE | PLINE_SOLID), //AS //波浪线+充填 PLINE_BS = (PLINE_BEZIER | PLINE_SOLID), //'B'*256+'S' PLINE_BC = (PLINE_BEZIER | PLINE_CLOSE), //'B'*256+'C' PLINE_SPLINES = (PLINE_SPLINE | PLINE_SOLID), //'P'*256+'S' //三次样条光滑+充填+闭合 PLINE_SPLINEC = (PLINE_SPLINE | PLINE_CLOSE), //'P'*256+'C' //三次样条光滑+闭合 PLINE_OFFSET_SOLID = (PLINE_OFFSET | PLINE_SOLID), //'O'*256+'S' PLINE_OFFSET_SOLID_B = (PLINE_OFFSET | PLINE_SOLID | PLINE_BEZIER), //'O'*256+'S'+'B' PLINE_OFFSET_B = (PLINE_OFFSET | PLINE_BEZIER), //'O'*256+'B' PLINE_TS = (PLINE_TRANSPARENT | PLINE_SOLID), //'T'*256+'S' //充填透明 PLINE_HS = (PLINE_TRANSPARENT_VALUE | PLINE_SOLID), //'H'*256+'S' //充填透明度 PLINE_TBS = (PLINE_TRANSPARENT | PLINE_BS), //'T'*256+'B'+'S' //B样条平滑充填透明 PLINE_T_SPLINES = (PLINE_TRANSPARENT | PLINE_SPLINES), //'T'*256+'P'+'S' //S样条平滑充填透明 PLINE_TB = (PLINE_TRANSPARENT | PLINE_BEZIER), //'T'*256+'B' //平滑透明 PLINE_TC = (PLINE_TRANSPARENT | PLINE_CLOSE), //'T'*256+'C' //闭合透明 PLINE_T_WAVE_S = (PLINE_TRANSPARENT | PLINE_WAVE_SOLID), //TAS //波浪线+充填+透明 PLINE_EMBELLISH_ALL = (PLINE_NODRAW | PLINE_SOLID | PLINE_CLOSE | PLINE_BEZIER | PLINE_SPLINE | PLINE_OFFSET | PLINE_TRANSPARENT | PLINE_TRANSPARENT_VALUE | PLINE_WAVE), //曲线修饰中的所有曲线类型 PLINE_TYPE_ALL = (PLINE_W | PLINE_MIDLE | /*PLINE_VIRTUAL|*/PLINE_DESIGN | PLINE_EMBELLISH_ALL), //曲线的所有类型 } //上两个符号 public enum TwoMarkType { PLINE_FAL_DIS_IN = 0x02000000, //两符号间的距离 PLINE_FAL_DIS_HEAD = 0x04000000, //到曲线两端的距离 PLINE_FAL_DIS_ALL = (PLINE_FAL_DIS_IN | PLINE_FAL_DIS_HEAD), } public enum CurveLocalStyle { PLINE_LOCAT_TYPE_L = 0x00080000, //标注桩号值 PLINE_LOCAT_TYPE_Z = 0x00100000, //标注Z值 PLINE_LOCAT_SCALEONE = 0x00200000, //统一刻度 PLINE_LOCAT_DIRECTION = 0x00400000, //统一方向 PLINE_LOCAT_NODE = 0x00800000, //标注在节点处 PLINE_LOCAT_TO_INT = 0x01000000, //桩号取整 PLINE_LOCAT_HEAD_TAIL = 0x02000000, //标注曲线首尾桩号 PLINE_LOACT_ALL = (PLINE_LOCAT_TYPE_L | PLINE_LOCAT_TYPE_Z | PLINE_LOCAT_SCALEONE | PLINE_LOCAT_DIRECTION | PLINE_LOCAT_NODE | PLINE_LOCAT_TO_INT | PLINE_LOCAT_HEAD_TAIL), } public enum TextStyleFlags { // 水平对齐方式 alignLeft = 0x00000001, //居左 alignCenterH = 0x00000002, //水平居中 alignRight = 0x00000004, //居右(缺省) alignLeftMult = 0x00010000, // 多行水平左对齐 alignCenterMult = 0x00020000, // 多行水平居中对齐 alignRightMult = 0x00040000, // 多行水平右对齐 alignAllPosition = (alignLeft | alignCenterH | alignRight), alignAllMult = (alignLeftMult | alignCenterMult | alignRightMult), // 垂直对齐方式 alignTop = 0x00000008, // 居上 alignCenterV = 0x00000010, // 垂直居中 alignBottom = 0x00000020, // 居下(缺省) alignAllV = (alignTop | alignCenterV | alignBottom), // 文字外框方式 frameNull = 0x00000040, // 空 frameRect = 0x00000080, // 矩形 frameCircle = 0x00000100, // 圆 frameEllipse = 0x00000200, // 椭圆 frameAll = (frameNull | frameRect | frameCircle | frameEllipse), immovableSize = 0x00000400, // 固定文字大小,不随比例改变而改变显示大小 backgroundColor = 0x00000800, // 是否有背景颜色 noCanMoveCoor = 0x00001000 // 不能移动点类坐标 }; //曲线充填符号 public enum LineSolid { PLINE_SOLID_BEZIER = LineType.PLINE_BEZIER, //B样条平滑充填 PLINE_SOLID_BCLOSE = LineType.PLINE_BC, //B样条闭合平滑充填 PLINE_SOLID_SPLINE = LineType.PLINE_SPLINE, //S样条平滑充填 PLINE_SOLID_SCLOSE = LineType.PLINE_SPLINEC, //S样条平滑充填闭合 } //名字类型 public enum CurveNameStyleType { NameHead, NameTail, } //桩号类型 public enum CurveLocationType { LOCAT_TYPE_L = 0, //桩号 LOCAT_TYPE_Z = 1, //Z值 } //渐变色类型 public enum GradientType { styleHorizonal = 0x00000001, //水平 styleVertical = 0x00000002, //垂直 styleDiagonalUp = 0x00000004, //斜上 styleDiagonalDown = 0x00000008, //斜下 styleCornerDiagonalUp = 0x00000010, //角部辐射(斜上) styleCornerDiagonalDown = 0x00000020, //角部辐射(斜下) styleCenter = 0x00000040 //中心辐射 } public enum ColorStyleFlags { ModeAround = 0x0001, //循环获得颜色 ModeUseAlpha = 0x0002, //使用透明度 ModeShowSmooth = 0x0100, //颜色平滑过渡 ModeShowFixed = 0x0200, //颜色固定数目,任意指定个数后插值得到 ModeShowVariable = 0x0400, //颜色可变数目,数目与颜色个数相同 ModeShowAll = (ModeShowSmooth | ModeShowFixed | ModeShowVariable) }; }