mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-02-10 18:05:41 +08:00
Fix Redact coords
This commit is contained in:
@ -1242,8 +1242,16 @@ bool CRedact::Read(NSOnlineOfficeBinToPdf::CBufferReader* pReader, IMetafileToRe
|
||||
pRedact->arrQuadPoints.reserve(m * 8);
|
||||
for (int j = 0; j < m; ++j)
|
||||
{
|
||||
for (int k = 0; k < 8; ++k)
|
||||
pRedact->arrQuadPoints.push_back(pReader->ReadDouble());
|
||||
pRedact->arrQuadPoints.push_back(pReader->ReadDouble());
|
||||
pRedact->arrQuadPoints.push_back(pReader->ReadDouble());
|
||||
pRedact->arrQuadPoints.push_back(pReader->ReadDouble());
|
||||
pRedact->arrQuadPoints.push_back(pReader->ReadDouble());
|
||||
double x = pReader->ReadDouble();
|
||||
double y = pReader->ReadDouble();
|
||||
pRedact->arrQuadPoints.push_back(pReader->ReadDouble());
|
||||
pRedact->arrQuadPoints.push_back(pReader->ReadDouble());
|
||||
pRedact->arrQuadPoints.push_back(x);
|
||||
pRedact->arrQuadPoints.push_back(y);
|
||||
}
|
||||
pRedact->nFlag = pReader->ReadInt();
|
||||
if (pRedact->nFlag & (1 << 0))
|
||||
|
||||
@ -211,7 +211,7 @@ CFile.prototype._RedactPage = function(pageIndex, arrRedactBox, arrayBufferFille
|
||||
let pointer = Module["_malloc"](memoryBuffer.length * 4);
|
||||
Module["HEAP32"].set(memoryBuffer, pointer >> 2);
|
||||
|
||||
let bRes = Module["_RedactPage"](this.nativeFile, pageIndex, pointer, memoryBuffer.length / 4, changesPtr, changesLen);
|
||||
let bRes = Module["_RedactPage"](this.nativeFile, pageIndex, pointer, memoryBuffer.length / 8, changesPtr, changesLen);
|
||||
changesPtr = 0; // Success or not, changesPtr is either taken or freed
|
||||
|
||||
Module["_free"](pointer);
|
||||
|
||||
@ -210,8 +210,9 @@ bool GlobalParamsAdaptor::InRedact(double dX, double dY)
|
||||
double cross4 = crossProduct(x4, y4, x1, y1, dX, dY);
|
||||
|
||||
// Точка внутри, если все векторные произведения имеют одинаковый знак
|
||||
return (cross1 >= 0 && cross2 >= 0 && cross3 >= 0 && cross4 >= 0) ||
|
||||
(cross1 <= 0 && cross2 <= 0 && cross3 <= 0 && cross4 <= 0);
|
||||
if ((cross1 >= 0 && cross2 >= 0 && cross3 >= 0 && cross4 >= 0) ||
|
||||
(cross1 <= 0 && cross2 <= 0 && cross3 <= 0 && cross4 <= 0))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user