diff --git a/CreoManager.cpp b/CreoManager.cpp index af3e8c3..e4db56e 100644 --- a/CreoManager.cpp +++ b/CreoManager.cpp @@ -30,8 +30,10 @@ #include #include #include +#include #include #include +#include #include #include #include @@ -1539,6 +1541,72 @@ CreoManager::ShellAnalysisResult CreoManager::AnalyzeShellFeaturesEnhanced(const // Execute multi-directional extreme value projection algorithm std::unordered_set outerComponentIds = PerformMultiDirectionalProjectionAnalysis(assembly); + // Also need visibility votes for confidence mapping + // Re-run the voting analysis to get detailed visibility scores + std::unordered_map visibilityVotes; + const int numDirections = 96; + std::vector directions = SampleDirections(numDirections); + + // Collect all components for visibility analysis + std::vector allComponents = CollectAllComponents(assembly); + AABB globalAABB; + for (const ComponentItem& comp : allComponents) { + globalAABB.expand(comp.worldAABB.minPoint); + globalAABB.expand(comp.worldAABB.maxPoint); + } + + // Calculate visibility votes for each component + for (const Vector3D& direction : directions) { + struct ProjectionData { + double support; + double thickness; + int featureId; + }; + + std::vector projections; + for (const ComponentItem& comp : allComponents) { + double support = CalculateProjectionSupport(comp.worldAABB, direction); + Vector3D minSupport, maxSupport; + minSupport.x = (direction.x < 0) ? comp.worldAABB.maxPoint.x : comp.worldAABB.minPoint.x; + minSupport.y = (direction.y < 0) ? comp.worldAABB.maxPoint.y : comp.worldAABB.minPoint.y; + minSupport.z = (direction.z < 0) ? comp.worldAABB.maxPoint.z : comp.worldAABB.minPoint.z; + maxSupport.x = (direction.x >= 0) ? comp.worldAABB.maxPoint.x : comp.worldAABB.minPoint.x; + maxSupport.y = (direction.y >= 0) ? comp.worldAABB.maxPoint.y : comp.worldAABB.minPoint.y; + maxSupport.z = (direction.z >= 0) ? comp.worldAABB.maxPoint.z : comp.worldAABB.minPoint.z; + double thickness = std::abs((maxSupport - minSupport).dot(direction)); + projections.push_back({support, thickness, comp.featureId}); + } + + std::sort(projections.begin(), projections.end(), + [](const ProjectionData& a, const ProjectionData& b) { + return a.support > b.support; + }); + + if (!projections.empty()) { + double bestSupport = projections.front().support; + std::vector thicknesses; + for (const auto& p : projections) thicknesses.push_back(p.thickness); + std::nth_element(thicknesses.begin(), thicknesses.begin() + thicknesses.size() / 2, thicknesses.end()); + double medianThickness = thicknesses[thicknesses.size() / 2]; + + double assemblyDiagonal = globalAABB.getDiagonalLength(); + double absoluteWindow = std::max(1e-6, 0.002 * assemblyDiagonal); + double relativeWindow = 0.15 * medianThickness; + double depthWindow = std::max(absoluteWindow, relativeWindow); + int topK = std::min(12, std::max(3, (int)std::sqrt(allComponents.size()))); + + int rank = 0; + for (const auto& proj : projections) { + if ((proj.support >= bestSupport - depthWindow) || (rank < topK)) { + visibilityVotes[proj.featureId]++; + rank++; + } else { + break; + } + } + } + } + // Get all components using the same method as CollectAllComponents for ID consistency wfcWAssembly_ptr wAssembly = wfcWAssembly::cast(assembly); if (!wAssembly) { @@ -1555,30 +1623,7 @@ CreoManager::ShellAnalysisResult CreoManager::AnalyzeShellFeaturesEnhanced(const int total_components = componentPaths->getarraysize(); result.total_features_analyzed = total_components; - // Build feature ID map first (same approach as CollectAllComponents) - std::map modelNameToFeatureId; - try { - pfcFeatures_ptr features = assembly->ListFeaturesByType(xfalse, pfcFEATTYPE_COMPONENT); - if (features) { - for (int j = 0; j < features->getarraysize(); j++) { - pfcFeature_ptr feature = features->get(j); - if (!feature) continue; - - pfcComponentFeat_ptr compFeat = pfcComponentFeat::cast(feature); - if (!compFeat) continue; - - pfcModelDescriptor_ptr modelDesc = compFeat->GetModelDescr(); - if (!modelDesc) continue; - - std::string modelName = XStringToString(modelDesc->GetFileName()); - if (!modelName.empty()) { - modelNameToFeatureId[modelName] = feature->GetId(); - } - } - } - } catch (...) { - // Continue with fallback approach if feature listing fails - } + // No need for feature ID map - we'll use component IDs directly from paths // Build analysis result from projection analysis for (int i = 0; i < total_components; i++) { @@ -1605,18 +1650,15 @@ CreoManager::ShellAnalysisResult CreoManager::AnalyzeShellFeaturesEnhanced(const comp_name = "COMPONENT_" + std::to_string(i + 1); } - // Get stable feature ID from map or use fallback + // Get stable feature ID from component path - use the leaf component ID int stableFeatureId = -1; - if (modelNameToFeatureId.find(comp_name) != modelNameToFeatureId.end()) { - stableFeatureId = modelNameToFeatureId[comp_name]; + xintsequence_ptr componentIds = wPath->GetComponentIds(); + if (componentIds && componentIds->getarraysize() > 0) { + // Use the last ID in the path which represents the leaf component + stableFeatureId = componentIds->get(componentIds->getarraysize() - 1); } else { - // Fallback: use component path IDs - xintsequence_ptr componentIds = wPath->GetComponentIds(); - if (componentIds && componentIds->getarraysize() > 0) { - stableFeatureId = componentIds->get(componentIds->getarraysize() - 1); - } else { - stableFeatureId = i; // Last resort: use index - } + // Should not happen, but use index as last resort + stableFeatureId = i; } // Create analysis item @@ -1625,23 +1667,40 @@ CreoManager::ShellAnalysisResult CreoManager::AnalyzeShellFeaturesEnhanced(const item.type = "COMPONENT"; item.feature_id = stableFeatureId; // Use stable feature ID - // Determine if this component is on outer surface based on projection analysis - bool is_outer_component = (outerComponentIds.find(item.feature_id) != outerComponentIds.end()); + // Calculate visibility ratio for this component + double visibilityRatio = 0.0; + auto votesIter = visibilityVotes.find(item.feature_id); + if (votesIter != visibilityVotes.end()) { + visibilityRatio = (double)votesIter->second / numDirections; + } - if (is_outer_component) { - // Outer surface component - low deletion confidence - item.confidence = 15.0; + // Determine confidence based on visibility ratio + if (visibilityRatio >= 0.25) { + // Highly visible component - clearly on outer surface + item.confidence = 0.1; // Very low deletion confidence item.recommendation = "KEEP"; - item.reason = "Component on assembly outer surface (multi-directional projection analysis)"; + item.reason = "Component highly visible from multiple directions (visibility: " + + std::to_string((int)(visibilityRatio * 100)) + "%)"; + result.shell_features_count++; + } else if (visibilityRatio >= 0.08) { + // Partially visible component - likely on outer surface or important structure + item.confidence = 0.4; // Medium deletion confidence + item.recommendation = "REVIEW"; + item.reason = "Component partially visible (visibility: " + + std::to_string((int)(visibilityRatio * 100)) + "%)"; result.shell_features_count++; } else { - // Internal component - high deletion confidence - item.confidence = 85.0; + // Internal component - mostly not visible + item.confidence = 0.85; // High deletion confidence item.recommendation = "DELETE"; - item.reason = "Internal component not visible from any direction (multi-directional projection analysis)"; + item.reason = "Internal component with minimal visibility (visibility: " + + std::to_string((int)(visibilityRatio * 100)) + "%)"; result.internal_features_count++; } + // Check if it was identified as outer component by the main algorithm + bool is_outer_component = (outerComponentIds.find(item.feature_id) != outerComponentIds.end()); + // Apply user preferences if (request.preserve_external_surfaces && is_outer_component) { item.confidence = 0.0; // Force keep @@ -1667,6 +1726,58 @@ CreoManager::ShellAnalysisResult CreoManager::AnalyzeShellFeaturesEnhanced(const return a.confidence > b.confidence; }); + // Convert features to categorized deletion lists + for (const auto& item : result.features) { + FeatureDeletion deletion; + deletion.id = item.feature_id; + deletion.name = item.name; + deletion.type = item.type; + deletion.reason = item.reason; + deletion.confidence = item.confidence; + deletion.volume_reduction = 0.0; // Not calculated in projection analysis + deletion.part_file = ""; // Component name is already in 'name' + deletion.part_path = ""; // Not available in current analysis + deletion.component_type = "COMPONENT"; + + if (item.confidence >= 0.8) { + // Safe deletion - high confidence internal components + result.safe_deletions.push_back(deletion); + } else if (item.confidence >= 0.5) { + // Suggested deletion - medium confidence components + result.suggested_deletions.push_back(deletion); + } else { + // Preserve - low confidence or outer surface components + result.preserve_list.push_back(deletion); + } + } + + // Update statistics fields + result.analysis_parameters.total_features = result.total_features_analyzed; + result.analysis_parameters.deletable_features = result.safe_deletions.size() + result.suggested_deletions.size(); + result.analysis_parameters.preserved_features = result.preserve_list.size(); + result.analysis_parameters.surface_count = result.total_features_analyzed; // All components analyzed + result.analysis_parameters.shell_surfaces = result.shell_features_count; // Outer surface components + result.analysis_parameters.internal_surfaces = result.internal_features_count; // Internal components + + // Calculate estimated reduction (simplified for projection analysis) + if (result.total_features_analyzed > 0) { + double safe_reduction_pct = (double)result.safe_deletions.size() / result.total_features_analyzed * 100.0; + double suggested_reduction_pct = (double)result.suggested_deletions.size() / result.total_features_analyzed * 100.0; + + std::ostringstream volume_str, filesize_str, performance_str; + volume_str << std::fixed << std::setprecision(1) << (safe_reduction_pct + suggested_reduction_pct * 0.5) << "%"; + filesize_str << std::fixed << std::setprecision(1) << (safe_reduction_pct * 0.7 + suggested_reduction_pct * 0.3) << "%"; + performance_str << std::fixed << std::setprecision(0) << (safe_reduction_pct * 1.5 + suggested_reduction_pct * 0.8) << "%"; + + result.estimated_reduction.volume_reduction = volume_str.str(); + result.estimated_reduction.file_size_reduction = filesize_str.str(); + result.estimated_reduction.performance_improvement = performance_str.str(); + } else { + result.estimated_reduction.volume_reduction = "0%"; + result.estimated_reduction.file_size_reduction = "0%"; + result.estimated_reduction.performance_improvement = "0%"; + } + // Calculate statistics result.deletion_percentage = (result.total_features_analyzed > 0) ? (double(result.total_deletable) / result.total_features_analyzed * 100.0) : 0.0; @@ -2459,35 +2570,7 @@ std::vector CreoManager::CollectAllComponents(pfcAss if (!assembly) return components; try { - // Step 1: Build a map of all component features and their IDs - std::map modelNameToFeatureId; - std::map modelNameToCompFeat; - - try { - pfcFeatures_ptr features = assembly->ListFeaturesByType(xfalse, pfcFEATTYPE_COMPONENT); - if (features) { - for (int i = 0; i < features->getarraysize(); i++) { - pfcFeature_ptr feature = features->get(i); - if (!feature) continue; - - pfcComponentFeat_ptr compFeat = pfcComponentFeat::cast(feature); - if (!compFeat) continue; - - // Get model descriptor to get the model name - pfcModelDescriptor_ptr modelDesc = compFeat->GetModelDescr(); - if (!modelDesc) continue; - - std::string modelName = XStringToString(modelDesc->GetFileName()); - if (!modelName.empty()) { - int featureId = feature->GetId(); - modelNameToFeatureId[modelName] = featureId; - modelNameToCompFeat[modelName] = compFeat; - } - } - } - } catch (...) { - // If we can't get features, fall back to using component IDs - } + // We don't need feature mapping - will use component IDs directly from paths // Step 2: Use wfcWAssembly to get component paths with transforms wfcWAssembly_ptr wAssembly = wfcWAssembly::cast(assembly); @@ -2521,22 +2604,15 @@ std::vector CreoManager::CollectAllComponents(pfcAss compName = "COMPONENT_" + std::to_string(i + 1); } - // Get stable feature ID from our map, or use component path ID as fallback + // Get stable feature ID from component path - use the leaf component ID int stableFeatureId = -1; - pfcComponentFeat_ptr compFeat = nullptr; - - if (modelNameToFeatureId.find(compName) != modelNameToFeatureId.end()) { - // Found in our feature map - use the stable feature ID - stableFeatureId = modelNameToFeatureId[compName]; - compFeat = modelNameToCompFeat[compName]; + xintsequence_ptr componentIds = wPath->GetComponentIds(); + if (componentIds && componentIds->getarraysize() > 0) { + // Use the last ID in the path which represents the leaf component + stableFeatureId = componentIds->get(componentIds->getarraysize() - 1); } else { - // Fallback: use the last component ID from the path - xintsequence_ptr componentIds = wPath->GetComponentIds(); - if (componentIds && componentIds->getarraysize() > 0) { - stableFeatureId = componentIds->get(componentIds->getarraysize() - 1); - } else { - stableFeatureId = i; // Last resort: use index - } + // Should not happen, but use index as last resort + stableFeatureId = i; } // Get local AABB @@ -2557,11 +2633,11 @@ std::vector CreoManager::CollectAllComponents(pfcAss // Create component item with complete information ComponentItem item; - item.component = compFeat; // May be nullptr if not found in map + item.component = nullptr; // We don't have pfcComponentFeat directly item.solid = compSolid; item.path = nullptr; // We have wfcWComponentPath, different type item.worldAABB = worldAABB; - item.featureId = stableFeatureId; // Use stable feature ID when available + item.featureId = stableFeatureId; // Use stable feature ID from component path item.name = compName; components.push_back(item); @@ -2581,14 +2657,14 @@ std::vector CreoManager::CollectAllComponents(pfcAss return components; } -// Main multi-directional extreme value projection analysis +// Main multi-directional extreme value projection analysis with depth window and voting std::unordered_set CreoManager::PerformMultiDirectionalProjectionAnalysis(pfcAssembly_ptr assembly) { std::unordered_set outerComponentIds; if (!assembly) return outerComponentIds; try { - // Step 1: Collect all components recursively + // Step 1: Collect all components std::vector components = CollectAllComponents(assembly); if (components.empty()) return outerComponentIds; @@ -2599,40 +2675,100 @@ std::unordered_set CreoManager::PerformMultiDirectionalProjectionAnalysis(p globalAABB.expand(comp.worldAABB.maxPoint); } - // Step 3: Calculate tolerance based on assembly size - double assemblyDiagonal = globalAABB.getDiagonalLength(); - double tolerance = std::max(1e-6, assemblyDiagonal * 0.001); // 0.1% of assembly diagonal for better precision + // Step 3: Sample directions (96 directions for good coverage) + const int numDirections = 96; + std::vector directions = SampleDirections(numDirections); - // Step 4: Sample directions (96 directions for good coverage) - std::vector directions = SampleDirections(96); + // Voting map: component ID -> number of directions where it's visible + std::unordered_map visibilityVotes; + visibilityVotes.reserve(components.size()); - // Step 5: For each direction, find extreme value components + // Step 4: For each direction, determine visible components using depth window for (const Vector3D& direction : directions) { - double maxProjection = -std::numeric_limits::infinity(); - std::vector candidateIds; + // Structure to hold projection data + struct ProjectionData { + double support; // Projection support value + double thickness; // Component thickness in this direction + int featureId; + }; - // Find maximum projection in this direction + std::vector projections; + projections.reserve(components.size()); + + // Calculate projections and thickness for all components for (const ComponentItem& comp : components) { - double projection = CalculateProjectionSupport(comp.worldAABB, direction); - if (projection > maxProjection) { - maxProjection = projection; - candidateIds.clear(); - candidateIds.push_back(comp.featureId); - } else if (abs(projection - maxProjection) <= tolerance) { - // Within tolerance of maximum - also consider as frontmost - candidateIds.push_back(comp.featureId); - } + double support = CalculateProjectionSupport(comp.worldAABB, direction); + + // Calculate thickness as component extent in this direction + Vector3D minSupport, maxSupport; + minSupport.x = (direction.x < 0) ? comp.worldAABB.maxPoint.x : comp.worldAABB.minPoint.x; + minSupport.y = (direction.y < 0) ? comp.worldAABB.maxPoint.y : comp.worldAABB.minPoint.y; + minSupport.z = (direction.z < 0) ? comp.worldAABB.maxPoint.z : comp.worldAABB.minPoint.z; + maxSupport.x = (direction.x >= 0) ? comp.worldAABB.maxPoint.x : comp.worldAABB.minPoint.x; + maxSupport.y = (direction.y >= 0) ? comp.worldAABB.maxPoint.y : comp.worldAABB.minPoint.y; + maxSupport.z = (direction.z >= 0) ? comp.worldAABB.maxPoint.z : comp.worldAABB.minPoint.z; + + double thickness = std::abs((maxSupport - minSupport).dot(direction)); + + projections.push_back({support, thickness, comp.featureId}); } - // Add all frontmost components in this direction to outer surface set - for (int id : candidateIds) { - outerComponentIds.insert(id); + // Sort by support value (highest first) + std::sort(projections.begin(), projections.end(), + [](const ProjectionData& a, const ProjectionData& b) { + return a.support > b.support; + }); + + if (projections.empty()) continue; + + double bestSupport = projections.front().support; + + // Calculate median thickness for adaptive window + std::vector thicknesses; + thicknesses.reserve(projections.size()); + for (const auto& p : projections) { + thicknesses.push_back(p.thickness); + } + std::nth_element(thicknesses.begin(), + thicknesses.begin() + thicknesses.size() / 2, + thicknesses.end()); + double medianThickness = thicknesses[thicknesses.size() / 2]; + + // Adaptive depth window (max of absolute and relative) + double assemblyDiagonal = globalAABB.getDiagonalLength(); + double absoluteWindow = std::max(1e-6, 0.002 * assemblyDiagonal); // 0.2% of diagonal + double relativeWindow = 0.15 * medianThickness; // 15% of median thickness + double depthWindow = std::max(absoluteWindow, relativeWindow); + + // Top-K fallback to ensure minimum visible components + int topK = std::min(12, std::max(3, (int)std::sqrt(components.size()))); + + // Mark visible components (within window OR in top-K) + int rank = 0; + for (const auto& proj : projections) { + if ((proj.support >= bestSupport - depthWindow) || (rank < topK)) { + visibilityVotes[proj.featureId]++; + rank++; + } else { + break; // Components further back are not visible + } + } + } + + // Step 5: Determine outer components based on voting threshold + double minVisibilityRatio = 0.08; // At least 8% of directions + int minVotes = std::max(3, (int)(minVisibilityRatio * numDirections)); + + for (const auto& kvp : visibilityVotes) { + if (kvp.second >= minVotes) { + outerComponentIds.insert(kvp.first); } } // Step 6: Apply safety check - ensure at least some components are marked as outer if (outerComponentIds.empty() && !components.empty()) { // Fallback: mark components on assembly boundary as outer + double assemblyDiagonal = globalAABB.getDiagonalLength(); for (const ComponentItem& comp : components) { // Check if component AABB touches assembly boundary double boundaryTolerance = assemblyDiagonal * 0.005; // 0.5% tolerance for tighter boundary detection diff --git a/CreoManager.h b/CreoManager.h index 312d131..989eeeb 100644 --- a/CreoManager.h +++ b/CreoManager.h @@ -277,18 +277,18 @@ public: }; struct ShellAnalysisParameters { - bool preserve_external_surfaces; - double min_wall_thickness; - double confidence_threshold; - int total_features; - int deletable_features; - int preserved_features; - bool assembly_analysis; - std::string analysis_strategy = "bbox_surface_ownership_feature_analysis_optimized"; - int surface_count; - int shell_surfaces; - int internal_surfaces; - int shell_feature_whitelist; + bool preserve_external_surfaces = true; + double min_wall_thickness = 1.0; + double confidence_threshold = 0.7; + int total_features = 0; + int deletable_features = 0; + int preserved_features = 0; + bool assembly_analysis = false; + std::string analysis_strategy = "multi_directional_projection_analysis"; + int surface_count = 0; + int shell_surfaces = 0; + int internal_surfaces = 0; + int shell_feature_whitelist = 0; HierarchyAnalysisInfo hierarchy_analysis; }; diff --git a/MFCCreoDll/x64/Debug/AuthManager.obj b/MFCCreoDll/x64/Debug/AuthManager.obj index 02111ca..9b0d828 100644 Binary files a/MFCCreoDll/x64/Debug/AuthManager.obj and b/MFCCreoDll/x64/Debug/AuthManager.obj differ diff --git a/MFCCreoDll/x64/Debug/CreoManager.obj b/MFCCreoDll/x64/Debug/CreoManager.obj deleted file mode 100644 index b1b2580..0000000 Binary files a/MFCCreoDll/x64/Debug/CreoManager.obj and /dev/null differ diff --git a/MFCCreoDll/x64/Debug/GeometryAnalyzer.obj b/MFCCreoDll/x64/Debug/GeometryAnalyzer.obj index 2b251ba..38ee40b 100644 Binary files a/MFCCreoDll/x64/Debug/GeometryAnalyzer.obj and b/MFCCreoDll/x64/Debug/GeometryAnalyzer.obj differ diff --git a/MFCCreoDll/x64/Debug/HierarchyStatisticsAnalyzer.obj b/MFCCreoDll/x64/Debug/HierarchyStatisticsAnalyzer.obj index a3367e0..e18b4ef 100644 Binary files a/MFCCreoDll/x64/Debug/HierarchyStatisticsAnalyzer.obj and b/MFCCreoDll/x64/Debug/HierarchyStatisticsAnalyzer.obj differ diff --git a/MFCCreoDll/x64/Debug/HttpRouter.obj b/MFCCreoDll/x64/Debug/HttpRouter.obj index 898b9ce..adcde80 100644 Binary files a/MFCCreoDll/x64/Debug/HttpRouter.obj and b/MFCCreoDll/x64/Debug/HttpRouter.obj differ diff --git a/MFCCreoDll/x64/Debug/HttpServer.obj b/MFCCreoDll/x64/Debug/HttpServer.obj index 749013b..3da361c 100644 Binary files a/MFCCreoDll/x64/Debug/HttpServer.obj and b/MFCCreoDll/x64/Debug/HttpServer.obj differ diff --git a/MFCCreoDll/x64/Debug/JsonHelper.obj b/MFCCreoDll/x64/Debug/JsonHelper.obj index 366c302..5784641 100644 Binary files a/MFCCreoDll/x64/Debug/JsonHelper.obj and b/MFCCreoDll/x64/Debug/JsonHelper.obj differ diff --git a/MFCCreoDll/x64/Debug/Logger.obj b/MFCCreoDll/x64/Debug/Logger.obj index f99ffd4..b158b79 100644 Binary files a/MFCCreoDll/x64/Debug/Logger.obj and b/MFCCreoDll/x64/Debug/Logger.obj differ diff --git a/MFCCreoDll/x64/Debug/MFCCreoDll.obj b/MFCCreoDll/x64/Debug/MFCCreoDll.obj index fae840c..5bf5028 100644 Binary files a/MFCCreoDll/x64/Debug/MFCCreoDll.obj and b/MFCCreoDll/x64/Debug/MFCCreoDll.obj differ diff --git a/MFCCreoDll/x64/Debug/MFCCreoDll.pch b/MFCCreoDll/x64/Debug/MFCCreoDll.pch index 8927b77..6573ce2 100644 Binary files a/MFCCreoDll/x64/Debug/MFCCreoDll.pch and b/MFCCreoDll/x64/Debug/MFCCreoDll.pch differ diff --git a/MFCCreoDll/x64/Debug/MFCCreoDll.res b/MFCCreoDll/x64/Debug/MFCCreoDll.res deleted file mode 100644 index a50c379..0000000 Binary files a/MFCCreoDll/x64/Debug/MFCCreoDll.res and /dev/null differ diff --git a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/CL.command.1.tlog b/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/CL.command.1.tlog index 56e2c46..ce5b05e 100644 Binary files a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/CL.command.1.tlog and b/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/CL.command.1.tlog differ diff --git a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/CL.read.1.tlog b/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/CL.read.1.tlog index 195374a..fa34d19 100644 Binary files a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/CL.read.1.tlog and b/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/CL.read.1.tlog differ diff --git a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/CL.write.1.tlog b/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/CL.write.1.tlog index 0012a4e..94ad5a3 100644 Binary files a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/CL.write.1.tlog and b/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/CL.write.1.tlog differ diff --git a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/Cl.items.tlog b/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/Cl.items.tlog deleted file mode 100644 index 5757a7f..0000000 --- a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/Cl.items.tlog +++ /dev/null @@ -1,18 +0,0 @@ -C:\Users\sladr\source\repos\MFCCreoDll\AuthManager.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\AuthManager.obj -C:\Users\sladr\source\repos\MFCCreoDll\CreoManager.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\CreoManager.obj -C:\Users\sladr\source\repos\MFCCreoDll\GeometryAnalyzer.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\GeometryAnalyzer.obj -C:\Users\sladr\source\repos\MFCCreoDll\HierarchyStatisticsAnalyzer.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\HierarchyStatisticsAnalyzer.obj -C:\Users\sladr\source\repos\MFCCreoDll\HttpRouter.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\HttpRouter.obj -C:\Users\sladr\source\repos\MFCCreoDll\HttpServer.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\HttpServer.obj -C:\Users\sladr\source\repos\MFCCreoDll\JsonHelper.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\JsonHelper.obj -C:\Users\sladr\source\repos\MFCCreoDll\Logger.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\Logger.obj -C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\MFCCreoDll.obj -C:\Users\sladr\source\repos\MFCCreoDll\ModelAnalyzer.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\ModelAnalyzer.obj -C:\Users\sladr\source\repos\MFCCreoDll\ModelSearchEngine.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\ModelSearchEngine.obj -C:\Users\sladr\source\repos\MFCCreoDll\ModelSearchHandler.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\ModelSearchHandler.obj -C:\Users\sladr\source\repos\MFCCreoDll\PathDeleteManager.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\PathDeleteManager.obj -C:\Users\sladr\source\repos\MFCCreoDll\pch.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\pch.obj -C:\Users\sladr\source\repos\MFCCreoDll\ServerManager.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\ServerManager.obj -C:\Users\sladr\source\repos\MFCCreoDll\ShellExportHandler.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\ShellExportHandler.obj -C:\Users\sladr\source\repos\MFCCreoDll\ShrinkwrapManager.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\ShrinkwrapManager.obj -C:\Users\sladr\source\repos\MFCCreoDll\WebSocketServer.cpp;C:\Users\sladr\source\repos\MFCCreoDll\MFCCreoDll\x64\Debug\WebSocketServer.obj diff --git a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/link.command.1.tlog b/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/link.command.1.tlog deleted file mode 100644 index ebb7438..0000000 Binary files a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/link.command.1.tlog and /dev/null differ diff --git a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/link.read.1.tlog b/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/link.read.1.tlog deleted file mode 100644 index ebc0614..0000000 Binary files a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/link.read.1.tlog and /dev/null differ diff --git a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/link.secondary.1.tlog b/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/link.secondary.1.tlog deleted file mode 100644 index 1b6a09e..0000000 --- a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/link.secondary.1.tlog +++ /dev/null @@ -1,3 +0,0 @@ -^C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\AUTHMANAGER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\CREOMANAGER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\GEOMETRYANALYZER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\HIERARCHYSTATISTICSANALYZER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\HTTPROUTER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\HTTPSERVER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\JSONHELPER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\LOGGER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\MFCCREODLL.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\MFCCREODLL.RES|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\MODELANALYZER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\MODELSEARCHENGINE.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\MODELSEARCHHANDLER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\PATHDELETEMANAGER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\PCH.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\SERVERMANAGER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\SHELLEXPORTHANDLER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\SHRINKWRAPMANAGER.OBJ|C:\USERS\SLADR\SOURCE\REPOS\MFCCREODLL\MFCCREODLL\X64\DEBUG\WEBSOCKETSERVER.OBJ -C:\Users\sladr\source\repos\MFCCreoDll\x64\Debug\MFCCreoDll.lib -C:\Users\sladr\source\repos\MFCCreoDll\x64\Debug\MFCCreoDll.EXP diff --git a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/link.write.1.tlog b/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/link.write.1.tlog deleted file mode 100644 index a2b8b0c..0000000 Binary files a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/link.write.1.tlog and /dev/null differ diff --git a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/rc.command.1.tlog b/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/rc.command.1.tlog deleted file mode 100644 index bb78384..0000000 Binary files a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/rc.command.1.tlog and /dev/null differ diff --git a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/rc.read.1.tlog b/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/rc.read.1.tlog deleted file mode 100644 index 51d68a6..0000000 Binary files a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/rc.read.1.tlog and /dev/null differ diff --git a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/rc.write.1.tlog b/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/rc.write.1.tlog deleted file mode 100644 index 6cec13a..0000000 Binary files a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/rc.write.1.tlog and /dev/null differ diff --git a/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/unsuccessfulbuild b/MFCCreoDll/x64/Debug/MFCCreoDll.tlog/unsuccessfulbuild new file mode 100644 index 0000000..e69de29 diff --git a/MFCCreoDll/x64/Debug/ModelAnalyzer.obj b/MFCCreoDll/x64/Debug/ModelAnalyzer.obj index dcf5c43..c6abcf7 100644 Binary files a/MFCCreoDll/x64/Debug/ModelAnalyzer.obj and b/MFCCreoDll/x64/Debug/ModelAnalyzer.obj differ diff --git a/MFCCreoDll/x64/Debug/ModelSearchEngine.obj b/MFCCreoDll/x64/Debug/ModelSearchEngine.obj index 8b26dc3..da387dc 100644 Binary files a/MFCCreoDll/x64/Debug/ModelSearchEngine.obj and b/MFCCreoDll/x64/Debug/ModelSearchEngine.obj differ diff --git a/MFCCreoDll/x64/Debug/ModelSearchHandler.obj b/MFCCreoDll/x64/Debug/ModelSearchHandler.obj index d72f55a..b71c33d 100644 Binary files a/MFCCreoDll/x64/Debug/ModelSearchHandler.obj and b/MFCCreoDll/x64/Debug/ModelSearchHandler.obj differ diff --git a/MFCCreoDll/x64/Debug/PathDeleteManager.obj b/MFCCreoDll/x64/Debug/PathDeleteManager.obj index d9b5ffe..f50df5a 100644 Binary files a/MFCCreoDll/x64/Debug/PathDeleteManager.obj and b/MFCCreoDll/x64/Debug/PathDeleteManager.obj differ diff --git a/MFCCreoDll/x64/Debug/ServerManager.obj b/MFCCreoDll/x64/Debug/ServerManager.obj index d5f459e..ce3fa16 100644 Binary files a/MFCCreoDll/x64/Debug/ServerManager.obj and b/MFCCreoDll/x64/Debug/ServerManager.obj differ diff --git a/MFCCreoDll/x64/Debug/ShellExportHandler.obj b/MFCCreoDll/x64/Debug/ShellExportHandler.obj index dbdce94..f96b511 100644 Binary files a/MFCCreoDll/x64/Debug/ShellExportHandler.obj and b/MFCCreoDll/x64/Debug/ShellExportHandler.obj differ diff --git a/MFCCreoDll/x64/Debug/ShrinkwrapManager.obj b/MFCCreoDll/x64/Debug/ShrinkwrapManager.obj index f8e46dd..466672f 100644 Binary files a/MFCCreoDll/x64/Debug/ShrinkwrapManager.obj and b/MFCCreoDll/x64/Debug/ShrinkwrapManager.obj differ diff --git a/MFCCreoDll/x64/Debug/WebSocketServer.obj b/MFCCreoDll/x64/Debug/WebSocketServer.obj index 0f1b280..011b530 100644 Binary files a/MFCCreoDll/x64/Debug/WebSocketServer.obj and b/MFCCreoDll/x64/Debug/WebSocketServer.obj differ diff --git a/MFCCreoDll/x64/Debug/pch.obj b/MFCCreoDll/x64/Debug/pch.obj index 0bbb9d0..522f67a 100644 Binary files a/MFCCreoDll/x64/Debug/pch.obj and b/MFCCreoDll/x64/Debug/pch.obj differ diff --git a/MFCCreoDll/x64/Debug/vc143.idb b/MFCCreoDll/x64/Debug/vc143.idb index 0726c92..6fbe1de 100644 Binary files a/MFCCreoDll/x64/Debug/vc143.idb and b/MFCCreoDll/x64/Debug/vc143.idb differ diff --git a/MFCCreoDll/x64/Debug/vc143.pdb b/MFCCreoDll/x64/Debug/vc143.pdb index 099904a..b7441b6 100644 Binary files a/MFCCreoDll/x64/Debug/vc143.pdb and b/MFCCreoDll/x64/Debug/vc143.pdb differ diff --git a/x64/Debug/MFCCreoDll.dll b/x64/Debug/MFCCreoDll.dll deleted file mode 100644 index 825975f..0000000 Binary files a/x64/Debug/MFCCreoDll.dll and /dev/null differ diff --git a/x64/Debug/MFCCreoDll.exp b/x64/Debug/MFCCreoDll.exp deleted file mode 100644 index 414de9c..0000000 Binary files a/x64/Debug/MFCCreoDll.exp and /dev/null differ diff --git a/x64/Debug/MFCCreoDll.lib b/x64/Debug/MFCCreoDll.lib deleted file mode 100644 index d61b92d..0000000 Binary files a/x64/Debug/MFCCreoDll.lib and /dev/null differ diff --git a/x64/Debug/MFCCreoDll.pdb b/x64/Debug/MFCCreoDll.pdb deleted file mode 100644 index 1509d6f..0000000 Binary files a/x64/Debug/MFCCreoDll.pdb and /dev/null differ