<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic split comp operation by &amp;quot;planar surfaces&amp;quot;? in ArcGIS CityEngine Questions</title>
    <link>https://community.esri.com/t5/arcgis-cityengine-questions/split-comp-operation-by-quot-planar-surfaces-quot/m-p/280572#M3858</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All&lt;/P&gt;&lt;P&gt;I posted a Suggestion in the Idea section,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.esri.com/ideas/15533-comp-operation-by-flat-island"&gt;comp operation by "flat island" in CityEngine&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;but I thought maybe there is a way to do just that already and I haven't thought about it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you ppl have some sugestions it would be amazing! And if you like the suggestion please vote for it &lt;IMG src="https://community.esri.com/legacyfs/online/emoticons/grin.png" /&gt;&amp;nbsp;so it maybe gets implemented.&amp;nbsp;&lt;/P&gt;&lt;P&gt;It is a problem I&amp;nbsp;encounter&amp;nbsp;all the times, as I work with imported FBX assets, lots created from curved streets, L, U and O shapes, so very irregular base shapes.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My question:&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;Is there a way to do a&amp;nbsp;&lt;IMG __jive_id="422811" alt="Comp by island" class="image-1 jive-image j-img-original" src="https://community.esri.com/legacyfs/online/422811_11111.jpg" /&gt;comp split that separates&amp;nbsp;objects into "islands", or "flat shells" as long as they are continuous, so if the angle between faces does not exceed a certain amount. Independently from the number of faces this "island" contains.&amp;nbsp;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;Take this example, where bot the C faces and A faces are orientated in the same way, let's say&amp;nbsp;parallel to the object front, while the B faces&amp;nbsp;are at 70 degrees .&amp;nbsp;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="border: 0px; font-weight: bold;"&gt;&lt;STRONG&gt;comp(f)&amp;nbsp;{ front=&amp;nbsp;X}&amp;nbsp;would produce a single mesh composed of A and C, thus not creating a flat surface.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="border: 0px; font-weight: bold;"&gt;&lt;STRONG&gt;comp(f)&amp;nbsp;{ front: X}&amp;nbsp;will create 18&amp;nbsp; separates faces (12 in A plus 6 in B)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&lt;SPAN class="" style="color: #000000; background-color: #f8f9fa; border: 0px; font-weight: inherit; font-size: 15.4px;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&lt;SPAN class="" style="color: #000000; background-color: #f8f9fa; border: 0px; font-weight: inherit; font-size: 15.4px;"&gt;I suggest adding a comp(i) operation so that writing&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&lt;SPAN class="" style="color: #000000; background-color: #f8f9fa; border: 0px; font-weight: inherit; font-size: 15.4px;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="border: 0px; font-weight: bold;"&gt;&lt;STRONG&gt;comp(i)&amp;nbsp;{ front: X}&amp;nbsp;produces 2 separated meshes, A and C.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;I think it could be very useful especially with the buildings created from L, U and O shapes.&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;There could be an extra parameter defining what is the angle between faces in degree that is the limit to consider a shell "flat", like a threshold parameter. So that if there is an angle of 3 degrees between 2 faces and I type "4" in this parameter, the 2 faces will still be considered as part of the same shell.&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;ALTERNATIVELY&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;If this is not possible, is there any method, taking the above example,&amp;nbsp;AFTER doing&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&lt;STRONG&gt;comp(f)&amp;nbsp;{ front=&amp;nbsp;X}&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;therefore eliminating&amp;nbsp;surface&amp;nbsp;B, to separate surface A from Surface C without splitting them into&amp;nbsp;18 microfacets?&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;UPDATE I see there is a function called geometry.isPlanar, maybe something involving that..&amp;nbsp; &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 25 Sep 2018 10:24:46 GMT</pubDate>
    <dc:creator>AbeleGiandoso</dc:creator>
    <dc:date>2018-09-25T10:24:46Z</dc:date>
    <item>
      <title>split comp operation by "planar surfaces"?</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/split-comp-operation-by-quot-planar-surfaces-quot/m-p/280572#M3858</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All&lt;/P&gt;&lt;P&gt;I posted a Suggestion in the Idea section,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.esri.com/ideas/15533-comp-operation-by-flat-island"&gt;comp operation by "flat island" in CityEngine&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;but I thought maybe there is a way to do just that already and I haven't thought about it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you ppl have some sugestions it would be amazing! And if you like the suggestion please vote for it &lt;IMG src="https://community.esri.com/legacyfs/online/emoticons/grin.png" /&gt;&amp;nbsp;so it maybe gets implemented.&amp;nbsp;&lt;/P&gt;&lt;P&gt;It is a problem I&amp;nbsp;encounter&amp;nbsp;all the times, as I work with imported FBX assets, lots created from curved streets, L, U and O shapes, so very irregular base shapes.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My question:&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;Is there a way to do a&amp;nbsp;&lt;IMG __jive_id="422811" alt="Comp by island" class="image-1 jive-image j-img-original" src="https://community.esri.com/legacyfs/online/422811_11111.jpg" /&gt;comp split that separates&amp;nbsp;objects into "islands", or "flat shells" as long as they are continuous, so if the angle between faces does not exceed a certain amount. Independently from the number of faces this "island" contains.&amp;nbsp;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;Take this example, where bot the C faces and A faces are orientated in the same way, let's say&amp;nbsp;parallel to the object front, while the B faces&amp;nbsp;are at 70 degrees .&amp;nbsp;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="border: 0px; font-weight: bold;"&gt;&lt;STRONG&gt;comp(f)&amp;nbsp;{ front=&amp;nbsp;X}&amp;nbsp;would produce a single mesh composed of A and C, thus not creating a flat surface.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="border: 0px; font-weight: bold;"&gt;&lt;STRONG&gt;comp(f)&amp;nbsp;{ front: X}&amp;nbsp;will create 18&amp;nbsp; separates faces (12 in A plus 6 in B)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&lt;SPAN class="" style="color: #000000; background-color: #f8f9fa; border: 0px; font-weight: inherit; font-size: 15.4px;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&lt;SPAN class="" style="color: #000000; background-color: #f8f9fa; border: 0px; font-weight: inherit; font-size: 15.4px;"&gt;I suggest adding a comp(i) operation so that writing&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&lt;SPAN class="" style="color: #000000; background-color: #f8f9fa; border: 0px; font-weight: inherit; font-size: 15.4px;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="border: 0px; font-weight: bold;"&gt;&lt;STRONG&gt;comp(i)&amp;nbsp;{ front: X}&amp;nbsp;produces 2 separated meshes, A and C.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;I think it could be very useful especially with the buildings created from L, U and O shapes.&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;There could be an extra parameter defining what is the angle between faces in degree that is the limit to consider a shell "flat", like a threshold parameter. So that if there is an angle of 3 degrees between 2 faces and I type "4" in this parameter, the 2 faces will still be considered as part of the same shell.&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;ALTERNATIVELY&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;If this is not possible, is there any method, taking the above example,&amp;nbsp;AFTER doing&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&lt;STRONG&gt;comp(f)&amp;nbsp;{ front=&amp;nbsp;X}&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;therefore eliminating&amp;nbsp;surface&amp;nbsp;B, to separate surface A from Surface C without splitting them into&amp;nbsp;18 microfacets?&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; border: 0px;"&gt;UPDATE I see there is a function called geometry.isPlanar, maybe something involving that..&amp;nbsp; &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Sep 2018 10:24:46 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/split-comp-operation-by-quot-planar-surfaces-quot/m-p/280572#M3858</guid>
      <dc:creator>AbeleGiandoso</dc:creator>
      <dc:date>2018-09-25T10:24:46Z</dc:date>
    </item>
    <item>
      <title>Re: split comp operation by "planar surfaces"?</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/split-comp-operation-by-quot-planar-surfaces-quot/m-p/280573#M3859</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I agree that this would be useful.&amp;nbsp; This is a common use case that we have been considering, and hopefully we will have something&amp;nbsp;to handle this in the future.&amp;nbsp; Thank you for your enthusiasm and for sharing your use case with us.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For now, unfortunately, I can't think of a good workaround.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 23 Oct 2018 14:26:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/split-comp-operation-by-quot-planar-surfaces-quot/m-p/280573#M3859</guid>
      <dc:creator>CherylLau</dc:creator>
      <dc:date>2018-10-23T14:26:02Z</dc:date>
    </item>
    <item>
      <title>Re: split comp operation by "planar surfaces"?</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/split-comp-operation-by-quot-planar-surfaces-quot/m-p/280574#M3860</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;Ideally it is two different separsed problems:&lt;/P&gt;&lt;P&gt;- separating surfaces into shells accordingly to their normals&amp;nbsp;&lt;SPAN&gt;independently by the number of faces.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;- splitting geometries by continuity, like the 2 front faces of a O shaped building (external front and internal front) independently by the number of faces.&lt;/P&gt;&lt;P&gt;Having these two extra operations should cover all situations &lt;IMG src="https://community.esri.com/legacyfs/online/emoticons/happy.png" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 03 Nov 2018 18:44:12 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/split-comp-operation-by-quot-planar-surfaces-quot/m-p/280574#M3860</guid>
      <dc:creator>AbeleGiandoso</dc:creator>
      <dc:date>2018-11-03T18:44:12Z</dc:date>
    </item>
    <item>
      <title>Re: split comp operation by "planar surfaces"?</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/split-comp-operation-by-quot-planar-surfaces-quot/m-p/280575#M3861</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Bump &lt;IMG src="https://community.esri.com/legacyfs/online/emoticons/grin.png" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 10 May 2020 21:40:43 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/split-comp-operation-by-quot-planar-surfaces-quot/m-p/280575#M3861</guid>
      <dc:creator>AbeleGiandoso</dc:creator>
      <dc:date>2020-05-10T21:40:43Z</dc:date>
    </item>
  </channel>
</rss>

