Ok, so I quickly went over this and due to the pointers you gave me the Sphere.cpp makes more sense. So anyway, I've kind of got it working but there something weird that I need to run past you.

If you look at the code below (which is essentially a butchered version of the Sphere.cpp stuff, it compiles fine but I get a triangle comprising of the first 3 points rather that a 4 sided polygon. If I change the add primitive line to |out.add_primitive(obj, new Polygon(0, 1, 2, 3, 4)); |I get the result I expect, a poly with its vertexes at the coords I define. But not sure why 5 values works and only put it in as a wild stab-in-the-dark!

Any idea what's going on? Also, a bit lost about what 'num_points' is actually doing. Am I right to set this to 'n' for a a n-sided poly?

Steve



|void create_geometry(Scene& scene, GeometryList& out)
 {
   int obj = 0;

   unsigned num_points = 4;

   if (rebuild(Mask_Primitives))
   {
     out.delete_objects();
     out.add_object(obj);

     out.add_primitive(obj, new Polygon(0, 1, 2, 3));

     set_rebuild(Mask_Points | Mask_Attributes);
   }

   if (rebuild(Mask_Points)) {
     // Generate points:
     PointList* points = out.writable_points(obj);
     points->resize(num_points);

(*points)[0].set(0, 0, 0);
     (*points)[1].set(0, 10, 0);
     (*points)[2].set(6, 8, 0);
(*points)[3].set(5, 2, 0); } }|

Stephen Newbold wrote:
That's all useful stuff. Cheers guys. I'll give it a proper go as soon as I get a few spare hours.

Steve



Jonathan Egstad wrote:
Btw if you can't preset the primitive sufficiently ahead of time (I had this 
snag with a custom subd primitive) you can set the vertices variable in the 
GeoInfo directly but you'll need to hack the header to get access.

-jonathan

Sent from my iPhone

On Apr 19, 2011, at 3:02 PM, Jonathan Egstad <jegs...@earthlink.net> wrote:

No, just make sure the primitive contains all vert entries - their values don't 
matter, just the total number of them.



Sent from my iPhone

On Apr 19, 2011, at 2:29 PM, Nhat Phong Tran <nhatphong.t...@googlemail.com> 
wrote:

Does that mean that all the PointList stuff and set(x,y,z) should happen before 
add_primitive()??



----------------------------------------------------------
nhat phong tran
dipl. digital artist (FH)
computer graphics & visual effects

m_us: +1 (310) 866-6871
m_de: +49 (176) 24 26 34 27
fax: +49 (321) 213 25 866

santa monica, ca 90401

sent via iPhone
----------------------------------------------------------

On Apr 19, 2011, at 13:30, Jonathan Egstad <jegs...@earthlink.net> wrote:

One (of many) details that's not obvious is the accounting of vertices inside 
the GeoInfo and its importance in maintaining any vertex attribute arrays.  If 
you add additional vertices to a primitive *after* the primitive has already 
been added to the GeoInfo (via GeoInfo::add_primitive()) then vertex attribute 
array sizes can get out of sync possibly causing a crash.

So until that's fixed make sure to completely build your primitive first before 
adding it to the GeoInfo.

-jonathan


On Apr 19, 2011, at 11:55 AM, Nhat Phong Tran wrote:

Well first you need to add an object which holds your primitives (i.e.
a polygon) to your output GeometryList. You can do this like this:

out.addObject(yourObjectID);

Now that you have an object created, you can add your primitives to
it, in your case a polygon.

out.add_primitive(obj, new Polygon(0, 1, 2, 3));

So this allocates a polygon class and assigns points 0-3 to be its
vertices. But this doesn't mean that the polygon's shape has been
defined yet, because the points 0-3 have not a set position yet. To do
this you create a pointer to the pointlist that contains the points of
your object, then you need to resize the pointlist to fit all of your
primitives points. Then you iterate through the points of the polygon
of your interest and set the coordinates of each point.

PointList* points = out.writable_points(yourObjectID);
points->resize(num_points);

for(unsigned int p=0; p<4; p++){
(*points)[p].set(x_pos, y_pos, z_pos);
}

Hope this helps!


Nhat


----------------------------------------------------------
nhat phong tran
dipl. digital artist (FH)
computer graphics & visual effects

m_us: +1 (310) 866-6871
m_de: +49 (176) 24 26 34 27
fax: +49 (321) 213 25 866

santa monica, ca 90401

sent via iPhone
----------------------------------------------------------


On 19 April 2011 09:07, Stephen Newbold <stephe...@moving-picture.com> wrote:
Hi.  Anybody know of any easy to understand documentation on how to create
polygons using the NDK?  I had a look through the Sphere.cpp example that
ships with Nuke and like most things it went completely over my head.  I'm
hoping to be able to create something simple, just a four sided poly defined
by 4 corner points, but have zero idea on how to go about it.

Cheers,
Steve

--
Stephen Newbold
Senior Compositor - Film
MPC
127 Wardour Street
Soho, London, W1F 0NL
Main - + 44 (0) 20 7434 3100
www.moving-picture.com

_______________________________________________
Nuke-dev mailing list
Nuke-dev@support.thefoundry.co.uk
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev

_______________________________________________
Nuke-dev mailing list
Nuke-dev@support.thefoundry.co.uk
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev
_______________________________________________
Nuke-dev mailing list
Nuke-dev@support.thefoundry.co.uk
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev
_______________________________________________
Nuke-dev mailing list
Nuke-dev@support.thefoundry.co.uk
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev
_______________________________________________
Nuke-dev mailing list
Nuke-dev@support.thefoundry.co.uk
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev
_______________________________________________
Nuke-dev mailing list
Nuke-dev@support.thefoundry.co.uk
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev


--
Stephen Newbold
Senior Compositor - Film
MPC
127 Wardour Street
Soho, London, W1F 0NL
Main - + 44 (0) 20 7434 3100
www.moving-picture.com
------------------------------------------------------------------------

_______________________________________________
Nuke-dev mailing list
Nuke-dev@support.thefoundry.co.uk
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev


--
Stephen Newbold
Senior Compositor - Film
MPC
127 Wardour Street
Soho, London, W1F 0NL
Main - + 44 (0) 20 7434 3100
www.moving-picture.com

_______________________________________________
Nuke-dev mailing list
Nuke-dev@support.thefoundry.co.uk
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev

Reply via email to