# CoreInterface

> Class

Inheritance

* [object](https://learn.microsoft.com/dotnet/api/system.object)
* [Interface](./api_interface)
* CoreInterface

***

Inherited Members

* [Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object\))

* [Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object-system-object\))

* [GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode)

* [GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype)

* [MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone)

* [ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals)

* [ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)

***

Namespace: UnityEngine.Pixyz.Core

```csharp
public class CoreInterface : Interface
```

## Fields

### Epsilon

```csharp
public const double Epsilon = 1E-06
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) |             |

### EpsilonSquare

```csharp
public const double EpsilonSquare = 1E-12
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) |             |

### HalfPi

```csharp
public const double HalfPi = 1.5707963267948966
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) |             |

### Infinity

```csharp
public const double Infinity = 1000000000000
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) |             |

### OneDegree

```csharp
public const double OneDegree = 0.017453292519943295
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) |             |

### Pi

```csharp
public const double Pi = 3.141592653589793
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) |             |

### TwoPi

```csharp
public const double TwoPi = 6.283185307179586
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) |             |

## Methods

### GetLastError

```csharp
public static string GetLastError()
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) |             |

### CloneEntity

Clone an entity.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CloneEntity(uint entity)
```

Parameters

| Type                                                         | Name   | Description          |
| ------------------------------------------------------------ | ------ | -------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | entity | The entity to clone. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### ConfigureFunctionLogger

```csharp
[HandleProcessCorruptedStateExceptions]
public void ConfigureFunctionLogger(string functionName, bool enableFunction, bool enableParameters, bool enableExecutionTime)
```

Parameters

| Type                                                           | Name                | Description |
| -------------------------------------------------------------- | ------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | functionName        |             |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean)  | enableFunction      |             |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean)  | enableParameters    |             |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean)  | enableExecutionTime |             |

### CreateEntity

Create an entity.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint CreateEntity(uint type)
```

Parameters

| Type                                                         | Name | Description                   |
| ------------------------------------------------------------ | ---- | ----------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | type | The type of entity to create. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### DeleteEntities

Delete a set of entities.

```csharp
[HandleProcessCorruptedStateExceptions]
public void DeleteEntities(EntityList entities)
```

Parameters

| Type                            | Name     | Description               |
| ------------------------------- | -------- | ------------------------- |
| [EntityList](./core_entitylist) | entities | List of entity to delete. |

### GetEntitiesByType

Get all entities of a given type.

```csharp
[HandleProcessCorruptedStateExceptions]
public EntityList GetEntitiesByType(uint type, bool includeUnsubscribed)
```

Parameters

| Type                                                          | Name                | Description                       |
| ------------------------------------------------------------- | ------------------- | --------------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)  | type                | The type of entities to retrieve. |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | includeUnsubscribed | Include unsubscribed entities.    |

Returns

| Type                            | Description |
| ------------------------------- | ----------- |
| [EntityList](./core_entitylist) |             |

### GetRemainingSecondsBeforeLicenseTimeout

Get the seconds left before the app force-closes after the license server is disconnected.

```csharp
[HandleProcessCorruptedStateExceptions]
public double GetRemainingSecondsBeforeLicenseTimeout()
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [double](https://learn.microsoft.com/dotnet/api/system.double) |             |

### ResetSession

Clear all the current session (all unsaved work will be lost).

```csharp
[HandleProcessCorruptedStateExceptions]
public void ResetSession()
```

### UnsavedUserChanges

Returns true if the user has made changes to the project.

```csharp
[HandleProcessCorruptedStateExceptions]
public bool UnsavedUserChanges()
```

Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### AddAfterEntityPropertyChangedCallback

```csharp
public uint AddAfterEntityPropertyChangedCallback(CoreInterface.AfterEntityPropertyChangedDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                                                   | Name     | Description |
| ------------------------------------------------------------------------------------------------------ | -------- | ----------- |
| [CoreInterface.AfterEntityPropertyChangedDelegate](./coreinterface_afterentitypropertychangeddelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                                         | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveAfterEntityPropertyChangedCallback

```csharp
public void RemoveAfterEntityPropertyChangedCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddAfterModulePropertyChangedCallback

```csharp
public uint AddAfterModulePropertyChangedCallback(CoreInterface.AfterModulePropertyChangedDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                                                   | Name     | Description |
| ------------------------------------------------------------------------------------------------------ | -------- | ----------- |
| [CoreInterface.AfterModulePropertyChangedDelegate](./coreinterface_aftermodulepropertychangeddelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                                         | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveAfterModulePropertyChangedCallback

```csharp
public void RemoveAfterModulePropertyChangedCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddAfterUndoRedoCallback

```csharp
public uint AddAfterUndoRedoCallback(CoreInterface.AfterUndoRedoDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                         | Name     | Description |
| ---------------------------------------------------------------------------- | -------- | ----------- |
| [CoreInterface.AfterUndoRedoDelegate](./coreinterface_afterundoredodelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)               | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveAfterUndoRedoCallback

```csharp
public void RemoveAfterUndoRedoCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddAtExitCallback

```csharp
public uint AddAtExitCallback(CoreInterface.AtExitDelegate callback, IntPtr userData)
```

Parameters

| Type                                                           | Name     | Description |
| -------------------------------------------------------------- | -------- | ----------- |
| [CoreInterface.AtExitDelegate](./coreinterface_atexitdelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr) | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveAtExitCallback

```csharp
public void RemoveAtExitCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddBeforeEntityPropertyChangedCallback

```csharp
public uint AddBeforeEntityPropertyChangedCallback(CoreInterface.BeforeEntityPropertyChangedDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                                                     | Name     | Description |
| -------------------------------------------------------------------------------------------------------- | -------- | ----------- |
| [CoreInterface.BeforeEntityPropertyChangedDelegate](./coreinterface_beforeentitypropertychangeddelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                                           | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveBeforeEntityPropertyChangedCallback

```csharp
public void RemoveBeforeEntityPropertyChangedCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddBeforeModulePropertyChangedCallback

```csharp
public uint AddBeforeModulePropertyChangedCallback(CoreInterface.BeforeModulePropertyChangedDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                                                     | Name     | Description |
| -------------------------------------------------------------------------------------------------------- | -------- | ----------- |
| [CoreInterface.BeforeModulePropertyChangedDelegate](./coreinterface_beforemodulepropertychangeddelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                                           | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveBeforeModulePropertyChangedCallback

```csharp
public void RemoveBeforeModulePropertyChangedCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddBeforeSessionResetCallback

```csharp
public uint AddBeforeSessionResetCallback(CoreInterface.BeforeSessionResetDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                                   | Name     | Description |
| -------------------------------------------------------------------------------------- | -------- | ----------- |
| [CoreInterface.BeforeSessionResetDelegate](./coreinterface_beforesessionresetdelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                         | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveBeforeSessionResetCallback

```csharp
public void RemoveBeforeSessionResetCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddBeforeUndoRedoCallback

```csharp
public uint AddBeforeUndoRedoCallback(CoreInterface.BeforeUndoRedoDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                           | Name     | Description |
| ------------------------------------------------------------------------------ | -------- | ----------- |
| [CoreInterface.BeforeUndoRedoDelegate](./coreinterface_beforeundoredodelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                 | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveBeforeUndoRedoCallback

```csharp
public void RemoveBeforeUndoRedoCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddCurrentFileChangedCallback

```csharp
public uint AddCurrentFileChangedCallback(CoreInterface.CurrentFileChangedDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                                   | Name     | Description |
| -------------------------------------------------------------------------------------- | -------- | ----------- |
| [CoreInterface.CurrentFileChangedDelegate](./coreinterface_currentfilechangeddelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                         | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveCurrentFileChangedCallback

```csharp
public void RemoveCurrentFileChangedCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddEnteringUnsafeModeCallback

```csharp
public uint AddEnteringUnsafeModeCallback(CoreInterface.EnteringUnsafeModeDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                                   | Name     | Description |
| -------------------------------------------------------------------------------------- | -------- | ----------- |
| [CoreInterface.EnteringUnsafeModeDelegate](./coreinterface_enteringunsafemodedelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                         | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveEnteringUnsafeModeCallback

```csharp
public void RemoveEnteringUnsafeModeCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddEntityDestroyedCallback

```csharp
public uint AddEntityDestroyedCallback(CoreInterface.EntityDestroyedDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                             | Name     | Description |
| -------------------------------------------------------------------------------- | -------- | ----------- |
| [CoreInterface.EntityDestroyedDelegate](./coreinterface_entitydestroyeddelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                   | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveEntityDestroyedCallback

```csharp
public void RemoveEntityDestroyedCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddLeavingUnsafeModeCallback

```csharp
public uint AddLeavingUnsafeModeCallback(CoreInterface.LeavingUnsafeModeDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                                 | Name     | Description |
| ------------------------------------------------------------------------------------ | -------- | ----------- |
| [CoreInterface.LeavingUnsafeModeDelegate](./coreinterface_leavingunsafemodedelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                       | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveLeavingUnsafeModeCallback

```csharp
public void RemoveLeavingUnsafeModeCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddLicenseClientDisconnectedCallback

```csharp
public uint AddLicenseClientDisconnectedCallback(CoreInterface.LicenseClientDisconnectedDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                                                 | Name     | Description |
| ---------------------------------------------------------------------------------------------------- | -------- | ----------- |
| [CoreInterface.LicenseClientDisconnectedDelegate](./coreinterface_licenseclientdisconnecteddelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                                       | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveLicenseClientDisconnectedCallback

```csharp
public void RemoveLicenseClientDisconnectedCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddLicenseClientReconnectedCallback

```csharp
public uint AddLicenseClientReconnectedCallback(CoreInterface.LicenseClientReconnectedDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                                               | Name     | Description |
| -------------------------------------------------------------------------------------------------- | -------- | ----------- |
| [CoreInterface.LicenseClientReconnectedDelegate](./coreinterface_licenseclientreconnecteddelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                                     | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveLicenseClientReconnectedCallback

```csharp
public void RemoveLicenseClientReconnectedCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddOnConsoleMessageCallback

```csharp
public uint AddOnConsoleMessageCallback(CoreInterface.OnConsoleMessageDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                               | Name     | Description |
| ---------------------------------------------------------------------------------- | -------- | ----------- |
| [CoreInterface.OnConsoleMessageDelegate](./coreinterface_onconsolemessagedelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                     | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveOnConsoleMessageCallback

```csharp
public void RemoveOnConsoleMessageCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddOnSessionResetCallback

```csharp
public uint AddOnSessionResetCallback(CoreInterface.OnSessionResetDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                           | Name     | Description |
| ------------------------------------------------------------------------------ | -------- | ----------- |
| [CoreInterface.OnSessionResetDelegate](./coreinterface_onsessionresetdelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                 | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveOnSessionResetCallback

```csharp
public void RemoveOnSessionResetCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddProgressChangedCallback

```csharp
public uint AddProgressChangedCallback(CoreInterface.ProgressChangedDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                             | Name     | Description |
| -------------------------------------------------------------------------------- | -------- | ----------- |
| [CoreInterface.ProgressChangedDelegate](./coreinterface_progresschangeddelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                   | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveProgressChangedCallback

```csharp
public void RemoveProgressChangedCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddProgressStepFinishedCallback

```csharp
public uint AddProgressStepFinishedCallback(CoreInterface.ProgressStepFinishedDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                                       | Name     | Description |
| ------------------------------------------------------------------------------------------ | -------- | ----------- |
| [CoreInterface.ProgressStepFinishedDelegate](./coreinterface_progressstepfinisheddelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                             | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveProgressStepFinishedCallback

```csharp
public void RemoveProgressStepFinishedCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddProgressStepStartCallback

```csharp
public uint AddProgressStepStartCallback(CoreInterface.ProgressStepStartDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                                 | Name     | Description |
| ------------------------------------------------------------------------------------ | -------- | ----------- |
| [CoreInterface.ProgressStepStartDelegate](./coreinterface_progressstepstartdelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                       | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveProgressStepStartCallback

```csharp
public void RemoveProgressStepStartCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddDebugEventCallback

```csharp
public uint AddDebugEventCallback(CoreInterface.DebugEventDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                   | Name     | Description |
| ---------------------------------------------------------------------- | -------- | ----------- |
| [CoreInterface.DebugEventDelegate](./coreinterface_debugeventdelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)         | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveDebugEventCallback

```csharp
public void RemoveDebugEventCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### GetEvent

Get EventDesc of an event.

```csharp
[HandleProcessCorruptedStateExceptions]
public EventDesc GetEvent(string moduleName, string eventName)
```

Parameters

| Type                                                           | Name       | Description         |
| -------------------------------------------------------------- | ---------- | ------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | moduleName | Target module name. |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | eventName  |                     |

Returns

| Type                          | Description |
| ----------------------------- | ----------- |
| [EventDesc](./core_eventdesc) |             |

### GetEvents

Get events of a group.

```csharp
[HandleProcessCorruptedStateExceptions]
public EventDescList GetEvents(string moduleName, string groupName)
```

Parameters

| Type                                                           | Name       | Description         |
| -------------------------------------------------------------- | ---------- | ------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | moduleName | Target module name. |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | groupName  | Target group name.  |

Returns

| Type                                  | Description |
| ------------------------------------- | ----------- |
| [EventDescList](./core_eventdesclist) |             |

### GetFunction

Get FunctionDesc of a function.

```csharp
[HandleProcessCorruptedStateExceptions]
public FunctionDesc GetFunction(string moduleName, string functionName)
```

Parameters

| Type                                                           | Name         | Description           |
| -------------------------------------------------------------- | ------------ | --------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | moduleName   | Target module name.   |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | functionName | Target function name. |

Returns

| Type                                | Description |
| ----------------------------------- | ----------- |
| [FunctionDesc](./core_functiondesc) |             |

### GetFunctions

Get functions of a group.

```csharp
[HandleProcessCorruptedStateExceptions]
public FunctionDescList GetFunctions(string moduleName, string groupName)
```

Parameters

| Type                                                           | Name       | Description         |
| -------------------------------------------------------------- | ---------- | ------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | moduleName | Target module name. |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | groupName  | Target group name.  |

Returns

| Type                                        | Description |
| ------------------------------------------- | ----------- |
| [FunctionDescList](./core_functiondesclist) |             |

### GetGroup

Get a group desc from a specific module.

```csharp
[HandleProcessCorruptedStateExceptions]
public GroupDesc GetGroup(string moduleName, string groupName)
```

Parameters

| Type                                                           | Name       | Description         |
| -------------------------------------------------------------- | ---------- | ------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | moduleName | Target module name. |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | groupName  | Target group name.  |

Returns

| Type                          | Description |
| ----------------------------- | ----------- |
| [GroupDesc](./core_groupdesc) |             |

### GetGroups

Get all group desc of a module.

```csharp
[HandleProcessCorruptedStateExceptions]
public GroupDescList GetGroups(string moduleName)
```

Parameters

| Type                                                           | Name       | Description         |
| -------------------------------------------------------------- | ---------- | ------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | moduleName | Target module name. |

Returns

| Type                                  | Description |
| ------------------------------------- | ----------- |
| [GroupDescList](./core_groupdesclist) |             |

### GetModuleTypes

Get TypeDescList from a module name.

```csharp
[HandleProcessCorruptedStateExceptions]
public TypeDescList GetModuleTypes(string moduleName)
```

Parameters

| Type                                                           | Name       | Description         |
| -------------------------------------------------------------- | ---------- | ------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | moduleName | Target module name. |

Returns

| Type                                | Description |
| ----------------------------------- | ----------- |
| [TypeDescList](./core_typedesclist) |             |

### GetModules

Get all modules desc.

```csharp
[HandleProcessCorruptedStateExceptions]
public ModuleDescList GetModules()
```

Returns

| Type                                    | Description |
| --------------------------------------- | ----------- |
| [ModuleDescList](./core_moduledesclist) |             |

### GetModulesName

Get all modules name.

```csharp
[HandleProcessCorruptedStateExceptions]
public StringList GetModulesName()
```

Returns

| Type                            | Description |
| ------------------------------- | ----------- |
| [StringList](./core_stringlist) |             |

### GetType

Get TypeDesc from a type name.

```csharp
[HandleProcessCorruptedStateExceptions]
public TypeDesc GetType(string moduleName, string typeNameStr)
```

Parameters

| Type                                                           | Name        | Description         |
| -------------------------------------------------------------- | ----------- | ------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | moduleName  | Target module name. |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | typeNameStr | Target type name.   |

Returns

| Type                        | Description |
| --------------------------- | ----------- |
| [TypeDesc](./core_typedesc) |             |

### GetTypeAttributes

Get attributes TypeDesc from a type name.

```csharp
[HandleProcessCorruptedStateExceptions]
public StringPairList GetTypeAttributes(string moduleName, string typeNameStr)
```

Parameters

| Type                                                           | Name        | Description         |
| -------------------------------------------------------------- | ----------- | ------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | moduleName  | Target module name. |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | typeNameStr | Target type name.   |

Returns

| Type                                    | Description |
| --------------------------------------- | ----------- |
| [StringPairList](./core_stringpairlist) |             |

### DefineCaptchaCallback

Define a callback function to customize the captha which unlock automated functions in interactive products.

```csharp
[HandleProcessCorruptedStateExceptions]
public void DefineCaptchaCallback(CoreInterface.CaptchaCallback callback)
```

Parameters

| Type                                                             | Name     | Description            |
| ---------------------------------------------------------------- | -------- | ---------------------- |
| [CoreInterface.CaptchaCallback](./coreinterface_captchacallback) | callback | The callback function. |

### EntityExists

Returns true if the entity exists.

```csharp
[HandleProcessCorruptedStateExceptions]
public bool EntityExists(uint entity)
```

Parameters

| Type                                                         | Name   | Description        |
| ------------------------------------------------------------ | ------ | ------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | entity | The wanted entity. |

Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### GetAllEntities

Returns all the entities on the database.

```csharp
[HandleProcessCorruptedStateExceptions]
public EntityList GetAllEntities()
```

Returns

| Type                            | Description |
| ------------------------------- | ----------- |
| [EntityList](./core_entitylist) |             |

### GetCurrentPiXYZFile

Get current (loaded) Pixyz file path.

```csharp
[HandleProcessCorruptedStateExceptions]
public string GetCurrentPiXYZFile()
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) |             |

### GetEntityType

Returns the type id of the entity.

```csharp
[HandleProcessCorruptedStateExceptions]
public uint GetEntityType(uint entity)
```

Parameters

| Type                                                         | Name   | Description        |
| ------------------------------------------------------------ | ------ | ------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | entity | The wanted entity. |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### GetEntityTypeString

Returns the type name of the entity.

```csharp
[HandleProcessCorruptedStateExceptions]
public string GetEntityTypeString(uint entity)
```

Parameters

| Type                                                         | Name   | Description        |
| ------------------------------------------------------------ | ------ | ------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | entity | The wanted entity. |

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) |             |

### GetTypeStats

Get the database stats.

```csharp
[HandleProcessCorruptedStateExceptions]
public IntListList GetTypeStats()
```

Returns

| Type                              | Description |
| --------------------------------- | ----------- |
| [IntListList](./core_intlistlist) |             |

### IsCurrentPiXYZFileModified

Return true, if the current (loaded) file has been modified since last load or save.

```csharp
[HandleProcessCorruptedStateExceptions]
public bool IsCurrentPiXYZFileModified()
```

Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### Load

Load a new scene.

```csharp
[HandleProcessCorruptedStateExceptions]
public void Load(string fileName)
```

Parameters

| Type                                                           | Name     | Description            |
| -------------------------------------------------------------- | -------- | ---------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | fileName | Path to load the file. |

### LockEntityRegistration

Lock Entity registration, use with Caution. All entities created after this call will not be saved on .pxz file and will not be listed as existing entities on the Database. Be careful to not references these entities with other registered entities.

```csharp
[HandleProcessCorruptedStateExceptions]
public void LockEntityRegistration()
```

### Save

Save the scene.

```csharp
[HandleProcessCorruptedStateExceptions]
public void Save(string fileName)
```

Parameters

| Type                                                           | Name     | Description            |
| -------------------------------------------------------------- | -------- | ---------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | fileName | Path to save the file. |

### UnlockEntityRegistration

Unlock Entity registration.

```csharp
[HandleProcessCorruptedStateExceptions]
public void UnlockEntityRegistration()
```

### AddWantedToken

Add a license token to the list of wanted tokens. The wanted tokens list is saved on disk in program data and is used at initialization. Prefer using 'core.needToken' instead.

```csharp
[HandleProcessCorruptedStateExceptions]
public void AddWantedToken(string tokenName)
```

Parameters

| Type                                                           | Name      | Description   |
| -------------------------------------------------------------- | --------- | ------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | tokenName | Wanted token. |

### CheckLicense

Verifies the validity of the current installed license to ensure compliance and access control.

```csharp
[HandleProcessCorruptedStateExceptions]
public bool CheckLicense()
```

Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### CheckWebLogin

Check if authentification on the Web license API is sucessfull.

```csharp
[HandleProcessCorruptedStateExceptions]
public bool CheckWebLogin(string login, string password)
```

Parameters

| Type                                                           | Name     | Description           |
| -------------------------------------------------------------- | -------- | --------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | login    | WEB account login.    |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | password | WEB account password. |

Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### ConfigureLicenseServer

Configure the license server to use to get floating licenses.

```csharp
[HandleProcessCorruptedStateExceptions]
public void ConfigureLicenseServer(string address, ushort port, bool flexLM = true)
```

Parameters

| Type                                                           | Name    | Description                   |
| -------------------------------------------------------------- | ------- | ----------------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | address | Server address.               |
| [ushort](https://learn.microsoft.com/dotnet/api/system.uint16) | port    | Server port.                  |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean)  | flexLM  | Enable FlexLM license server. |

### GenerateActivationCode

Create an activation code to generate an offline license.

```csharp
[HandleProcessCorruptedStateExceptions]
public void GenerateActivationCode(string filePath)
```

Parameters

| Type                                                           | Name     | Description                        |
| -------------------------------------------------------------- | -------- | ---------------------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | filePath | Path to write the activation code. |

### GenerateDeactivationCode

Create an deactivation code to release the license from this machine.

```csharp
[HandleProcessCorruptedStateExceptions]
public void GenerateDeactivationCode(string filePath)
```

Parameters

| Type                                                           | Name     | Description                          |
| -------------------------------------------------------------- | -------- | ------------------------------------ |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | filePath | Path to write the deactivation code. |

### GetCurrentLicenseInfos

Get information on current installed license.

```csharp
[HandleProcessCorruptedStateExceptions]
public LicenseInfos GetCurrentLicenseInfos()
```

Returns

| Type                                | Description |
| ----------------------------------- | ----------- |
| [LicenseInfos](./core_licenseinfos) |             |

### GetLicenseError

Get errors from license check.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetLicenseErrorReturn GetLicenseError()
```

Returns

| Type                                                  | Description |
| ----------------------------------------------------- | ----------- |
| [GetLicenseErrorReturn](./core_getlicenseerrorreturn) |             |

### GetLicenseServer

Get current license server.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetLicenseServerReturn GetLicenseServer()
```

Returns

| Type                                                    | Description |
| ------------------------------------------------------- | ----------- |
| [GetLicenseServerReturn](./core_getlicenseserverreturn) |             |

### InstallLicense

Add a new license. You can use either an activation .bin file from the website or a .lic file.

```csharp
[HandleProcessCorruptedStateExceptions]
public void InstallLicense(string licensePath, bool user = false)
```

Parameters

| Type                                                           | Name        | Description                                                                                                                                                                |
| -------------------------------------------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | licensePath | License file path (.bin or .lic).                                                                                                                                          |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean)  | user        | Decide if the .lic license is installed only for this user or for all users. If false, Pixyz must be configured by running 'PiXYZFinishInstall' utility first (only once). |

### ListOwnedTokens

Get the list of actually owned license tokens.

```csharp
[HandleProcessCorruptedStateExceptions]
public StringList ListOwnedTokens()
```

Returns

| Type                            | Description |
| ------------------------------- | ----------- |
| [StringList](./core_stringlist) |             |

### ListTokens

Get the list of license tokens for this product.

```csharp
[HandleProcessCorruptedStateExceptions]
public StringList ListTokens(bool onlyMandatory = false)
```

Parameters

| Type                                                          | Name          | Description                                    |
| ------------------------------------------------------------- | ------------- | ---------------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | onlyMandatory | If True, optional tokens will not be returned. |

Returns

| Type                            | Description |
| ------------------------------- | ----------- |
| [StringList](./core_stringlist) |             |

### ListWantedTokens

Get the list of license token configured to be requested at initialization.

```csharp
[HandleProcessCorruptedStateExceptions]
public StringList ListWantedTokens()
```

Returns

| Type                            | Description |
| ------------------------------- | ----------- |
| [StringList](./core_stringlist) |             |

### NeedToken

Requests a license token for the current session. This step should be done after configuring license server. Throws an exception if the token is not available.

```csharp
[HandleProcessCorruptedStateExceptions]
public void NeedToken(string tokenName)
```

Parameters

| Type                                                           | Name      | Description |
| -------------------------------------------------------------- | --------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | tokenName | Token name. |

### OwnToken

Returns True if we own a token, without requesting it.

```csharp
[HandleProcessCorruptedStateExceptions]
public bool OwnToken(string tokenName)
```

Parameters

| Type                                                           | Name      | Description |
| -------------------------------------------------------------- | --------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | tokenName | Token name. |

Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### ReleaseToken

Release an optional license token.

```csharp
[HandleProcessCorruptedStateExceptions]
public void ReleaseToken(string tokenName)
```

Parameters

| Type                                                           | Name      | Description |
| -------------------------------------------------------------- | --------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | tokenName | Token name. |

### ReleaseWebLicense

Release License owned by user WEB account.

```csharp
[HandleProcessCorruptedStateExceptions]
public void ReleaseWebLicense(string login, string password, uint id)
```

Parameters

| Type                                                           | Name     | Description           |
| -------------------------------------------------------------- | -------- | --------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | login    | WEB account login.    |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | password | WEB account password. |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | id       | WEB license id.       |

### RemoveWantedToken

Remove a license token from the list of wanted optional tokens.

```csharp
[HandleProcessCorruptedStateExceptions]
public void RemoveWantedToken(string tokenName)
```

Parameters

| Type                                                           | Name      | Description     |
| -------------------------------------------------------------- | --------- | --------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | tokenName | Unwanted token. |

### RequestWebLicense

Request License owned by user WEB account.

```csharp
[HandleProcessCorruptedStateExceptions]
public void RequestWebLicense(string login, string password, uint id)
```

Parameters

| Type                                                           | Name     | Description           |
| -------------------------------------------------------------- | -------- | --------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | login    | WEB account login.    |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | password | WEB account password. |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | id       | WEB license id.       |

### RetrieveWebLicenses

Retrieves License owned by user WEB account.

```csharp
[HandleProcessCorruptedStateExceptions]
public WebLicenseInfoList RetrieveWebLicenses(string login, string password)
```

Parameters

| Type                                                           | Name     | Description           |
| -------------------------------------------------------------- | -------- | --------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | login    | WEB account login.    |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | password | WEB account password. |

Returns

| Type                                            | Description |
| ----------------------------------------------- | ----------- |
| [WebLicenseInfoList](./core_weblicenseinfolist) |             |

### TokenValid

Returns True if a token is owned by the product, request will be done if missing.

```csharp
[HandleProcessCorruptedStateExceptions]
public bool TokenValid(string tokenName)
```

Parameters

| Type                                                           | Name      | Description |
| -------------------------------------------------------------- | --------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | tokenName | Token name. |

Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### ParallelAddJob

Add a job to a parallel session.

```csharp
[HandleProcessCorruptedStateExceptions]
public void ParallelAddJob(IntPtr session, CoreInterface.ParallelCallback jobCallback, IntPtr dataPtr)
```

Parameters

| Type                                                               | Name        | Description |
| ------------------------------------------------------------------ | ----------- | ----------- |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)     | session     |             |
| [CoreInterface.ParallelCallback](./coreinterface_parallelcallback) | jobCallback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)     | dataPtr     |             |

### ParallelFinish

Ends a parallel session after waiting for all jobs to finish.

```csharp
[HandleProcessCorruptedStateExceptions]
public void ParallelFinish(IntPtr session)
```

Parameters

| Type                                                           | Name    | Description |
| -------------------------------------------------------------- | ------- | ----------- |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr) | session |             |

### ParallelStart

Starts a new parallel session.

```csharp
[HandleProcessCorruptedStateExceptions]
public IntPtr ParallelStart(bool progression = false, string name = "Parallel session", int jobCount = -1)
```

Parameters

| Type                                                           | Name        | Description                                        |
| -------------------------------------------------------------- | ----------- | -------------------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean)  | progression | Enable progression for the parallel session.       |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | name        | Name of the parallel session.                      |
| [int](https://learn.microsoft.com/dotnet/api/system.int32)     | jobCount    | Count of parallel jobs if known (for progression). |

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr) |             |

### GetModuleDescFromXML

Generate a ModuleDesc from an .xml description.

```csharp
[HandleProcessCorruptedStateExceptions]
public ModuleDesc GetModuleDescFromXML(string xmlPath, bool addToModules)
```

Parameters

| Type                                                           | Name         | Description     |
| -------------------------------------------------------------- | ------------ | --------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | xmlPath      | .xml file path. |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean)  | addToModules |                 |

Returns

| Type                            | Description |
| ------------------------------- | ----------- |
| [ModuleDesc](./core_moduledesc) |             |

### RemoveModule

Remove a module added via getModuleDescFromXML.

```csharp
[HandleProcessCorruptedStateExceptions]
public void RemoveModule(string module)
```

Parameters

| Type                                                           | Name   | Description  |
| -------------------------------------------------------------- | ------ | ------------ |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | module | Module name. |

### PopProgression

Leave current progression level.

```csharp
[HandleProcessCorruptedStateExceptions]
public void PopProgression()
```

### PushProgression

Create a new progression level.

```csharp
[HandleProcessCorruptedStateExceptions]
public void PushProgression(int stepCount, string progressName = "")
```

Parameters

| Type                                                           | Name         | Description                   |
| -------------------------------------------------------------- | ------------ | ----------------------------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32)     | stepCount    | Step count.                   |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | progressName | Name of the progression step. |

### StepProgression

Add a step to current progression level.

```csharp
[HandleProcessCorruptedStateExceptions]
public void StepProgression(int stepCount = 1)
```

Parameters

| Type                                                       | Name      | Description |
| ---------------------------------------------------------- | --------- | ----------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) | stepCount | Step count. |

### AddCustomProperties

Add multiple custom property to entities that support custom properties.

```csharp
[HandleProcessCorruptedStateExceptions]
public void AddCustomProperties(EntityList entities, StringList names, StringList values = null, PropertyTypeList types = null)
```

Parameters

| Type                                        | Name     | Description                                   |
| ------------------------------------------- | -------- | --------------------------------------------- |
| [EntityList](./core_entitylist)             | entities | Entities that support custom properties.      |
| [StringList](./core_stringlist)             | names    | Name of the custom property for each entity.  |
| [StringList](./core_stringlist)             | values   | Value of the custom property for each entity. |
| [PropertyTypeList](./core_propertytypelist) | types    | Type of the custom property for each entity.  |

### AddCustomProperty

Add a custom property to an entity that support custom properties.

```csharp
[HandleProcessCorruptedStateExceptions]
public void AddCustomProperty(uint entity, string name, string value = "", PropertyType type = PropertyType.STRING)
```

Parameters

| Type                                                           | Name   | Description                               |
| -------------------------------------------------------------- | ------ | ----------------------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | entity | An entity that support custom properties. |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | name   | Name of the custom property.              |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | value  | Value of the custom property.             |
| [PropertyType](./core_propertytype)                            | type   | Type of the custom property.              |

### GetModuleProperty

Returns the value of a module property.

```csharp
[HandleProcessCorruptedStateExceptions]
public string GetModuleProperty(string module, string propertyName)
```

Parameters

| Type                                                           | Name         | Description         |
| -------------------------------------------------------------- | ------------ | ------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | module       | Name of the module. |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | propertyName | The property name.  |

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) |             |

### GetModulePropertyInfo

Returns the value of a module property.

```csharp
[HandleProcessCorruptedStateExceptions]
public PropertyInfo GetModulePropertyInfo(string module, string propertyName)
```

Parameters

| Type                                                           | Name         | Description         |
| -------------------------------------------------------------- | ------------ | ------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | module       | Name of the module. |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | propertyName | The property name.  |

Returns

| Type                                | Description |
| ----------------------------------- | ----------- |
| [PropertyInfo](./core_propertyinfo) |             |

### GetProperties

Get the property value on entities (if the property is not set on an entity, defaultValue is returned).

```csharp
[HandleProcessCorruptedStateExceptions]
public StringList GetProperties(EntityList entities, string propertyName, string defaultValue = "")
```

Parameters

| Type                                                           | Name         | Description                                                          |
| -------------------------------------------------------------- | ------------ | -------------------------------------------------------------------- |
| [EntityList](./core_entitylist)                                | entities     | List of entities.                                                    |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | propertyName | The property name.                                                   |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | defaultValue | Default value to return if the property does not exist on an entity. |

Returns

| Type                            | Description |
| ------------------------------- | ----------- |
| [StringList](./core_stringlist) |             |

### GetProperty

Get a property value as String on an entity (error if the property does not exist on the entity).

```csharp
[HandleProcessCorruptedStateExceptions]
public string GetProperty(uint entity, string propertyName)
```

Parameters

| Type                                                           | Name         | Description        |
| -------------------------------------------------------------- | ------------ | ------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | entity       | The entity.        |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | propertyName | The property name. |

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) |             |

### GetPropertyInfo

Get a property info on an entity (error if the property does not exist on the entity).

```csharp
[HandleProcessCorruptedStateExceptions]
public PropertyInfo GetPropertyInfo(uint entity, string propertyName)
```

Parameters

| Type                                                           | Name         | Description        |
| -------------------------------------------------------------- | ------------ | ------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | entity       | The entity.        |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | propertyName | The property name. |

Returns

| Type                                | Description |
| ----------------------------------- | ----------- |
| [PropertyInfo](./core_propertyinfo) |             |

### HasCustomProperty

Return true if the custom property was found on the occurrence.

```csharp
[HandleProcessCorruptedStateExceptions]
public bool HasCustomProperty(uint entityId, string customPropertyName)
```

Parameters

| Type                                                           | Name               | Description                        |
| -------------------------------------------------------------- | ------------------ | ---------------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | entityId           | An entity that support properties. |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | customPropertyName | Name of the custom property.       |

Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### HasProperty

Return true if the property was found on the occurrence, will not throw any exception except if the entity does not exist.

```csharp
[HandleProcessCorruptedStateExceptions]
public bool HasProperty(uint entity, string propertyName)
```

Parameters

| Type                                                           | Name         | Description                        |
| -------------------------------------------------------------- | ------------ | ---------------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | entity       | An entity that support properties. |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | propertyName | Name of the property.              |

Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### ListEnumLabels

Returns the informations of a module property.

```csharp
[HandleProcessCorruptedStateExceptions]
public EnumPropertyInfo ListEnumLabels(int enumType)
```

Parameters

| Type                                                       | Name     | Description                                                                |
| ---------------------------------------------------------- | -------- | -------------------------------------------------------------------------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) | enumType | The real enum type number (ie. The one return in subtype of PropertyInfo). |

Returns

| Type                                        | Description |
| ------------------------------------------- | ----------- |
| [EnumPropertyInfo](./core_enumpropertyinfo) |             |

### ListModuleProperties

Returns all the properties in the given module.

```csharp
[HandleProcessCorruptedStateExceptions]
public PropertyInfoList ListModuleProperties(string module)
```

Parameters

| Type                                                           | Name   | Description         |
| -------------------------------------------------------------- | ------ | ------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | module | Name of the module. |

Returns

| Type                                        | Description |
| ------------------------------------------- | ----------- |
| [PropertyInfoList](./core_propertyinfolist) |             |

### ListProperties

Returns the names and values of the properties available on an entity.

```csharp
[HandleProcessCorruptedStateExceptions]
public PropertyInfoList ListProperties(uint entity)
```

Parameters

| Type                                                         | Name   | Description     |
| ------------------------------------------------------------ | ------ | --------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | entity | Entity to list. |

Returns

| Type                                        | Description |
| ------------------------------------------- | ----------- |
| [PropertyInfoList](./core_propertyinfolist) |             |

### ListPropertiesBatch

Returns the names and values of the properties available on multiple entities.

```csharp
[HandleProcessCorruptedStateExceptions]
public PropertyInfoListList ListPropertiesBatch(EntityList entities)
```

Parameters

| Type                            | Name     | Description       |
| ------------------------------- | -------- | ----------------- |
| [EntityList](./core_entitylist) | entities | Entities to list. |

Returns

| Type                                                | Description |
| --------------------------------------------------- | ----------- |
| [PropertyInfoListList](./core_propertyinfolistlist) |             |

### RemoveCustomProperty

Remove a custom property from an entity that support custom properties.

```csharp
[HandleProcessCorruptedStateExceptions]
public void RemoveCustomProperty(uint entity, string name)
```

Parameters

| Type                                                           | Name   | Description                               |
| -------------------------------------------------------------- | ------ | ----------------------------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | entity | An entity that support custom properties. |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | name   | Name of the custom property.              |

### RestoreModulePropertyDefaultValue

Restore the default value of a module property.

```csharp
[HandleProcessCorruptedStateExceptions]
public string RestoreModulePropertyDefaultValue(string module, string propertyName)
```

Parameters

| Type                                                           | Name         | Description         |
| -------------------------------------------------------------- | ------------ | ------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | module       | Name of the module. |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | propertyName | The property name.  |

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) |             |

### SetModuleProperty

Set the value of a module property.

```csharp
[HandleProcessCorruptedStateExceptions]
public string SetModuleProperty(string module, string propertyName, string propertyValue)
```

Parameters

| Type                                                           | Name          | Description         |
| -------------------------------------------------------------- | ------------- | ------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | module        | Name of the module. |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | propertyName  | The property name.  |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | propertyValue | The property value. |

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) |             |

### SetProperties

Set multiple properties values on entities.

```csharp
[HandleProcessCorruptedStateExceptions]
public void SetProperties(EntityList entities, StringList propertyNames, StringList propertyValues)
```

Parameters

| Type                            | Name           | Description                         |
| ------------------------------- | -------------- | ----------------------------------- |
| [EntityList](./core_entitylist) | entities       | List of entities.                   |
| [StringList](./core_stringlist) | propertyNames  | The property name for each entity.  |
| [StringList](./core_stringlist) | propertyValues | The property value for each entity. |

### SetProperty

Set a property value on an entity.

```csharp
[HandleProcessCorruptedStateExceptions]
public string SetProperty(uint entity, string propertyName, string propertyValue)
```

Parameters

| Type                                                           | Name          | Description         |
| -------------------------------------------------------------- | ------------- | ------------------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | entity        | The entity.         |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | propertyName  | The property name.  |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | propertyValue | The property value. |

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) |             |

### SupportCustomProperties

Return true if an entity support custom properties.

```csharp
[HandleProcessCorruptedStateExceptions]
public bool SupportCustomProperties(uint entity)
```

Parameters

| Type                                                         | Name   | Description |
| ------------------------------------------------------------ | ------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | entity | An entity.  |

Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### UnsetProperty

Unset an entity's property.

```csharp
[HandleProcessCorruptedStateExceptions]
public void UnsetProperty(uint entity, string propertyName)
```

Parameters

| Type                                                           | Name         | Description        |
| -------------------------------------------------------------- | ------------ | ------------------ |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32)   | entity       | The entity.        |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | propertyName | The property name. |

### AddAfterCustomPropertyAddedCallback

```csharp
public uint AddAfterCustomPropertyAddedCallback(CoreInterface.AfterCustomPropertyAddedDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                                               | Name     | Description |
| -------------------------------------------------------------------------------------------------- | -------- | ----------- |
| [CoreInterface.AfterCustomPropertyAddedDelegate](./coreinterface_aftercustompropertyaddeddelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                                     | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveAfterCustomPropertyAddedCallback

```csharp
public void RemoveAfterCustomPropertyAddedCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AvailableMemory

Returns available memory.

```csharp
[HandleProcessCorruptedStateExceptions]
public AvailableMemoryReturn AvailableMemory()
```

Returns

| Type                                                  | Description |
| ----------------------------------------------------- | ----------- |
| [AvailableMemoryReturn](./core_availablememoryreturn) |             |

### CheckForUpdates

Check for software update.

```csharp
[HandleProcessCorruptedStateExceptions]
public CheckForUpdatesReturn CheckForUpdates()
```

Returns

| Type                                                  | Description |
| ----------------------------------------------------- | ----------- |
| [CheckForUpdatesReturn](./core_checkforupdatesreturn) |             |

### ClearOtherTemporaryDirectories

Remove all other session temporary directories (warning: make sure that no other instance of pixyz is running.

```csharp
[HandleProcessCorruptedStateExceptions]
public void ClearOtherTemporaryDirectories()
```

### GetCustomVersionTag

Get the Pixyz custom version tag.

```csharp
[HandleProcessCorruptedStateExceptions]
public string GetCustomVersionTag()
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) |             |

### GetMemoryUsagePeak

Returns the memory usage peak of the current process in MB ( only available on windows yet ).

```csharp
[HandleProcessCorruptedStateExceptions]
public long GetMemoryUsagePeak()
```

Returns

| Type                                                        | Description |
| ----------------------------------------------------------- | ----------- |
| [long](https://learn.microsoft.com/dotnet/api/system.int64) |             |

### GetPixyzWebsiteURL

Get the Pixyz website URL.

```csharp
[HandleProcessCorruptedStateExceptions]
public string GetPixyzWebsiteURL()
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) |             |

### GetProductName

Get the Pixyz product name.

```csharp
[HandleProcessCorruptedStateExceptions]
public string GetProductName()
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) |             |

### GetTempDirectory

Get the Pixyz temp directory (server side directory in case of remote access).

```csharp
[HandleProcessCorruptedStateExceptions]
public string GetTempDirectory()
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) |             |

### GetVersion

Get the Pixyz product version.

```csharp
[HandleProcessCorruptedStateExceptions]
public string GetVersion()
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) |             |

### SetCurrentThreadAsProcessThread

Set the process thread. Use this function when you want to get progress changed callbacks from another thread as the one you initialized Pixyz on.

```csharp
[HandleProcessCorruptedStateExceptions]
public void SetCurrentThreadAsProcessThread()
```

### ClearUndoRedo

Clear undo/redo history.

```csharp
[HandleProcessCorruptedStateExceptions]
public void ClearUndoRedo()
```

### EndUndoRedoStep

End current undo/redo step.

```csharp
[HandleProcessCorruptedStateExceptions]
public void EndUndoRedoStep(bool deleteIfEmpty = true)
```

Parameters

| Type                                                          | Name          | Description                                                                         |
| ------------------------------------------------------------- | ------------- | ----------------------------------------------------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | deleteIfEmpty | If True, empty step with no modification will be deleted from the stack at the end. |

### GetRedoStack

Get the history of actions stack.

```csharp
[HandleProcessCorruptedStateExceptions]
public StringList GetRedoStack()
```

Returns

| Type                            | Description |
| ------------------------------- | ----------- |
| [StringList](./core_stringlist) |             |

### GetRedoStepUserData

Get user data for undo step #index.

```csharp
[HandleProcessCorruptedStateExceptions]
public string GetRedoStepUserData(uint index)
```

Parameters

| Type                                                         | Name  | Description |
| ------------------------------------------------------------ | ----- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | index |             |

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) |             |

### GetUndoStack

Get the history of actions stack.

```csharp
[HandleProcessCorruptedStateExceptions]
public StringList GetUndoStack()
```

Returns

| Type                            | Description |
| ------------------------------- | ----------- |
| [StringList](./core_stringlist) |             |

### GetUndoStepUserData

Get user data for undo step #index.

```csharp
[HandleProcessCorruptedStateExceptions]
public string GetUndoStepUserData(uint index)
```

Parameters

| Type                                                         | Name  | Description |
| ------------------------------------------------------------ | ----- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | index |             |

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) |             |

### HasRecordingStep

Has recording step.

```csharp
[HandleProcessCorruptedStateExceptions]
public bool HasRecordingStep()
```

Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### Redo

Redo some steps.

```csharp
[HandleProcessCorruptedStateExceptions]
public void Redo(uint count = 1)
```

Parameters

| Type                                                         | Name  | Description |
| ------------------------------------------------------------ | ----- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | count |             |

### StartUndoRedoStep

Start a new undo/redo step.

```csharp
[HandleProcessCorruptedStateExceptions]
public void StartUndoRedoStep(string stepName, string userData = "")
```

Parameters

| Type                                                           | Name     | Description |
| -------------------------------------------------------------- | -------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | stepName |             |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | userData |             |

### StopProcess

Stop process (works if there is recording step).

```csharp
[HandleProcessCorruptedStateExceptions]
public void StopProcess()
```

### ToggleUndoRedo

Toggle undo/redo.

```csharp
[HandleProcessCorruptedStateExceptions]
public void ToggleUndoRedo()
```

### Undo

Undo some steps.

```csharp
[HandleProcessCorruptedStateExceptions]
public void Undo(uint count = 1)
```

Parameters

| Type                                                         | Name  | Description |
| ------------------------------------------------------------ | ----- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | count |             |

### AddUndoRedoStackChangedCallback

```csharp
public uint AddUndoRedoStackChangedCallback(CoreInterface.UndoRedoStackChangedDelegate callback, IntPtr userData)
```

Parameters

| Type                                                                                       | Name     | Description |
| ------------------------------------------------------------------------------------------ | -------- | ----------- |
| [CoreInterface.UndoRedoStackChangedDelegate](./coreinterface_undoredostackchangeddelegate) | callback |             |
| [IntPtr](https://learn.microsoft.com/dotnet/api/system.intptr)                             | userData |             |

Returns

| Type                                                         | Description |
| ------------------------------------------------------------ | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) |             |

### RemoveUndoRedoStackChangedCallback

```csharp
public void RemoveUndoRedoStackChangedCallback(uint id)
```

Parameters

| Type                                                         | Name | Description |
| ------------------------------------------------------------ | ---- | ----------- |
| [uint](https://learn.microsoft.com/dotnet/api/system.uint32) | id   |             |

### AddConsoleVerbose

Add a console verbose level.

```csharp
[HandleProcessCorruptedStateExceptions]
public void AddConsoleVerbose(Verbose level)
```

Parameters

| Type                      | Name  | Description    |
| ------------------------- | ----- | -------------- |
| [Verbose](./core_verbose) | level | Verbose level. |

### AddLogFileVerbose

Add a log file verbose level.

```csharp
[HandleProcessCorruptedStateExceptions]
public void AddLogFileVerbose(Verbose level)
```

Parameters

| Type                      | Name  | Description    |
| ------------------------- | ----- | -------------- |
| [Verbose](./core_verbose) | level | Verbose level. |

### AddSessionLogFileVerbose

Add a session log file (lastSession\{Id}.log) verbose level.

```csharp
[HandleProcessCorruptedStateExceptions]
public void AddSessionLogFileVerbose(Verbose level)
```

Parameters

| Type                      | Name  | Description    |
| ------------------------- | ----- | -------------- |
| [Verbose](./core_verbose) | level | Verbose level. |

### ConfigureInterfaceLogger

Set new configuration for the Interface Logger.

```csharp
[HandleProcessCorruptedStateExceptions]
public void ConfigureInterfaceLogger(bool enableFunction, bool enableParameters, bool enableExecutionTime)
```

Parameters

| Type                                                          | Name                | Description                                                                              |
| ------------------------------------------------------------- | ------------------- | ---------------------------------------------------------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | enableFunction      | If true, the called function names will be print.                                        |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | enableParameters    | If true, the called function parameters will be print (only if enableFunction=true too). |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | enableExecutionTime | If true, the called functions execution times will be print.                             |

### GetInterfaceLoggerConfiguration

Get the current Interface Logger configuration.

```csharp
[HandleProcessCorruptedStateExceptions]
public GetInterfaceLoggerConfigurationReturn GetInterfaceLoggerConfiguration()
```

Returns

| Type                                                                                  | Description |
| ------------------------------------------------------------------------------------- | ----------- |
| [GetInterfaceLoggerConfigurationReturn](./core_getinterfaceloggerconfigurationreturn) |             |

### GetLogFile

Get the path of the log file.

```csharp
[HandleProcessCorruptedStateExceptions]
public string GetLogFile()
```

Returns

| Type                                                           | Description |
| -------------------------------------------------------------- | ----------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) |             |

### HasConsoleVerbose

Returns whether a console verbose level is present.

```csharp
[HandleProcessCorruptedStateExceptions]
public bool HasConsoleVerbose(Verbose level)
```

Parameters

| Type                      | Name  | Description    |
| ------------------------- | ----- | -------------- |
| [Verbose](./core_verbose) | level | Verbose level. |

Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### Log

Log a message to Pixyz output.

```csharp
[HandleProcessCorruptedStateExceptions]
public void Log(string message, Verbose level)
```

Parameters

| Type                                                           | Name    | Description     |
| -------------------------------------------------------------- | ------- | --------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | message | Message to log. |
| [Verbose](./core_verbose)                                      | level   | Verbose level.  |

### RemoveConsoleVerbose

Remove a console verbose level.

```csharp
[HandleProcessCorruptedStateExceptions]
public void RemoveConsoleVerbose(Verbose level)
```

Parameters

| Type                      | Name  | Description    |
| ------------------------- | ----- | -------------- |
| [Verbose](./core_verbose) | level | Verbose level. |

### RemoveLogFileVerbose

Remove a log file verbose level.

```csharp
[HandleProcessCorruptedStateExceptions]
public void RemoveLogFileVerbose(Verbose level)
```

Parameters

| Type                      | Name  | Description    |
| ------------------------- | ----- | -------------- |
| [Verbose](./core_verbose) | level | Verbose level. |

### RemoveSessionLogFileVerbose

Remove a session log file (lastSession\{Id}.log) verbose level.

```csharp
[HandleProcessCorruptedStateExceptions]
public void RemoveSessionLogFileVerbose(Verbose level)
```

Parameters

| Type                      | Name  | Description    |
| ------------------------- | ----- | -------------- |
| [Verbose](./core_verbose) | level | Verbose level. |

### SetCoreDumpFile

> **Important:**
>
> This function is tagged as experimental.

```csharp
[HandleProcessCorruptedStateExceptions]
public void SetCoreDumpFile(string path)
```

Parameters

| Type                                                           | Name | Description                 |
| -------------------------------------------------------------- | ---- | --------------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | path | Path of the core dump file. |

### SetLogFile

Set the path of the log file.

```csharp
[HandleProcessCorruptedStateExceptions]
public void SetLogFile(string path, bool keepHistory = false)
```

Parameters

| Type                                                           | Name        | Description                               |
| -------------------------------------------------------------- | ----------- | ----------------------------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | path        | Path of the log file.                     |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean)  | keepHistory | Keep session log history in new log file. |
