Select an inactive object
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 21/07/2011 at 22:23, xxxxxxxx wrote:
Perfect.. Thanks Robert. I wish I could email you a beer or something. You really ought to be paid for all the help you give.
Thanks again!
~Shawn
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 22/07/2011 at 12:12, xxxxxxxx wrote:
Hey Robert, so your method works great. I am able to select objects and use qualifiers to multi select or deselect. One more question. How would i deselect all if the user clicks an area where there is no object behind the cursor?
Thanks,
Shawn
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 22/07/2011 at 12:37, xxxxxxxx wrote:
Hey Shawn,
Try it with a RayCollision.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 22/07/2011 at 13:23, xxxxxxxx wrote:
I would check the C4DObjectList for (cnt == 0) or (!cnt) as I do and if this is the case on a mouse click then you call:
if (!cnt)
{
AutoAlloc<AtomArray> atomArray;
if (atomArray)
{
BaseObject* sobj = NULL;
doc->GetActiveObjects(*atomArray, FALSE);
LONG cnt = atomArray->GetCount();
for (LONG i = 0L; i != cnt; ++i)
{
static_cast<BaseObject*>(atomArray->GetIndex(i))->DelBit(BIT_ACTIVE);
}
EventAdd();
}
} -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 22/07/2011 at 13:57, xxxxxxxx wrote:
Hmmm..
Well I added what you mentioned and it still does nothing when I click off an object.. Here's my function.. This function is called directly from MouseInput()
//SELECT OBJECT //==============================================// Bool MyClass::SelectObject(BaseDraw *bd) { //Get the active document BaseDocument *doc = GetActiveDocument(); if(!doc) return FALSE; //Check to see if the cursor is in the editor window if(mouseX < 0.0) return FALSE; //Add all objects under the cursor to the Object List AutoAlloc<C4DObjectList> objList; if (!objList)return FALSE; if (!SelectionListCreate(doc, NULL, bd, mouseX, mouseY, NULL, objList)) return FALSE; LONG objectCount = objList->GetCount(); if (!objectCount) return FALSE; BaseObject *obj = NULL; if (!objectCount) { GePrint("NO OBJECT"); AutoAlloc<AtomArray> atomArray; if (atomArray) { BaseObject* sobj = NULL; doc->GetActiveObjects(*atomArray, FALSE); LONG cnt = atomArray->GetCount(); for (int i = 0; i != cnt; ++i) { static_cast<BaseObject*>(atomArray->GetIndex(i))->DelBit(BIT_ACTIVE); } EventAdd(); } } //Loop through objects for(int i = 0; i < objectCount; ++i) { obj = objList->GetObject(i); BaseContainer state; if (GetInputEvent(BFM_INPUT_KEYBOARD, state)) { LONG key = state.GetLong(BFM_INPUT_QUALIFIER); if(key & QCTRL) { doc->SetActiveObject(obj, SELECTION_SUB); EventAdd(EVENT_FORCEREDRAW); } else if(key & QSHIFT) { doc->SetActiveObject(obj, SELECTION_ADD); EventAdd(EVENT_FORCEREDRAW); } else { doc->SetActiveObject(obj, SELECTION_NEW); EventAdd(EVENT_FORCEREDRAW); } } } }
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 22/07/2011 at 13:59, xxxxxxxx wrote:
Interestingly... the GePrint() that I added never shows up which must mean that objectCount is never = 0.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 22/07/2011 at 14:02, xxxxxxxx wrote:
DOH! That was stupid..
This line was the reason...
if(!objectCount) return FALSE;
LOL
Oye.. Tired eyes.
Thanks again Robert.
~Shawn
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 22/07/2011 at 16:10, xxxxxxxx wrote:
Get thee to bed.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 22/07/2011 at 16:12, xxxxxxxx wrote:
And you can get rid of the "BaseObject* sobj = NULL;" since I made the DelBit() a one-liner into atomArray instead of getting the object and then calling DelBit().
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 22/07/2011 at 16:16, xxxxxxxx wrote:
Already done.. Thanks. I got tired of looking at the "Initialized but not referenced " warning HAHAHA
I'm about to call it a night. I've been at it for a while today. Lots of good progress though. Thanks a lot for your help.
~Shawn