src/algorithms/invert.cpp

changeset 1412
f5eb947a2e7f
parent 1403
7a2d84112983
equal deleted inserted replaced
1411:b48f3fd2664b 1412:f5eb947a2e7f
15 * You should have received a copy of the GNU General Public License 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/>. 16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */ 17 */
18 18
19 #include "../linetypes/modelobject.h" 19 #include "../linetypes/modelobject.h"
20 #include "../linetypes/circularprimitive.h"
20 #include "../lddocument.h" 21 #include "../lddocument.h"
21 #include "../glShared.h" 22 #include "../glShared.h"
22 23
23 /* 24 /*
24 * Returns whether or not the document is flat. 25 * Returns whether or not the document is flat.
126 { 127 {
127 // Subfile is not flat. Resort to invertnext. 128 // Subfile is not flat. Resort to invertnext.
128 reference->setInverted(not reference->isInverted()); 129 reference->setInverted(not reference->isInverted());
129 } 130 }
130 } 131 }
132 else if (obj->type() == LDObjectType::CircularPrimitive)
133 {
134 auto primitive = static_cast<LDCircularPrimitive*>(obj);
135
136 if (primitive->isFlat())
137 primitive->setTransformationMatrix(primitive->transformationMatrix() * ::flipmatrix(Y));
138 else
139 primitive->setInverted(not primitive->isInverted());
140 }
131 } 141 }
132 142
133 /* 143 /*
134 * Inverts the winding of a polygon. 144 * Inverts the winding of a polygon.
135 */ 145 */

mercurial