-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IfcAdvancedBrep for example file cube-advanced-brep #462
Conversation
While I have analysed the function Open-Infra-Platform/Core/src/IfcGeometryConverter/FaceConverter.h Lines 750 to 766 in 1f1fc35
(Note: The cited code is without the new changes.) It was added in commit 2aec12f last summer. However, I wasn't able to find more information about that. @pjanck Should I leave that comment there for the moment, or can you give me more information about it? My next task in this PR will be an analyse of the function |
Good analysis of the task!
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good start!
The defined boolean value does not change inside the function convertIfcFace. Probably, its original purpose was to indicate an error inside the function. In the current code of convertIfcFace, all inspected error-cases are handled by the call of 'throw opi::<exception>'.
vertex3D and v were both declared as const carve::geom::vector<3>. By hovering with the mouse, both variables were identified as const crave::geom3d::Vector &. Thus, I can't see any 'global transformation' like promised in the comment.
See following github.ghproxy.topment for more details on this.
Of cause, some information was saved in the variable (line 833), but it was never used / called in the entire function.
[Refactoring of convertIfcFace is still in process.] Like promised in commit 3ae4b05 “Fixed semi-bug of double triangulation of triangular ifcFaceBound”, this comment gives more details about the fixed issue – especially screenshots of an example. Before this commit, faces with an exactly triangular bound loop ( After this fix, the code decides between the case of only one triangular bound loop without an inner bound (= hole), and the case of an arbitrary number of vertices and / or holes inside the face. Now, the hole in my example is visible: The relevant ifc-data of my example:
|
simple case is only on triangle without holes, general case is arbitrary number of vertices and holes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good start. Excellent description of what needs to be supported in order to be able to display the example file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good work so far!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks very good to me.
We should merge this pull request soon.
Please mark it as ready for review, then I'll go through the code once more. |
At least I have no idea which information or benefit the note should give to the user or programmer.
The description is placed in the comment of convertIfcFace. Added 'See also' (\see) to all functions inside the FaceConverter which have the parameter polyhedron and polyhedronIndices.
Commit ac64eb1 updates the Doxygen comments, which are related to the parameters A detailed explanation about these parameters is in the description of the function Furthermore, all functions which have |
(The example file face.ifc is created by myself)
(official example file from buildingsmart.org)
(official example file from buildingsmart.org)
It's intended to test the IfcFace entities (with their IfcFaceOuterBound and IfcFaceBound); thus IfcFacetedBrep and IfcClosedShell aren't necessary for this test. The images of the visual unit test have not changed (because the geometry hasn't changed).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work!
Small suggestions, but this can definitely be merged.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe we can merge after the last few comments of pjanck are resolved
(Small change to be more understandable - it confused me during the current rework of this function)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome work!
In this pull request,
IfcAdvancedBrep
will be implemented to run the example file cube-advanced-brep.ifc.This includes the implementation and adjustment of a few other functions, too. A rough overview of the involved functions was given in a comment in the corresponding issue #60.
Finally, this PR will close #60.
Probably, issue #58 could be closed, as well. However, this will be investigated at the right time in future. [currently, the non-linked issue is intended]UPDATE 21.02.2022: This PR will close #58, as well.