#include "c4d_memory.h" #include "c4d_general.h" #include "c4d_tools.h" #include "c4d_basebitmap.h" #include "c4d_scenehookplugin.h" #include "c4d_file.h" Bool SceneHookData::MouseInput(BaseSceneHook* node, BaseDocument* doc, BaseDraw* bd, EditorWindow* win, const BaseContainer& msg) { return false; } Bool SceneHookData::DisplayControl(BaseDocument* doc, BaseObject* op, BaseObject* chainstart, BaseDraw* bd, BaseDrawHelp* bh, ControlDisplayStruct& cds) { return false; } Bool SceneHookData::InitDisplayControl(BaseSceneHook* node, BaseDocument* doc, BaseDraw* bd, const AtomArray* active) { return false; } void SceneHookData::FreeDisplayControl(void) { } Bool SceneHookData::KeyboardInput(BaseSceneHook* node, BaseDocument* doc, BaseDraw* bd, EditorWindow* win, const BaseContainer& msg) { return false; } Bool SceneHookData::GetCursorInfo(BaseSceneHook* node, BaseDocument* doc, BaseDraw* bd, Float x, Float y, BaseContainer& bc) { return false; } Bool SceneHookData::Draw(BaseSceneHook* node, BaseDocument* doc, BaseDraw* bd, BaseDrawHelp* bh, BaseThread* bt, SCENEHOOKDRAW flags) { return true; } Bool SceneHookData::AddToExecution(BaseSceneHook* node, PriorityList* list) { return false; } EXECUTIONRESULT SceneHookData::InitSceneHook(BaseSceneHook* node, BaseDocument* doc, BaseThread* bt) { return EXECUTIONRESULT_OK; } void SceneHookData::FreeSceneHook(BaseSceneHook* node, BaseDocument* doc) { } EXECUTIONRESULT SceneHookData::Execute(BaseSceneHook* node, BaseDocument* doc, BaseThread* bt, Int32 priority, EXECUTIONFLAGS flags) { return EXECUTIONRESULT_OK; } static void FillSceneHookPlugin(SCENEHOOKPLUGIN* np, DataAllocator* npalloc, Int32 info, Int32 disklevel, Int32 priority, void* emulation) { FillNodePlugin(np, info, npalloc, nullptr, disklevel, emulation); np->draw_priority = priority; np->MouseInput = &SceneHookData::MouseInput; np->GetCursorInfo = &SceneHookData::GetCursorInfo; np->Draw = &SceneHookData::Draw; np->AddToExecution = &SceneHookData::AddToExecution; np->InitSceneHook = &SceneHookData::InitSceneHook; np->FreeSceneHook = &SceneHookData::FreeSceneHook; np->Execute = &SceneHookData::Execute; np->KeyboardInput = &SceneHookData::KeyboardInput; np->DisplayControl = &SceneHookData::DisplayControl; np->InitDisplayControl = &SceneHookData::InitDisplayControl; np->FreeDisplayControl = &SceneHookData::FreeDisplayControl; } Bool RegisterSceneHookPlugin(Int32 id, const String& str, Int32 info, DataAllocator* npalloc, Int32 priority, Int32 disklevel, void* emulation) { SCENEHOOKPLUGIN np; ClearMem(&np, sizeof(np)); FillSceneHookPlugin(&np, npalloc, info, disklevel, priority, emulation); return GeRegisterPlugin(PLUGINTYPE_SCENEHOOK, id, str, &np, sizeof(np)); }