You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kev/Drawer/SSBase/WellPoleLib/WellCommonFunction.h

142 lines
8.7 KiB
C

1 month ago
#ifndef WellCOMMONFUNCTION_H
#define WellCOMMONFUNCTION_H
#pragma once
#include "NGraphExtend.h"
#include "WellStructDefine.h"
#include "xyDCExt.h"
#include "WellSymbolLibUtility.h"
1 month ago
//#include "WellSedimentaryFacies.h"
#include "WellInterpretResultBrush.h"
#include "TreeBase.h"
1 month ago
namespace nsWellPoleFunc
{
1 month ago
extern AFX_EXT_API BOOL findMaxRectangleScanLine(CCurve& polygon, CRect8& bestRect, float searchv);
extern AFX_EXT_API int CurveGetCoordinate(CCurveEx& curve, int& nIndex, double location, double& xx, double& yy);
extern int CurveGetCoordinate(CCurve* pCurve, int& nIndex, double location, CPoint3D& pt, bool bCalcZ = true);
extern double DistanceToPointOnCurve(CCurveEx& curve, CPoint2D pt, CPoint2D& nearestPt, int& nearestIdx);
extern AFX_EXT_API bool GetMidBorderPoint(CCurveEx& leftCurve, CCurveEx& rightCurve, double ll, double lr, double wratio, CPoint2D& destPt);
/*
* crossProductSign <EFBFBD>ж<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ߵķ<EFBFBD>λ
* cross > 0 <EFBFBD><EFBFBD> P <EFBFBD><EFBFBD> AB <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> A <EFBFBD><EFBFBD> B <EFBFBD>ķ<EFBFBD><EFBFBD>򿴣<EFBFBD>
cross < 0 <EFBFBD><EFBFBD> P <EFBFBD><EFBFBD> AB <EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD>
cross == 0 <EFBFBD><EFBFBD> P <EFBFBD><EFBFBD> ֱ<EFBFBD><EFBFBD> AB <EFBFBD><EFBFBD>
*/
extern AFX_EXT_API double crossProductSign(double x1, double y1, double x2, double y2, double ptx, double pty); //
//extern AFX_EXT_API std::vector<CPoint2D> offsetPolylineSingle(const std::vector<CPoint2D>& input, double offset, double miterLimit = 4.0);
extern AFX_EXT_API CString ReadPCG_WellLayerDivision(CKXmlParse& xp, const short& ver);
extern AFX_EXT_API CString ReadPCG_StratumDivision(CKXmlParse& xp, const short& ver);
extern AFX_EXT_API void WritePCG_Stratification(CFile& fw, int nBaseTabNum, CTreeBase& StratumDivisionTree, CTreeBase& WellStratiTree);
extern AFX_EXT_API void WritePCG_Head_Version(CFile& fw);
extern AFX_EXT_API void WritePCG_Tail(CFile& fw);
extern AFX_EXT_API void GetPerforationLayerType(CStringArray& strArr);
1 month ago
extern AFX_EXT_API CString SetUnityTitleCRLF(CString &title); //<2F><>\r <20><>\n <20>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>ɱ<EFBFBD>׼<EFBFBD><D7BC>\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<COne*>& 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);//˳ʱ<CBB3><CAB1><EFBFBD><EFBFBD>ת
1 month ago
extern AFX_EXT_API CRect8 GetCurveExRect(CCurveEx& curve);
1 month ago
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);
1 month ago
1 month ago
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);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>صĺ<D8B5><C4BA><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD>Ƶõ<C6B5><C3B5>õ<EFBFBD><C3B5><EFBFBD>ɫRGB
extern COLORREF WINAPI GetColorFromName(CString strColor);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫRGB<47>õ<EFBFBD><C3B5>õ<EFBFBD><C3B5><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
extern CString GetCodeFromName(CString strColor);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƺ<EFBFBD>ǰ׺<C7B0>õ<EFBFBD>ռ<EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>
extern double GetWidthFromLithName(CString strLith, CString strFront, CString strOil);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
extern "C" AFX_EXT_API COLORREF WINAPI GetColorFromFluid(CString strFluid);
extern"C" AFX_EXT_API COLORREF GetMarkColor(CXy* pMark); //<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>ȡ<EFBFBD><C8A1>ɫ
//2014-06-17add<64>ɰ<EFBFBD>pcg<63><67><EFBFBD><EFBFBD>styleת<65><D7AA><EFBFBD>°<EFBFBD>pcg<63><67><EFBFBD><EFBFBD>style
extern CString PCG_PennStyleTostrStyle(int style);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>
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);
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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<72><72><EFBFBD><EFBFBD>pcg<63>ļ<EFBFBD><C4BC>ж<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ı<EFBFBD><C4B1>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern "C" AFX_EXT_API void WINAPI PCG_StrToStrArr(CString str, CStringArray& strArr, CString strSeparator);
//<2F><><EFBFBD>±<EFBFBD><C2B1><EFBFBD>ʽת<CABD><D7AA>
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,<2C>Ƿ<EFBFBD><C7B7>ȱ<EFBFBD><C8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>
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);
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>#XXxxxxxx<78><78>ʽ<EFBFBD><CABD>bClrPre<72><65>˵<EFBFBD><CBB5>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>FF,<2C><><EFBFBD><EFBFBD>Ϊ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<CString>& strArr, CKXmlParse& xp ,BOOL bPictureData = FALSE);
1 month ago
extern AFX_EXT_API BOOL IsInRect(CPoint2D * rectArr, CPoint2D pt);
1 month ago
//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