#ifndef WellCOMMONFUNCTION_H #define WellCOMMONFUNCTION_H #pragma once #include "NGraphExtend.h" #include "WellStructDefine.h" #include "xyDCExt.h" #include "WellSymbolLibUtility.h" namespace nsWellPoleFunc { extern AFX_EXT_API CString SetUnityTitleCRLF(CString &title); //将\r 或\n 等处理成标准的\r\n extern AFX_EXT_API void SetUnityFontWidth_Height(GDFLOGFONTEXT& gdffont,BOOL bHbase = FALSE); extern AFX_EXT_API void WellExtentObjMoveToPoint(CXyDC* pDC, double ptx,double pty, std::vector& wellExtendObjs); extern AFX_EXT_API BOOL GetLineWithSegmentPt(BOOL bV, double k, double lpx, double lpy, double sx1, double sy1, double sx2, double sy2, double &rx, double &ry); extern AFX_EXT_API double getPointsLength(dfPoint* ptArrs, int num); extern AFX_EXT_API double getTwoPtLength(double x1, double y1, double x2, double y2); extern AFX_EXT_API void WriteDML_Head_Xmlns(CFile& fw); extern AFX_EXT_API void WriteDML_Head_Version(CFile& fw); extern AFX_EXT_API void SetSymbolDrawForXy(CXy* pXy); extern AFX_EXT_API void PtRotatePt(float angle, float x1, float y1, float centerX, float centerY, float &rX, float & rY);//顺时针旋转 extern AFX_EXT_API CRect8 GetCurveExRect(CCurveEx curve); extern bool RectContainRect(CRect8& ContainRect, CRect8& smallRect); extern AFX_EXT_API void GetLineRect(CPoint2D Spt, CPoint2D Ept, CPoint2D *ptarr, double width); extern AFX_EXT_API CPoint2D GetVPt_Line(double x1, double y1, double x2, double y2, double ptx, double pty); extern AFX_EXT_API BOOL GetVPt_LineSegment(double x1, double y1, double x2, double y2, double ptx, double pty, double &rtx, double &rty); extern AFX_EXT_API CPoint2D GetPtAlongVector(double startx, double starty, double endx, double endy, double l, int startid); extern BOOL IsKey(CString& strKey, LPCTSTR strValue); extern AFX_EXT_API CPoint2D GetPtV_Vector(double ox, double oy, double startx, double starty, double endx, double endy, double l, int oid); extern AFX_EXT_API void MakeStrToArr1(CString str, CStringArray &StrArr, CString splitStr); extern int CurveGetCoordinate(CCurve*pCurve, int& nIndex, double location, CPoint3D& pt, bool bCalcZ = true); extern AFX_EXT_API BOOL LineIntersect(CPoint2D &tp, CPoint2D down, CPoint2D local, CPoint2D tp1, CPoint2D tp2); extern int Log_Aidepth_Initial_Value(double fValue); extern AFX_EXT_API int GetVersionValue(); extern AFX_EXT_API void SetVersionValue(int nVesion); extern float GetCurveNull(); extern void SetCurveNull(float value); // 岩性相关的函数 //根据颜色名称得到得到颜色RGB extern COLORREF WINAPI GetColorFromName(CString strColor); //根据颜色RGB得到得到颜色名称 extern CString GetCodeFromName(CString strColor); //根据岩性名称和前缀得到占的宽度 extern double GetWidthFromLithName(CString strLith, CString strFront, CString strOil); //根据流体获得颜色 extern "C" AFX_EXT_API COLORREF WINAPI GetColorFromFluid(CString strFluid); extern"C" AFX_EXT_API COLORREF GetMarkColor(CXy* pMark); //从一个符号中获取颜色 //2014-06-17add旧版pcg中线style转成新版pcg中线style extern CString PCG_PennStyleTostrStyle(int style); //表格相关的 extern "C" AFX_EXT_API int WINAPI PCG_ReadLocation(CFile &fr, CXmlParse& xp, const short &ver, double& fValue); extern "C" AFX_EXT_API int WINAPI PCG_ReadBorder(CXmlParse& xp, const short &ver, int& nClr, int& nWidth); extern "C" AFX_EXT_API int WINAPI PCG_ReadCell(CFile &fr, CXmlParse& xp, const short &ver, CELLSTRUCT*& pCell); extern "C" AFX_EXT_API int WINAPI PCG_ReadColor(CXmlParse& xp, const short &ver, int& index, COLORREF& clr); //井、图道相关 extern "C" AFX_EXT_API int WINAPI PCG_ReadFont(CXmlParse& xp, const short &ver, GDFLOGFONTEXT &gdffont); extern "C" AFX_EXT_API int WINAPI PCG_ReadPen(CXmlParse& xp, const short &ver, GDFLOGPENEXT &gdfpen, BOOL& bClrPre); extern "C" AFX_EXT_API int WINAPI PCG_ReadTitle(CFile &fr, const short& ver, CString &title, GDFLOGFONTEXT &gdffont, BOOL bRatioWH = FALSE); extern int PCG_ReadGrid(CFile &fr, const short &ver, double& spacemaj, GDFLOGPENEXT &gdfpenmaj, double& spacemin, GDFLOGPENEXT &gdfpenmin); extern AFX_EXT_API int WINAPI PCG_ReadToEndElement(CFile &fr, const short& ver, CString endStr); extern void PCG_WriteTitleWell(CFile &fw, int nBaseTabNum, CString &title, GDFLOGFONTEXT &gdffont); //extern void PCG_WriteFontStyle(CFile &fw,int nBaseTabNum,GDFLOGFONT &gdffont,int spaceNum); extern "C" AFX_EXT_API void WINAPI PCG_WriteFontStyle(CFile &fw, int nBaseTabNum, GDFLOGFONTEXT &gdffont, CString strFont = "FontStyle"); extern "C" AFX_EXT_API void WINAPI PCG_WriteFont(CFile &fw, int nBaseTabNum, GDFLOGFONTEXT &gdffont); extern AFX_EXT_API double WINAPI TransformPoundToPixel(double fPound); extern AFX_EXT_API double WINAPI TransformPixelToPound(double fPixel); extern void PCG_WriteWellTemplateTitle(CFile &fw, int nBaseTabNum); //PCG_StrToStrArr,从pcg文件中读取的文本字符串转化为字符串数组 extern "C" AFX_EXT_API void WINAPI PCG_StrToStrArr(CString str, CStringArray& strArr, CString strSeparator); //上下标格式转换 extern AFX_EXT_API CString WINAPI PCG_ReadText(CString str); extern AFX_EXT_API CString WINAPI PCG_WriteText(CString str); extern AFX_EXT_API int PCG_ReadLargeValue(CStringArray& strArr, CFile &fr); extern AFX_EXT_API COLORREF PCG_IndexToColor(int index); extern AFX_EXT_API CString Bool2Str(bool boolVal); extern AFX_EXT_API CString Bool2Str(BOOL boolVal); extern CString GetShowLithologyName(int id); extern CString GetShowSymbolName(int id); extern AFX_EXT_API BOOL Image_Decode(CImageInsert* pImageIn, uint8_t* buffer, uint32_t size, uint32_t imagetype, CRect8 rect, uint32_t mode = 0); // mode=0,是否等比例缩放 extern AFX_EXT_API BOOL Image_Encode(CImageInsert* pImageIn, BYTE*& buffer, DWORD& size); extern AFX_EXT_API BOOL LineExtendIntersect(CPoint2D &tp, CPoint2D down, CPoint2D local, CPoint2D tp1, CPoint2D tp2); //表格相关的 extern "C" AFX_EXT_API int WINAPI PCG_ReadLocation1( CKXmlParse& xp, const short &ver, double& fValue); extern "C" AFX_EXT_API int WINAPI PCG_ReadBorder1(CKXmlParse& xp, const short &ver, int& nClr, int& nWidth); extern "C" AFX_EXT_API int WINAPI PCG_ReadCell1(CKXmlParse& xp, const short &ver, CELLSTRUCT*& pCell); extern "C" AFX_EXT_API int WINAPI PCG_ReadColor1(CKXmlParse& xp, const short &ver, int& index, COLORREF& clr); //井、图道相关 extern "C" AFX_EXT_API int WINAPI PCG_ReadFont1(CKXmlParse& xp, const short &ver, GDFLOGFONTEXT &gdffont); extern "C" AFX_EXT_API int WINAPI PCG_ReadPen1(CKXmlParse& xp, const short &ver, GDFLOGPENEXT &gdfpen ,BOOL& bClrPre); //卡奔的颜色是#XXxxxxxx样式,bClrPre是说明前两个字符串是否是FF,否则为00 extern "C" AFX_EXT_API int WINAPI PCG_ReadTitle1(CKXmlParse& xp, const short& ver, CString &title, GDFLOGFONTEXT &gdffont, BOOL bRatioWH = FALSE); extern int PCG_ReadGrid1(CKXmlParse& xp, const short &ver, double& spacemaj, GDFLOGPENEXT &gdfpenmaj, double& spacemin, GDFLOGPENEXT &gdfpenmin); extern AFX_EXT_API int WINAPI PCG_ReadToEndElement1(CKXmlParse& xp, const short& ver, CString endStr); extern AFX_EXT_API int PCG_ReadLargeValue1(std::vector& strArr, CKXmlParse& xp ,BOOL bPictureData = FALSE); //extern AFX_EXT_API CString GB2312ToUTF_8(char *pText, int pLen); //extern AFX_EXT_API CString UTF_8ToGB2312(char *pText, int pLen); }; using namespace nsWellPoleFunc; #endif