---
title: "Class Surface | Customer's Canvas On-Premises"
canonical: "https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Surface/"
---

# Class Surface

> **Inheritance:** `System.Object` -> [Aurigma.DesignAtoms.Model.ModelComponent](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md) -> Surface

###### **Namespace**: [Aurigma.DesignAtoms.Model](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model.md)

###### **Assembly**: Aurigma.DesignAtoms.Model.dll

```csharp title="Syntax"
public class Surface : ModelComponent, ICloneable
```

## Implements

* `System.ComponentModel.INotifyPropertyChanged`
* `System.ICloneable`

## Inherited Members

* [Aurigma.DesignAtoms.Model.ModelComponent.UserTagKey](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#usertagkey)
* [Aurigma.DesignAtoms.Model.ModelComponent.WarningTagKey](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#warningtagkey)
* [Aurigma.DesignAtoms.Model.ModelComponent.Tags](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#tags)
* [Aurigma.DesignAtoms.Model.ModelComponent.GenerateId()](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#generateid)
* [Aurigma.DesignAtoms.Model.ModelComponent.ToString()](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#tostring)
* [Aurigma.DesignAtoms.Model.ModelComponent.Equals(Aurigma.DesignAtoms.Model.ModelComponent)](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#equals)
* [Aurigma.DesignAtoms.Model.ModelComponent.Clone(System.Boolean)](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#clone)
* [Aurigma.DesignAtoms.Model.ModelComponent.Clone()](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#clone)
* [Aurigma.DesignAtoms.Model.ModelComponent.OnPropertyChanged(System.String)](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#onpropertychanged)
* [Aurigma.DesignAtoms.Model.ModelComponent.Version](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#version)
* [Aurigma.DesignAtoms.Model.ModelComponent.Id](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#id)
* [Aurigma.DesignAtoms.Model.ModelComponent.Name](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#name)
* [Aurigma.DesignAtoms.Model.ModelComponent.PropertyChanged](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#propertychanged)
* `System.Object.Equals(System.Object,System.Object)`
* `System.Object.ReferenceEquals(System.Object,System.Object)`
* `System.Object.GetType`
* `System.Object.MemberwiseClone`

## Constructors

### Surface

```csharp
public Surface()
```

### Surface

```csharp
public Surface(float width, float height, SurfaceMockup mockup = null, Collection<PrintArea> printAreas = null)
```

## Properties

### ParentProduct

```csharp
public Product ParentProduct { get; set; }
```

### Size

```csharp
public SizeF Size { get; }
```

### Mockup

```csharp
public SurfaceMockup Mockup { get; set; }
```

### PreviewMockups

```csharp
public Collection<SurfaceMockup> PreviewMockups { get; set; }
```

### PreviewMockupsCount

```csharp
public int PreviewMockupsCount { get; }
```

### PrintAreas

```csharp
public Collection<PrintArea> PrintAreas { get; }
```

### Containers

```csharp
public Collection<SurfaceContainer> Containers { get; set; }
```

### Watermark

```csharp
public Watermark Watermark { get; set; }
```

### BgContainer

```csharp
public SurfaceContainer BgContainer { get; }
```

### MainContainer

```csharp
public SurfaceContainer MainContainer { get; }
```

### FgContainer

```csharp
public SurfaceContainer FgContainer { get; }
```

### InteractiveZones

```csharp
public Collection<InteractiveZone> InteractiveZones { get; set; }
```

## Methods

### GetAllItems

```csharp
public IEnumerable<BaseItem> GetAllItems(GetAllItemsOptions options = null)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.GetAllItemsOptions](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/GetAllItemsOptions.md) | *options* |  |

##### Returns

`System.Collections.Generic.IEnumerable<Aurigma.DesignAtoms.Model.Items.BaseItem>`

### DeepClone&lt;TItem&gt;

```csharp
public override TItem DeepClone<TItem>(TItem clone = null, bool keepIds = false)
    where TItem : ModelComponent
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `<TItem>` | *clone* |  |
| `System.Boolean` | *keepIds* |  |

##### Returns

`<TItem>`

##### Overrides

* `Aurigma.DesignAtoms.Model.ModelComponent.DeepClone``1(<TItem>,System.Boolean)`

### Equals

```csharp
protected bool Equals(Surface other)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Surface](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Surface.md) | *other* |  |

##### Returns

`System.Boolean`

### Equals

```csharp
public override bool Equals(object obj)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.Object` | *obj* |  |

##### Returns

`System.Boolean`

##### Overrides

* [Aurigma.DesignAtoms.Model.ModelComponent.Equals(System.Object)](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#equals)

### GetHashCode

```csharp
public override int GetHashCode()
```

##### Returns

`System.Int32`

##### Overrides

* [Aurigma.DesignAtoms.Model.ModelComponent.GetHashCode()](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#gethashcode)

## Fields

### Width

```csharp
public float Width
```

### Height

```csharp
public float Height
```

### RotateAngle

```csharp
public float RotateAngle
```
