TP Shapes

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

On 04/09/2003 at 13:52, xxxxxxxx wrote:

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

---------
Howdy,

I can easily create new TP particles and add them to any group. Setting life, transforms, and even data channels seem to work. Problem is that I cannot figure out how to set an object to a particle ( using the shapes, etc... ). Source code possibly?

Thanks!
David Farmer - cidertank

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

On 04/09/2003 at 14:16, xxxxxxxx wrote:

Do you mean from your own node or using the PShape node? The latter is more of a TP usage questions, so I guess it's the former. I think PShape itself just uses TP_MasterSystem::SetShape() so that's where you should start looking. The owner_id would be your own node. Then I suggest that you copy the TP_BaseShape example from the TP_PShapeInterface page. I still think a Particle Geometry object will be necessary.
I don't have any code example but I could look into it if any questions remain.

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

On 05/09/2003 at 10:11, xxxxxxxx wrote:

Hi Mikael,

I am trying to add them through a PluginObject "GetVirtualObject" function without any node. I assume it might be possible to make the object the parent? I will try that later. Since TP is a pain in the but for most users I wrote custom emitters that require no Particle Geometry ( hell, that even confuses me ). The emitter is the parent of course. Anyway, I would be greatly interested in simple plugin object that not only adds TP particles ( I have that working thanks to you ) but also want to see it automatically setting the correct particle shape. Help?

Best Regards,
David Farmer - cidertank

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

On 06/09/2003 at 11:04, xxxxxxxx wrote:

My interpretation of what happens is that Particle Geometry calls TP_MasterSystem::GetVirtualObjects(). That function will then for all particles in 'ingroup' call GetShape(pid), send a TP_MSG_GET_PSHAPEINTERFACE to the node TP_MasterSystem::GetOperator(shape->ownerid), and use the retrieved interface to call TP_PShapeInterface::GetShapeVirtualObjects(). Normally that node will be a PShape outputting its linked object.
So somewhere there has to be a node. Now the question is if that node really has to be inserted into a GV node master, or if you could just allocate a free node and keep track of it yourself. Since I suspect that GetOperatorID() only maintains a list of pointers I think you actually could and then you could use TP totally without visible GV. I haven't tried this though.

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

On 06/09/2003 at 11:22, xxxxxxxx wrote:

I tried creating TP nodes without them being visible but that somehow didn´t work for me. I have to add though that this was in an earlier stage of the SDK and might have changed. Just my experience...
Good luck though.

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

On 02/06/2009 at 00:16, xxxxxxxx wrote:

Hi, any news on this? I would like to add a shape to a particles group without creating a xpresso node, but it seems to be a little bit confusing to me.

Did anyone work on this? Thanks.

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

On 04/06/2009 at 17:20, xxxxxxxx wrote:

Btw, do I have to send any message to the tp mastersystem when I call AllocParticle()? In some cases new particles will not be shown in the editor or info tab of Thinking Particles even the method is called (returns a valid id).

This happens when I click play and the scene reaches the 0 frame again. So in the first run the particles will be in the scene, but they are all gone in the second run, also new particles.

I already tried MSG_CHANGE and MSG_UPDATE but that did not help.

Thanks a lot.