{"id":1174,"date":"2023-02-17T07:31:13","date_gmt":"2023-02-17T11:31:13","guid":{"rendered":"https:\/\/jausoft.com\/blog\/?p=1174"},"modified":"2023-02-17T07:31:39","modified_gmt":"2023-02-17T11:31:39","slug":"graph-type-rendering-update-4","status":"publish","type":"post","link":"https:\/\/jausoft.com\/blog\/2023\/02\/17\/graph-type-rendering-update-4\/","title":{"rendered":"Graph Type Rendering Update 4"},"content":{"rendered":"<p>Update four in the <a href=\"https:\/\/jausoft.com\/blog\/tag\/graph_type_rendering\/\">Graph Type Rendering<\/a> Saga. Here just a <a href=\"https:\/\/jogamp.org\/cgit\/jogl.git\/commit\/?id=e72dbd286ba95913711ac812bc979204f2073b7c\">quick update on fixing<\/a> serif font glyphs like g and \u00e6 and inner shape or holes within OutlineShape in general.<!--more--><\/p>\n<p>Culprit was the determination of the shape&#8217;s winding where we intrinsically convert CCW to CW for inner shapes and holes as required. The used 3-point triangle-area method is not sufficient, so replacing it with calculating the overall shape&#8217;s area fixed this issue.<\/p>\n<p>This details has been documented within OutlineShape, anchor &#8216;windingrules&#8217;.<br \/>\nSince the conversion of &#8216;CCW -&gt; CW&#8217; for inner shapes or holes is covered, a safe user path would be to completely create CCW shapes. However, this has not been hardcoded and is left to the user.<\/p>\n<p>And here the obligatory proof &#8230;<\/p>\n<p><a href=\"https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/demo-norm-cols-800x400-Z0000-T0000-snap0.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1179\" src=\"https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/demo-norm-cols-800x400-Z0000-T0000-snap0.png\" alt=\"\" width=\"800\" height=\"400\" srcset=\"https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/demo-norm-cols-800x400-Z0000-T0000-snap0.png 800w, https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/demo-norm-cols-800x400-Z0000-T0000-snap0-300x150.png 300w, https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/demo-norm-cols-800x400-Z0000-T0000-snap0-768x384.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Update four in the Graph Type Rendering Saga. Here just a quick update on fixing serif font glyphs like g and \u00e6 and inner shape or holes within OutlineShape in general.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[7,3,8],"tags":[9,13,22,71,16,44,33,31,17,68],"class_list":["post-1174","post","type-post","status-publish","format-standard","hentry","category-3d-opengl","category-computer-stuff","category-jogamp","tag-3d","tag-embedded-device","tag-fonts","tag-graph_type_rendering","tag-java","tag-jogamp","tag-linux","tag-mobile","tag-opengl","tag-type-rendering"],"_links":{"self":[{"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts\/1174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/comments?post=1174"}],"version-history":[{"count":2,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts\/1174\/revisions"}],"predecessor-version":[{"id":1181,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts\/1174\/revisions\/1181"}],"wp:attachment":[{"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/media?parent=1174"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/categories?post=1174"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/tags?post=1174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}