IN_EXLUDE
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 05/12/2006 at 02:40, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 9.507
Platform: Windows ;
Language(s) : C++ ;---------
Hi
in one of my description files which belongs to a tagplugin is an IN_EXLUDE field where i want to drop in other objects. If the user drops an object into the IN_EXLUDE field, the dropped in object should get the same position as the owner object of the tag plugin.
Can somebody help me with that? -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 05/12/2006 at 04:00, xxxxxxxx wrote:
What do you mean with same position, the same postion in 3D space?
cheers,
Matthias -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 05/12/2006 at 04:39, xxxxxxxx wrote:
Yes, the coordinates (in space) should be the same.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 05/12/2006 at 06:26, xxxxxxxx wrote:
If you are going for position, rotation, scale, then this should suffice:
// Just for reference, set wherever you do this
BaseObject* tagObj;
BaseObject* dropObj;dropObj->SetMg(tagObj->GetMg());
That'll set the dropped object's global matrix to match that of the object with the tag plugin.
If you just want position, then you will need to do a little more work:
SetGlobalPosition(dropObj, tagObj->GetMg().off);
// Set Object's Global Position
//*---------------------------------------------------------------------------*
void SetGlobalPosition(BaseObject* obj, const Vector& pos)
//*---------------------------------------------------------------------------*
{
Matrix mg = obj->GetMg();
mg.off = pos;
obj->SetMg(mg);
} -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 08/12/2006 at 02:18, xxxxxxxx wrote:
Thx for this kuroyume.
But my problem is that i don't know how to access the IN_EXCLUDE field. I need an operation like:
dropObj = (dropped item in IN_EXCLUDE field)
hope somebody knows what i mean ^^ -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 08/12/2006 at 09:47, xxxxxxxx wrote:
Maybe this link will help?
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/12/2006 at 06:35, xxxxxxxx wrote:
Here a little example of a modified Execute function that prints the name of the objects in the in/exclude list.
LONG LookAtCamera::Execute(PluginTag *tag, BaseDocument *doc, BaseObject *op, BaseThread *bt, LONG priority, LONG flags) { BaseContainer *data = tag->GetDataInstance(); InExcludeData *mylist = (InExcludeData* )data->GetCustomDataType(LOOKATCAMERAEXP_LIST,CUSTOMDATATYPE_INEXCLUDE_LIST); if (!mylist ) return LOAD_NOMEM; LONG objcnt = mylist->GetObjectCount(); LONG i; for(i=0; i<objcnt; i++) { GePrint(mylist->ObjectFromIndex(doc, i)->GetName()); } return EXECUTION_RESULT_OK; }
hope this helps
cheers,
Matthias -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/12/2006 at 00:26, xxxxxxxx wrote:
Thanks for this kuroyume and Matthias. Think this will work
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/12/2006 at 06:28, xxxxxxxx wrote:
OK the thing with the IN_EXCLUDE field works now. But i got a little problem with the following source:
BaseContainer *data = tag->GetDataInstance();
InExcludeData *mylist = (InExcludeData* )data->GetCustomDataType(ID_DROP_YP,CUSTOMDATATYPE_INEXCLUDE_LIST);
if (!mylist ) return LOAD_NOMEM;
LONG objcnt = mylist->GetObjectCount();
for(LONG i=0; i<objcnt; i++)
{
Vector posnew = (100,100,100);
BaseContainer *drpndata = mylist->ObjectFromIndex(doc, i)->GetDataInstance();
drpndata->SetVector(ID_BASEOBJECT_POSITION,newpos);
}
I want to change the position vector of the dropped in data to posnew and i thought this should work, but it doesn't. Any ideas???
Or is there a way to change position like this:
{
Vector posnew = (100,100,100);
BaseObject *drpndata = mylist->ObjectFromIndex(doc, i); ***
drpndata->SetPos(posnew);
}
*** I know this doesn't work, but is there a way to convert the IN_EXCLUDE mylist to a BaseObject to acccess the SetPos function??? -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/12/2006 at 09:23, xxxxxxxx wrote:
You have to cast the result of ObjectFromIndex, for instance like this:
BaseObject *drpndata = (BaseObject* )mylist->ObjectFromIndex(doc, i);
cheers,
Matthias -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/12/2006 at 11:24, xxxxxxxx wrote:
This works really great. Thanks a lot Matthias
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 15/12/2006 at 00:17, xxxxxxxx wrote:
Another question, concerning layouting the IN_EXCLUDE field. Is there a way to specify the size of the IN_EXCLUDE field, cause my field is to small to add e.g. an cylinder object so you have to scroll in the field.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 18/12/2006 at 07:10, xxxxxxxx wrote:
You have to set SCALE_V in the descriptio for both the GROUP and the description element, little example:
GROUP ID_TAGPROPERTIES { SCALE_V; IN_EXCLUDE LOOKATCAMERAEXP_LIST { NUM_FLAGS 0; SCALE_V; ACCEPT { Obase; } } }
cheers,
Matthias -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 19/12/2006 at 01:52, xxxxxxxx wrote:
OK thanks for that Matthias. But i got still more questions
Is there a way to limit the number of objects, that can be dropped in the IN_EXCLUDE field?