int WINAPI HMessageBoxA(_In_opt_ HWND hWnd, _In_opt_ LPCSTR lpText, _In_opt_ LPCSTR lpCaption, _In_ UINT uType) { AllocConsole(); CmvsUnpackerX cpz(g_CmvsObject->ImageManager); cpz.Auto(L"E:\\Desktop\\ハピメア\\data\\pack\\script.cpz"); Ps::ExitProcess(0); }
VOID DropFiles(HWND hWnd, HDROP hDrop) { WCHAR CpzPathW[MAX_NTPATH]; CmvsImageManager *ImageManager = g_CmvsObject->ImageManager; AllocConsole(); for (ULONG_PTR Index = 0; DragQueryFileW(hDrop, Index, CpzPathW, countof(CpzPathW)); ++Index) { CmvsUnpackerX cpz(ImageManager); cpz.Auto(CpzPathW); } FreeConsole(); DragFinish(hDrop); }
Handle(Geom_BSplineCurve) CFunctionToBspline::CFunctionToBsplineImpl::Curve() { bool interpolate = true; std::vector<ChebSegment> segments = approxSegment(_umin, _umax, 1); int N = _degree + 1; math_Matrix Mt = monimial_to_bezier(N)*cheb_to_monomial(N); // get estimated error and create bspline segments std::vector<Handle(Geom_BSplineCurve)> curves; double errTotal = 0.; std::vector<ChebSegment>::iterator it = segments.begin(); for (; it != segments.end(); ++it) { // get control points ChebSegment& seg = *it; math_Vector cpx = Mt*seg.cx; math_Vector cpy = Mt*seg.cy; math_Vector cpz = Mt*seg.cz; TColgp_Array1OfPnt cp(1,cpx.Length()); for (int i = 1; i <= cpx.Length(); ++i) { gp_Pnt p(cpx(i-1), cpy(i-1), cpz(i-1)); cp.SetValue(i, p); } if (interpolate) { gp_Pnt pstart(_xfunc.value(seg.umin), _yfunc.value(seg.umin), _zfunc.value(seg.umin)); gp_Pnt pstop (_xfunc.value(seg.umax), _yfunc.value(seg.umax), _zfunc.value(seg.umax)); cp.SetValue(1, pstart); cp.SetValue(cpx.Length(), pstop); } // create knots and multiplicity vector TColStd_Array1OfReal knots(1,2); knots.SetValue(1, seg.umin); knots.SetValue(2, seg.umax); TColStd_Array1OfInteger mults(1,2); mults.SetValue(1, _degree+1); mults.SetValue(2, _degree+1); Handle(Geom_BSplineCurve) curve = new Geom_BSplineCurve(cp, knots, mults, _degree); curves.push_back(curve); if (seg.error > errTotal) { errTotal = seg.error; } } _err = errTotal; // concatenate c1 the bspline curves Handle(Geom_BSplineCurve) result = concatC1(curves); #ifdef DEBUG LOG(INFO) << "Result of BSpline approximation of function:"; LOG(INFO) << " approximation error = " << errTotal; LOG(INFO) << " number of control points = " << result->NbPoles(); LOG(INFO) << " number of segments = " << curves.size(); #endif return result; }