Polygon Plane

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 06/03/2010 at 20:13, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   11.5 
Platform:   Windows  ;   
Language(s) :     C++  ;

---------
Hey everyone,

Could anyone tell me the process involved in creating a polygon plane object from scratch?  Or point toward something that can guide me through this process.

Thanks,

~Shawn

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 08/03/2010 at 09:41, xxxxxxxx wrote:

Anyone have any info about this.  I want to know how to create a plane from scratch.  Not creating a plane primitive, but creating a polygon object and adjusting its points and polygons to create a plane.  Is there something that could point me in the right direction.  I checked out the rounded tube sample in the SDK but I do not see where the geometry is created.

Thanks,

~Shawn

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 08/03/2010 at 12:22, xxxxxxxx wrote:

Hi, this little example will create a quad with the given coordinates:

  
BaseObject *drawPlane::GetVirtualObjects(PluginObject *op, HierarchyHelp *hh)   
{   
     PolygonObject *obj = NULL;   
     Vector *padr=NULL;   
     CPolygon *vadr=NULL;   
     obj = PolygonObject::Alloc(4,1);   
     if (!obj) goto Error;   
     padr=obj->GetPointW();   
     vadr=obj->GetPolygonW();   
     padr[0] = Vector(-100,0,-100);   
     padr[1] = Vector(-100,0,100);   
     padr[2] = Vector(100,0,100);   
     padr[3] = Vector(100,0,-100);   
     vadr[0] = CPolygon(0,1,2,3);   
     return obj;   
Error:   
     return NULL;   
}   

hope it helps..
cheers,
ello

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 08/03/2010 at 12:33, xxxxxxxx wrote:

Great, thanks ello.    I want to be able to control the number of polys on the plane so I would do this by creating more polys like this?

Thanks again.

~Shawn

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 08/03/2010 at 13:29, xxxxxxxx wrote:

yes, you just need to allocate the PolygonObject corresponding to that number, or you adjust it later on with ResizeObject(LONG pcnt, LONG vcnt)

cheers,
ello

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 08/03/2010 at 15:18, xxxxxxxx wrote:

Hi ello,   I copied and pasted your code in to my object plugin just to see how it works and I get nothing.  No polygon is created.  Any thoughts as yo why this is?

Thanks,

~Shawn

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 08/03/2010 at 23:15, xxxxxxxx wrote:

hm. it worked at home. i'll give it another try here at work when i have a break...

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 08/03/2010 at 23:33, xxxxxxxx wrote:

ok, it works here, too.

here is my whole code:

  
#define pluginID 1000001   
#include "c4d.h"   
#include "c4d_symbols.h"   
#include "customgui_description.h"   
  
#define pluginName "testObj"   
  
class testObj : public ObjectData   
{        
     INSTANCEOF(testObj,ObjectData);   
public:   
     virtual Bool Init(GeListNode *node);   
     virtual BaseObject* GetVirtualObjects(PluginObject *op, HierarchyHelp *hh);   
     virtual Bool Message(GeListNode *node, LONG type, void *t_data);   
     static NodeData *Alloc(void) { return gNew testObj; }   
};   
  
  
  
Bool testObj::Init(GeListNode *node)   
{   
     BaseObject          *op          = (BaseObject* )node;   
     BaseContainer *data = op->GetDataInstance();   
  
     return TRUE;   
}   
  
Bool testObj::Message(GeListNode *node, LONG type, void *t_data)   
{   
     if (type==MSG_DESCRIPTION_VALIDATE)   
     {   
          BaseContainer *data = ((BaseObject* )node)->GetDataInstance();   
     }   
     return TRUE;   
}   
  
BaseObject *testObj::GetVirtualObjects(PluginObject *op, HierarchyHelp *hh)   
{   
     PolygonObject *obj = NULL;   
     Vector *padr=NULL;   
     CPolygon *vadr=NULL;   
     obj = PolygonObject::Alloc(4,1);   
     if (!obj) goto Error;   
     padr=obj->GetPointW();   
     vadr=obj->GetPolygonW();   
     padr[0] = Vector(-100,0,-100);   
     padr[1] = Vector(-100,0,100);   
     padr[2] = Vector(100,0,100);   
     padr[3] = Vector(100,0,-100);   
     vadr[0] = CPolygon(0,1,2,3);   
     return obj;   
Error:   
     return NULL;   
}   
  
  
  
Bool Register_testObj(void)   
{   
     return RegisterObjectPlugin(pluginID,pluginName,OBJECT_GENERATOR|OBJECT_INPUT,testObj::Alloc,"OtestObj","testObj.tif",0);   
}   

hope it works for you..