# Add an Attribute to an EPointCloud with Initial Data

The code shows how to add an attribute to a cloud when you already have the data.

## C++

```cpp
#include <eVision/Easy3D/EPointCloud.h>
```

```cpp
using namespace eVision;
using namespace eVision::Easy3D;
EPointCloud cloud;
std::vector<EC24A> data;

// case 1: data is Color, Normal, Intensity, Texture, Index, Confidence or Distance
cloud.FillAttributeBufferEC24A(E3DAttribute_Color, data);

// case 2: data is something else
int attributeOffset = cloud.AddCustomAttributeBufferEC24A(data);
```

## C#

```cs
using eVision;
using eVision.Easy3D;
```

```cs
EPointCloud cloud = new EPointCloud();
EC24A[] data = new EC24A[17];

// case 1: data is Color, Normal, Intensity, Texture, Index, Confidence or Distance
cloud.FillAttributeBufferEC24A((int)E3DAttribute.Color, data);

// case 2: data is something else
int attributeOffset = cloud.AddCustomAttributeBufferEC24A(data);
```

## Python

```py
import eVision
from eVision import Easy3D
cloud = Easy3D.EPointCloud()
data = [eVision.EC24A(128, 128, 128, 255)] * 17

# case 1: data is Color, Normal, Intensity, Texture, Index, Confidence or Distance
cloud.FillAttributeBufferEC24A(Easy3D.E3DAttribute.Color, data)

# case 2: data is something else
attribute_offset = cloud.AddCustomAttributeBufferEC24A(data)
```
