-
Notifications
You must be signed in to change notification settings - Fork 5
/
ILBPRhWrapper.h
41 lines (36 loc) · 1.11 KB
/
ILBPRhWrapper.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#pragma once
enum eLBPRhWrapperType
{
lbprh_wt_none,
lbprh_wt_object,
lbprh_wt_view,
lbprh_wt_material,
lbprh_wt_layer,
lbprh_wt_document,
lbprh_wt_light,
lbprh_wt_rdk_content,
};
class IWrapperBase
{
public:
virtual ON_Object* GetTarget(void) const = 0;
virtual UUID OriginalUuid(void) const = 0;
virtual const ON_Object* OriginalObject(void) const = 0;
virtual bool RemoveData(void) = 0;
virtual void UndoModifications(void) = 0;
virtual bool CommitChanges(void) = 0;
virtual void RecaptureObject(void) = 0;
virtual void Modify(void) = 0;
virtual bool UserDataPresent(void) const = 0;
virtual bool ModificationsPending(void) const = 0;
virtual bool LastReference(void) const = 0;
virtual eLBPRhWrapperType WrapperType(void) const = 0;
virtual void OnModification(void) const = 0;
};
enum eLBPRhWrapper_DefaultUse { lbprh_use_defaults, lbprh_dont_use_defaults };
template<class T> class ILBPRhWrapper : public IWrapperBase
{
public:
virtual const T* UserData(eLBPRhWrapper_DefaultUse du = lbprh_dont_use_defaults) const = 0;
virtual T* UserDataToModify(void) = 0;
};