| 1904 | } |
| 1905 | |
| 1906 | IfcGeometry IfcGeometryProcessor::GetBrep(uint32_t expressID) |
| 1907 | { |
| 1908 | spdlog::debug("[GetBrep({})]", expressID); |
| 1909 | auto lineType = _loader.GetLineType(expressID); |
| 1910 | switch (lineType) |
| 1911 | { |
| 1912 | case schema::IFCCONNECTEDFACESET: |
| 1913 | case schema::IFCCLOSEDSHELL: |
| 1914 | case schema::IFCOPENSHELL: |
| 1915 | { |
| 1916 | _loader.MoveToArgumentOffset(expressID, 0); |
| 1917 | auto faces = _loader.GetSetArgument(); |
| 1918 | |
| 1919 | IfcGeometry geometry; |
| 1920 | for (auto &faceToken : faces) |
| 1921 | { |
| 1922 | uint32_t faceID = _loader.GetRefArgument(faceToken); |
| 1923 | AddFaceToGeometry(faceID, geometry); |
| 1924 | } |
| 1925 | |
| 1926 | return geometry; |
| 1927 | } |
| 1928 | default: |
| 1929 | spdlog::error("[GetBrep()] unexpected shell type {}", expressID, lineType); |
| 1930 | break; |
| 1931 | } |
| 1932 | |
| 1933 | return IfcGeometry(); |
| 1934 | } |
| 1935 | |
| 1936 | void IfcGeometryProcessor::AddFaceToGeometry(uint32_t expressID, IfcGeometry &geometry) |
| 1937 | { |
nothing calls this directly
no test coverage detected