THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 10/08/2004 at 10:09, xxxxxxxx wrote:
Cinema 4D Version: 9.000
As a user, I'm very pleased to see that R9 has finally got n-gon support.
As a plugin developer I'm slightly worried about how modelling plugins developed for R8 will be affected by this.
Is there any information available yet regarding the internals of how n-gons are implemented?
FWIW, I'm guessing that it's one of two things:-
1. All geometry is still actually TRIs and QUADs internally, but with some extra data regarding which sets of polygons are to be considered to be an n-gon, with automatic re-meshing as needed, and clever use of hidden edges.
2. In addition to points, and polygons, there is a new n-gon class handling polygons with more than four edges.
Cheers - Steve
On 10/08/2004 at 10:58, xxxxxxxx wrote:
I haven't looked deep enough into the implementation to tell you more than that it's a mix of 1 and 2. Plugins that don't care about n-gons will simply see tris and quads, so old plugins should work without any changes in that regard. However, certainly most modeling plugins would benefit from recognizing n-gons. There are lots of support classes built into the new version to make it easier. So you don't have to reinvent the wheel just to support n-gons in your plugin.
As soon as a demo becomes available, or the real application is released, you will be able to have a look at the new API classes. The documentation will come a bit later, as usual.
On 10/08/2004 at 11:01, xxxxxxxx wrote:
Btw, you missed a golden opportunity to be the first 9.000 post by posting as 8.100/C.O.F.F.E.E....
(Don't worry, I fixed it for you.)
On 10/08/2004 at 16:21, xxxxxxxx wrote:
Ok, thanks for the info. Glad to hear that existing plugins should keep working without changes.
Ta also for the 9.0 'upgrade'/correction on the post! (I completely forgot to change the settings - silly me)
On 11/08/2004 at 08:29, xxxxxxxx wrote:
Here goes a quick brief!
As Mikael said its a mixture of (1) and (2). The N-gons are a layer above the polygon object, this means that all old plugins and any unchanged areas of CINEMA will work since they just "see" a polygon object.
The N-gon layer is essentially a list of edges that form the N-gon edges, these are indexed with some extra bits to help converting the edge representation into points that can then be used by the modeling kernel (aka, what most people like to think of as "real" N-gons).
Working manually with the N-gons (via the API) is not recommended and has limited support in the API. They're design to be read, but not written (i.e. that is private).
What we have added is a modeling kernel (library). Here you can init a polygon object, perform some editing via functions (for example, create new N-gons, split edges, split polygons) these are done virtually (from each function you get back a virtual index for any new data created) then you can commit the virtual changes to the object (or another matching object). All the modeling tools in R9 use this library. It handles all the N-gons for you, plus updates all the tags so you don't need to worry about selections, UVs etc. obviously the modeling kernel can only make a generalised "best guess" at how to update tags, so in some cases you may want to manually set the tags after the commit.
N-gons are only available to C++.
On 11/08/2004 at 09:27, xxxxxxxx wrote:
Thanks for the extra info. The modelling library sounds particularly interesting/useful.
On 10/09/2004 at 12:45, xxxxxxxx wrote:
Thanks for the explanation.. is there any word/ETA on the R9 SDK docs?