Skip to content

Commit c9d2d06

Browse files
authored
Merge pull request #23 from drwho495/add-complex-find
Add complex find
2 parents 13f8a7f + b3b5f00 commit c9d2d06

28 files changed

+452
-137
lines changed

.github/workflows/sub_weeklyBuild.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
export BUILD_TAG=weekly-$(date "+%Y.%m.%d")
3535
echo "BUILD_TAG=${BUILD_TAG}" >> "$GITHUB_ENV"
3636
echo "build_tag=${BUILD_TAG}" >> "$GITHUB_OUTPUT"
37-
gh release create ${BUILD_TAG} --title "Development Build ${BUILD_TAG}" -F .github/workflows/weekly-build-notes.md --prerelease || true
37+
gh release create ${BUILD_TAG} --title "FreeCAD++ Release ${BUILD_TAG}" -F .github/workflows/weekly-build-notes.md || true
3838
3939
- name: Upload Source
4040
id: upload_source

.github/workflows/weekly-build-notes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
> [!IMPORTANT]
2-
> Bleeding edge FreeCAD development builds for testing bugfixes, regressions, and recently implemented features. Do not use in a production environment.
2+
> FreeCAD++ is a fork with various features created by me and others for testing what will hopefully represent what 1.2 will look like.
33
44

55
### How-to use

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,6 @@
1010
[submodule "src/Mod/AddonManager"]
1111
path = src/Mod/AddonManager
1212
url = https://github.com/FreeCAD/AddonManager.git
13+
[submodule "src/Mod/ConstraintDesign-wb"]
14+
path = src/Mod/ConstraintDesign-wb
15+
url = https://github.com/drwho495/constraintdesign-wb

cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ macro(InitializeFreeCADBuildOptions)
119119
option(BUILD_PART "Build the FreeCAD part module" ON)
120120
option(BUILD_PART_DESIGN "Build the FreeCAD part design module" ON)
121121
option(BUILD_CAM "Build the FreeCAD CAM module" ON)
122+
option(BUILD_CONSTRAINTDESIGN "Build the FreeCAD ConstraintDesign workbench module" ON)
122123
option(BUILD_ASSEMBLY "Build the FreeCAD Assembly module" ON)
123124
option(BUILD_PLOT "Build the FreeCAD plot module" ON)
124125
option(BUILD_POINTS "Build the FreeCAD points module" ON)

cMake/FreeCAD_Helpers/PrintFinalReport.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ macro(PrintFinalReport)
111111
value(BUILD_PART)
112112
value(BUILD_PART_DESIGN)
113113
value(BUILD_CAM)
114+
value(BUILD_CONSTRAINTDESIGN)
114115
value(BUILD_PLOT)
115116
value(BUILD_POINTS)
116117
value(BUILD_REVERSEENGINEERING)

src/3rdParty/OndselSolver

Submodule OndselSolver updated 66 files

src/App/ComplexGeoData.cpp

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -199,12 +199,12 @@ const std::string& ComplexGeoData::elementMapPrefix()
199199

200200
std::string ComplexGeoData::getElementMapVersion() const
201201
{
202-
return "4";
202+
return "5";
203203
}
204204

205205
bool ComplexGeoData::checkElementMapVersion(const char* ver) const
206206
{
207-
return !boost::equals(ver, "3") && !boost::equals(ver, "4") && !boost::starts_with(ver, "3.");
207+
return !boost::equals(ver, "3") && !boost::ends_with(ver, "5") && !boost::equals(ver, "5") && !boost::starts_with(ver, "3.");
208208
}
209209

210210
size_t ComplexGeoData::getElementMapSize(bool flush) const
@@ -271,21 +271,27 @@ ComplexGeoData::getElementName(const char* name, ElementIDRefs* sid, bool copy)
271271
}
272272

273273
MappedElement result;
274-
// Strip out the trailing '.XXXX' if any
275-
const char* dot = strchr(name, '.');
276-
if (dot) {
277-
result.name = MappedName(name, static_cast<int>(dot - name));
278-
}
279-
else if (copy) {
280-
result.name = name;
281-
}
282-
else {
283-
result.name = MappedName(name);
274+
275+
flushElementMap();
276+
if (_elementMap) {
277+
const char* dot = strchr(name, '.');
278+
MappedName mappedName = MappedName(name);
279+
280+
if (dot) {
281+
mappedName = MappedName(name, static_cast<int>(dot - name));
282+
}
283+
284+
result = _elementMap->findMappedElement(mappedName, sid);
285+
286+
if (result.name.empty() || copy) {
287+
result.name = mappedName;
288+
}
284289
}
285-
result.index = getIndexedName(result.name, sid);
290+
286291
return result;
287292
}
288293

294+
289295
std::vector<std::pair<MappedName, ElementIDRefs>>
290296
ComplexGeoData::getElementMappedNames(const IndexedName& element, bool needUnmapped) const
291297
{

0 commit comments

Comments
 (0)