CLODMeshGenerator::CLODMeshGenerator() : GeometryGeneratorBase() { vertexCount = 0; faceCount = 0; patchID = 0; meshNumber = 0; // Needed for progress calculation meshAttributes = mlU3D::MESH_ATTRIBUTES_DEFAULT; _wem = NULL; ML_CHECK_NEW(_wem, WEM()); }
void SavePRC::savePRCToFileStream(std::ofstream& ofstream) { _progressFld->setFloatValue(0.0f); WEMPtr saveWEM = NULL; ML_CHECK_NEW(saveWEM,WEM()); // Clear object info vector; _prcObjectInfoVector.clear(); // Clear geometry vectors _pointSetsGeometryVector.clear(); _lineSetsGeometryVector.clear(); PRCMeshInfoVector meshInfoVector; // Stores the model bounding box data & its center. Shall be modified only with UpdateBoundingBox() method! ModelBoundingBoxStruct modelBoundingBox; modelBoundingBox.start.x = ML_DOUBLE_MAX; modelBoundingBox.start.y = ML_DOUBLE_MAX; modelBoundingBox.start.z = ML_DOUBLE_MAX; modelBoundingBox.end.x = ML_DOUBLE_MAX * -1; modelBoundingBox.end.y = ML_DOUBLE_MAX * -1; modelBoundingBox.end.z = ML_DOUBLE_MAX * -1; // Get default parameters from field values //defaultValues = getDefaultValuesFromFields(); // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ _statusFld->setStringValue("Analyzing input data."); // Scan all data from input field and collect base info for point sets. PreProcessPointSetData(modelBoundingBox); // Scan all data from input field and collect base info for line sets. PreProcessLineSetData(modelBoundingBox); // Scan all WEM patches, triangulate them if necessary and collect base info. PreProcessMeshData(saveWEM, meshInfoVector, modelBoundingBox); GroupNodeVector groupNodes = assemblePRCGroupNodeInfo(_prcObjectInfoVector); mapParentTreeNodeIDs(_prcObjectInfoVector, groupNodes); _modelTree = assemblePRCModelTreeInfo(groupNodes); // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ _progressFld->setFloatValue(0.1f); PRCFile outPRCFile(ofstream); PRCModelTreeNode modelRootNode = getNodeFromPRCModelTree(_modelTree, 0); WriteNodeModelsToPRCFile(outPRCFile, modelRootNode); outPRCFile.finish(); _progressFld->setFloatValue(1.0f); }