Mon, 10 Apr 2023 12:40:49 +0300
isConvex renamed to quadrilateral_convexity, refactor, now returns an enum instead of bool
| 19 | 1 | /* |
| 2 | * LDForge: LDraw parts authoring CAD | |
| 24 | 3 | * Copyright (C) 2013 - 2020 Teemu Piippo |
| 19 | 4 | * |
| 5 | * This program is free software: you can redistribute it and/or modify | |
| 6 | * it under the terms of the GNU General Public License as published by | |
| 7 | * the Free Software Foundation, either version 3 of the License, or | |
| 8 | * (at your option) any later version. | |
| 9 | * | |
| 10 | * This program is distributed in the hope that it will be useful, | |
| 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 13 | * GNU General Public License for more details. | |
| 14 | * | |
| 15 | * You should have received a copy of the GNU General Public License | |
| 16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | |
| 17 | */ | |
| 18 | ||
|
264
76a025db4948
Convert all includes to be relative to project root directory. Files that cannot be found in this manner use angle brackets.
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
210
diff
changeset
|
19 | #include "src/basics.h" |
|
76a025db4948
Convert all includes to be relative to project root directory. Files that cannot be found in this manner use angle brackets.
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
210
diff
changeset
|
20 | #include "src/model.h" |
|
76a025db4948
Convert all includes to be relative to project root directory. Files that cannot be found in this manner use angle brackets.
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
210
diff
changeset
|
21 | #include "src/gl/common.h" |
|
76a025db4948
Convert all includes to be relative to project root directory. Files that cannot be found in this manner use angle brackets.
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
210
diff
changeset
|
22 | #include "src/invert.h" |
|
76a025db4948
Convert all includes to be relative to project root directory. Files that cannot be found in this manner use angle brackets.
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
210
diff
changeset
|
23 | #include "src/documentmanager.h" |
| 19 | 24 | |
| 25 | /* | |
| 26 | * Returns a matrix that causes a flip on the given dimension. | |
| 27 | */ | |
|
33
4c41bfe2ec6e
replaced matrix and vertex classes with glm
Teemu Piippo <teemu@hecknology.net>
parents:
24
diff
changeset
|
28 | glm::mat4 math::flipmatrix(const Axis dimension) |
| 19 | 29 | { |
|
33
4c41bfe2ec6e
replaced matrix and vertex classes with glm
Teemu Piippo <teemu@hecknology.net>
parents:
24
diff
changeset
|
30 | glm::mat4 result = glm::mat4(); |
|
4c41bfe2ec6e
replaced matrix and vertex classes with glm
Teemu Piippo <teemu@hecknology.net>
parents:
24
diff
changeset
|
31 | const int k = static_cast<int>(dimension); |
|
4c41bfe2ec6e
replaced matrix and vertex classes with glm
Teemu Piippo <teemu@hecknology.net>
parents:
24
diff
changeset
|
32 | result[k][k] = -1; |
| 19 | 33 | return result; |
| 34 | } | |
| 35 | ||
| 36 | /* | |
| 37 | * Inverts the winding of a polygon. | |
| 38 | */ | |
|
210
232e7634cc8a
more refactoring, dosn't build yet
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
206
diff
changeset
|
39 | void gl::invert(PolygonElement& polygon) |
| 19 | 40 | { |
|
210
232e7634cc8a
more refactoring, dosn't build yet
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
206
diff
changeset
|
41 | visitPolygon<void>( |
|
232e7634cc8a
more refactoring, dosn't build yet
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
206
diff
changeset
|
42 | [](LineSegment&) {}, |
|
232e7634cc8a
more refactoring, dosn't build yet
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
206
diff
changeset
|
43 | [](Triangle& tri) { |
|
306
6ad27b7d2697
Enable drawing clockwise shapes despite mapbox::earcut rewinding them
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
264
diff
changeset
|
44 | invert(tri); |
|
210
232e7634cc8a
more refactoring, dosn't build yet
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
206
diff
changeset
|
45 | }, |
|
232e7634cc8a
more refactoring, dosn't build yet
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
206
diff
changeset
|
46 | [](Quadrilateral& quad) { |
|
306
6ad27b7d2697
Enable drawing clockwise shapes despite mapbox::earcut rewinding them
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
264
diff
changeset
|
47 | invert(quad); |
|
210
232e7634cc8a
more refactoring, dosn't build yet
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
206
diff
changeset
|
48 | }, |
|
232e7634cc8a
more refactoring, dosn't build yet
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
206
diff
changeset
|
49 | [](ConditionalEdge&) {}, |
|
232e7634cc8a
more refactoring, dosn't build yet
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
206
diff
changeset
|
50 | polygon); |
| 19 | 51 | } |