# [vtkusers] Create a custom valueType vtkArray

Ruben Di Battista rubendibattista at gmail.com
Sun Sep 30 05:12:25 EDT 2018

```Hello,

At the moment I have some code that reads like this:

m_H->SetNumberOfValues(nPoints);
m_G->SetNumberOfValues(nPoints);
m_C->SetNumberOfValues(nPoints);
m_SI->SetNumberOfValues(nPoints);

for ( auto p : this->IterateOver<Point>() ) {
auto curvatures = p.HG();
m_H->SetValue(p.Id(), curvatures.H);
m_G->SetValue(p.Id(), curvatures.G);
m_C->SetValue(p.Id(), curvatures.C);
m_SI->SetValue(p.Id(), curvatures.SI);
}

Where m_polyPtr is a vtkPolyData* and the return type of p.HG() is:

struct Curvatures
{
double G; /**< Gauss Curvature */
double H; /**< Mean Curvature */
double C; /**< Curvedness */
double SI; /**< Shape Index */
};

Now I’m facing a problem where I need to add fields to the structure “Curvatures” and so I need to change code in three different classes.
Is there a way to create a vtkArray whose (templated?) valueType is `Curvatures` such that I can just modify that struct to allow more fields to be stored and set in a “more abstract way” and that can be appended to the `PointData` of the vtkPolyData in a transparent way?

Any suggestion is appreciated!

:)

_
-.     .´  |∞∞∞∞
',  ;    |∞∞∞∞∞∞
˜˜     |∞∞∞∞∞∞∞∞∞ RdB
,.,    |∞∞∞∞∞∞
.'   '.  |∞∞∞∞
-'       `’

https://rdb.is
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://public.kitware.com/pipermail/vtkusers/attachments/20180930/c08b5111/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Message signed with OpenPGP using AMPGpg
URL: <https://public.kitware.com/pipermail/vtkusers/attachments/20180930/c08b5111/attachment.sig>
```