On 14/03/2013 at 06:31, xxxxxxxx wrote:
could someone please explain how ID_GV_DATA_TYPE_UNDEFINED is meant to be used ?
i have created a data channel of undefinied type. but when i try to read this channel
the console returns TypeError: Unknown type of data channel: .
i need to attach a basecontainer to a tp particle. the brute force solution would be to
attach a null object to each particle and store the data in this null object, but i would
prefer to use basecontainers.
thanks for your help.
On 14/03/2013 at 06:59, xxxxxxxx wrote:
just for the record, c4d.DTYPE_SUBCONTAINER was the first thing i tried, tp does accept it, but
reads it as ColorProfile.
On 14/03/2013 at 10:36, xxxxxxxx wrote:
I'm sorry, I don't get the context. Where are you using c4d.ID_GV_DATA_TYPE_UNDEFINED and
c4d.DTYPE_SUBCONTAINER? Could you show an example?
On 14/03/2013 at 10:58, xxxxxxxx wrote:
def createDataChannel(self) : qlvl = False ... if not qlvl: # c4d.DTYPE_SUBCONTAINER doesn't work as a dtype, tp reads it as the ColorProfile datatype. qpos = tp.AddDataChannel(c4d.ID_GV_DATA_TYPE_UNDEFINED , "qlvl") def getStepData(self, pid, split) : # both lines raise a runtime error as described data = tp.GetPData(pid, cid) tp.SetPData (pid, cid, bc)
i think ID_GV_DATA_TYPE_UNDEFINED is meant to be used with customdatatypes. but i
cannot believe, that it is impossible to insert a basecontainer into the data
channel of a particle.
On 14/03/2013 at 11:20, xxxxxxxx wrote:
I doubt this is possible. There is not BaseContainer datatype for channels, nor can we access
C++ specific custom datatypes (we can not perform any casts in Python and also can not create
wrapper classes, etc.)
A possible workaround would be to use a dictionary associating particle-IDs with BaseContainers
and removing items at an appropriate time if the particle does not exist anymore.