> For the complete documentation index, see [llms.txt](https://kinematicsoup.gitbook.io/scene-fusion/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kinematicsoup.gitbook.io/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfobjectmap.md).

# Class sfObjectMap

Namespace: [KS.SceneFusion.Client.Unity.Editor](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor.md)\
Assembly: KSUnity-Source.dll

Maps sfObjects to uobjects and vice versa.

```csharp
public class sfObjectMap
```

#### Inheritance

object ← [sfObjectMap](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfobjectmap.md)

## Methods

### Add(sfObject, Object) <a href="#ks_scenefusion_client_unity_editor_sfobjectmap_add_ks_scenefusion_client_sfobject_unityengine_object" id="ks_scenefusion_client_unity_editor_sfobjectmap_add_ks_scenefusion_client_sfobject_unityengine_object"></a>

Adds a mapping between a uobject and an sfObject.

```csharp
public void Add(sfObject obj, Object uobj)
```

#### Parameters

`obj` [sfObject](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfobject.md)

`uobj` Object

### Clear() <a href="#ks_scenefusion_client_unity_editor_sfobjectmap_clear" id="ks_scenefusion_client_unity_editor_sfobjectmap_clear"></a>

Clears the map.

```csharp
public void Clear()
```

### Contains(Object) <a href="#ks_scenefusion_client_unity_editor_sfobjectmap_contains_unityengine_object" id="ks_scenefusion_client_unity_editor_sfobjectmap_contains_unityengine_object"></a>

Checks if a uobject is in the map.

```csharp
public bool Contains(Object uobj)
```

#### Parameters

`uobj` Object

#### Returns

bool

true if the uobject is in the map.

### Contains(sfObject) <a href="#ks_scenefusion_client_unity_editor_sfobjectmap_contains_ks_scenefusion_client_sfobject" id="ks_scenefusion_client_unity_editor_sfobjectmap_contains_ks_scenefusion_client_sfobject"></a>

Checks if an sfObject is in the map.

```csharp
public bool Contains(sfObject obj)
```

#### Parameters

`obj` [sfObject](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfobject.md)

#### Returns

bool

true if the object is in the map.

### Get() <a href="#ks_scenefusion_client_unity_editor_sfobjectmap_get" id="ks_scenefusion_client_unity_editor_sfobjectmap_get"></a>

```csharp
public static sfObjectMap Get()
```

#### Returns

[sfObjectMap](/scene-fusion/api-reference/ks.scenefusion.client.unity.editor/ks.scenefusion.client.unity.editor.sfobjectmap.md)

singleton instance.

### Get\<T>(sfObject) <a href="#ks_scenefusion_client_unity_editor_sfobjectmap_get__1_ks_scenefusion_client_sfobject" id="ks_scenefusion_client_unity_editor_sfobjectmap_get__1_ks_scenefusion_client_sfobject"></a>

Gets the uobject for an sfObject cast to T.

```csharp
public T Get<T>(sfObject obj) where T : Object
```

#### Parameters

`obj` [sfObject](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfobject.md)

#### Returns

T

uobject for the sfObject, or null if not found or not of type T.

#### Type Parameters

`T`

### GetEnumerator() <a href="#ks_scenefusion_client_unity_editor_sfobjectmap_getenumerator" id="ks_scenefusion_client_unity_editor_sfobjectmap_getenumerator"></a>

```csharp
public IEnumerator<KeyValuePair<sfObject, Object>> GetEnumerator()
```

#### Returns

IEnumerator\<KeyValuePair<[sfObject](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfobject.md), Object>>

enumerator for the map.

### GetOrCreateSFObject(Object, string, ObjectFlags) <a href="#ks_scenefusion_client_unity_editor_sfobjectmap_getorcreatesfobject_unityengine_object_system_string" id="ks_scenefusion_client_unity_editor_sfobjectmap_getorcreatesfobject_unityengine_object_system_string"></a>

Gets the sfObject for a uobject, or creates one with an empty dictionary property and adds it to the map if none was found.

```csharp
public sfObject GetOrCreateSFObject(Object uobj, string type, sfBaseObject<sfObject>.ObjectFlags flags = ObjectFlags.NONE)
```

#### Parameters

`uobj` Object

`type` string

type of object to create.

`flags` [sfBaseObject](/scene-fusion/api-reference/ks.scenefusion/ks.scenefusion.sfbaseobject-1.md)<[sfObject](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfobject.md)>.[ObjectFlags](/scene-fusion/api-reference/ks.scenefusion/ks.scenefusion.sfbaseobject-1/ks.scenefusion.sfbaseobject-1.objectflags.md)

flags to create object with.

#### Returns

[sfObject](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfobject.md)

sfObject for the uobject.

### GetSFObject(Object) <a href="#ks_scenefusion_client_unity_editor_sfobjectmap_getsfobject_unityengine_object" id="ks_scenefusion_client_unity_editor_sfobjectmap_getsfobject_unityengine_object"></a>

Gets the sfObject for a uobject, or null if the uobject has no sfObject.

```csharp
public sfObject GetSFObject(Object uobj)
```

#### Parameters

`uobj` Object

#### Returns

[sfObject](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfobject.md)

sfObject for the uobject, or null if none was found.

### GetUObject(sfObject) <a href="#ks_scenefusion_client_unity_editor_sfobjectmap_getuobject_ks_scenefusion_client_sfobject" id="ks_scenefusion_client_unity_editor_sfobjectmap_getuobject_ks_scenefusion_client_sfobject"></a>

Gets the uobject for an sfObject, or null if the sfObject has no uobject.

```csharp
public Object GetUObject(sfObject obj)
```

#### Parameters

`obj` [sfObject](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfobject.md)

obj to get uobject for.

#### Returns

Object

uobject for the sfObject.

### Remove(Object) <a href="#ks_scenefusion_client_unity_editor_sfobjectmap_remove_unityengine_object" id="ks_scenefusion_client_unity_editor_sfobjectmap_remove_unityengine_object"></a>

Removes a uobject and its sfObject from the map.

```csharp
public sfObject Remove(Object uobj)
```

#### Parameters

`uobj` Object

uobj to remove.

#### Returns

[sfObject](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfobject.md)

that was removed, or null if the uobject was not in the map.

### Remove(sfObject) <a href="#ks_scenefusion_client_unity_editor_sfobjectmap_remove_ks_scenefusion_client_sfobject" id="ks_scenefusion_client_unity_editor_sfobjectmap_remove_ks_scenefusion_client_sfobject"></a>

Removes an sfObject and its uobject from the map.

```csharp
public Object Remove(sfObject obj)
```

#### Parameters

`obj` [sfObject](/scene-fusion/api-reference/ks.scenefusion.client/ks.scenefusion.client.sfobject.md)

obj to remove.

#### Returns

Object

that was removed, or null if the sfObject was not in the map.
