I'm making an RDocument from a DXF file,
Code: Select all
inputfile
I then duplicate the document, intending to selectively change some of the entities/layers, but when I pass the duplicated document's reference to a function, the number of layers changes.
Code: Select all
//SETUP DOCUMENT
var storage = new RMemoryStorage();
var spatialIndex = new RSpatialIndexSimple();
var doc = new RDocument(storage, spatialIndex);
var di = new RDocumentInterface(doc);
if (di.importFile(inputFile) != RDocumentInterface.IoErrorNoError) {
qWarning("Cannot import file:", inputFile);
di.destroy();
return;
}
//DUPLICATE DOCUMENT
var storageTemp = new RMemoryStorage();
var spatialIndexTemp = new RSpatialIndexSimple();
var docTemp = new RDocument(storageTemp, spatialIndexTemp);
var diTemp = new RDocumentInterface(docTemp);
doc.selectAllEntities();
var co = new RCopyOperation(new RVector(0,0), doc);
diTemp.applyOperation(co);
//TRY
debugger;
var layerIDsCheck = doc.queryAllLayers();
var layerIDsTempCheck = docTemp.queryAllLayers();
//Here, I get exactly the same hex values for doc and docTemp, and for layerIDsCheck and layerIDsTempCheck (5 elements each)
var layerIDs = getSortedLayerIDs(docTemp);
function getSortedLayerIDs(docu){
var layerIDs = docu.queryAllLayers();
//For me, docu does not have the same hex value as docTemp did, and layerIDs now holds 3 elements with values differing from those in layerIDsCheck and layerIDsTempCheck
//...
}
The DXF I'm using has thousands of entities. If I reduce the DXF to only arc entities, for example, then in passing to
Code: Select all
getSortedLayerIDs()
QCAD version: 3.26.1.0
Date: Mar 8 2021
Qt version: 5.13.2
Compiler version: MSVC++ 14.0 (2015)
Build date: Mar 8 2021
Revision: eec8166e891241909e2a1821e3bf9e3dd0aa2366
Architecture: x86_64
OS: Win10
Thank you for any help!