THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 01/08/2012 at 13:43, xxxxxxxx wrote:
User Information:
Cinema 4D Version:
Platform:
Language(s) :
---------
I posted this earlier in another thread, but thought I'd go ahead and post an expanded version of it for anyone interested...
static String VecToString(const Vector& vec)
{
return String(RealToString(vec.x)+" "+RealToString(vec.y)+" "+RealToString(vec.z));
}
static void DumpMatrix(Matrix xform)
{
GePrint("===================");
GePrint("v1 = " + VecToString(xform.v1));
GePrint("v2 = " + VecToString(xform.v2));
GePrint("v3 = " + VecToString(xform.v3));
GePrint("off = " + VecToString(xform.off));
GePrint("===================");
}
void container_dump(BaseContainer *pBc, LONG tab=0)
{
if(!pBc) return;
LONG id, j, i=0;
String tabStr;
for(j=0; j<tab; j++)
tabStr += "____";
while (TRUE)
{
id = pBc->GetIndexId(i++);
if (id==NOTOK) break;
BaseContainer *pbc = NULL;
GeData data = pBc->GetData(id);
switch(data.GetType())
{
case DA_NIL: GePrint(tabStr+LongToString(i)+") id: "+LongToString(id)+" - DA_NIL"); break;
case DA_VOID: GePrint(tabStr+LongToString(i)+") id: "+LongToString(id)+" - DA_VOID"); break;
case DA_LONG: GePrint(tabStr+LongToString(i)+") id: "+LongToString(id)+" - DA_LONG ("+LongToString(data.GetLong())+")"); break;
case DA_REAL: GePrint(tabStr+LongToString(i)+") id: "+LongToString(id)+" - DA_REAL ("+RealToString(data.GetReal())+")"); break;
case DA_TIME: GePrint(tabStr+LongToString(i)+") id: "+LongToString(id)+" - DA_TIME ("+RealToString(data.GetTime().GetNumerator())+" / "+RealToString(data.GetTime().GetDenominator())+")"); break;
case DA_VECTOR: GePrint(tabStr+LongToString(i)+") id: "+LongToString(id)+" - DA_VECTOR ("+VecToString(data.GetVector())+")"); break;
case DA_MATRIX: GePrint(tabStr+LongToString(i)+") id: "+LongToString(id)+" - DA_MATRIX..."); DumpMatrix(data.GetMatrix()); break;
case DA_LLONG: GePrint(tabStr+LongToString(i)+") id: "+LongToString(id)+" - DA_LLONG ("+LLongToString(data.GetLLong())+")"); break;
case DA_BYTEARRAY: GePrint(tabStr+LongToString(i)+") id: "+LongToString(id)+" - DA_BYTEARRAY"); break;
case DA_STRING: GePrint(tabStr+LongToString(i)+") id: "+LongToString(id)+" - DA_STRING (\""+data.GetString()+"\")"); break;
case DA_FILENAME: GePrint(tabStr+LongToString(i)+") id: "+LongToString(id)+" - DA_FILENAME (\""+data.GetFilename().GetString()+"\")"); break;
case DA_CONTAINER: GePrint(tabStr+LongToString(i)+") id: "+LongToString(id)+" - DA_CONTAINER"); pbc = data.GetContainer(); container_dump(pbc, tab+1); break;
case DA_ALIASLINK: GePrint(tabStr+LongToString(i)+") id: "+LongToString(id)+" - DA_ALIASLINK"); break;
case DA_MARKER: GePrint(tabStr+LongToString(i)+") id: "+LongToString(id)+" - DA_MARKER"); break;
case DA_MISSINGPLUG: GePrint(tabStr+LongToString(i)+") id: "+LongToString(id)+" - DA_MISSINGPLUG"); break;
case DA_CUSTOMDATATYPE: GePrint(tabStr+LongToString(i)+") id: "+LongToString(id)+" - DA_CUSTOMDATATYPE"); break;
default: GePrint(tabStr+LongToString(i)+") id: "+LongToString(id)+" - unknown"); break;
}
}
}
...this may be helpful if you're trying to debug some container.
Cheers.