//================================================================
// EQUINOX-3D(TM) plugin
//
// - Edit selected Node, Object, PolyGroup etc
//
// AUTHOR:  Gabor Nagy
// DATE:    2026-Apr-16 02:09:56
//
// Copyright (C) 1996-2026 By Gabor Nagy. All rights reserved.
//================================================================

extern EPlugin*  _EditInfoPlugin;

extern E3dLock  _ObjectEditLock;


extern void   _Object_Edit(E3dModel* PModel, E3dObject* PObject, EIndex PLODIndex, EObject* PSubObject, EIndex PPointIndex, E3dObjectComponentClass* POpenFolderForThisComponentClass);

extern EBool  _PolyGroup_IsEdited(E3dPolyGroup* PPolyGroup);
extern void   _PolyGroupPanel_Update(const E3dPolyGroup* PPolyGroup);


extern void  E3dObjectEdit_Init(void);
extern void  E3dObjectEdit_Cleanup(void);

//--------------------------------
// EditObject.c
//--------------------------------
extern void  _DCB_VertexAttribute(XeWidget PW, EPointer PClientData, EPointer PCallData);
extern void  _VertexAttributesGUI(E3dVertexGeometryGUI* PGUI, XeWidget PTopMatrixW, E3dVertexGeometry* PVertexGeometry, const EBool PNew, void* PPanel, const int PAction);

extern void  _PointSet_GUI(ECoreObject* PObject, XeInfoPanel* PPanelIn, void* PDrawerIn, const int PAction);

//--------------------------------
// EditMesh.c
//--------------------------------
extern EBool          _PolyGroupUI_SceneCallbackAdded;
extern E3dPolyGroup*  _PolyGroupUI_GetEdited(void);

extern void           _EditCB_ScenePolyGroup(ECoreObject* PScn, EPointer PClientData, ECallbackStruct* PCallData);
extern void           _PolyGroupUI_PopupDialog(const E3dPolyGroup* PPolyGroup, const E3dObjectComponentClass* POpenFolderForThisComponentClass, const EBool PRaiseDialogBox);
extern void           _Mesh_GUI(ECoreObject* PObject, XeInfoPanel* PPanel, void* PDrawer, const int PAction);
