<div dir="ltr">While it might be tempting to hook into the templated vtkDataArray subclasses 'vtkAOSDataArrayTemplate' or 'vtkSOADataArrayTemplate', this will likely cause headaches as these ValueTypes expect to be implicitly convertible to/from double.<br><br>Your best option here would be to write your own subclass of vtkAbstractArray (the superclass of vtkDataArray), since that has much less stringent requirements and is already used for things like strings, etc. See vtkStringArray for an example subclass that doesn't just hold a trivial numeric type.<br><br>HTH,<br>Allie </div><br><div class="gmail_quote"><div dir="ltr">On Sun, Sep 30, 2018 at 5:12 AM Ruben Di Battista <<a href="mailto:rubendibattista@gmail.com">rubendibattista@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space"><div id="m_7179392235303208436bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto">Hello, </div><div id="m_7179392235303208436bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto"><br></div><div id="m_7179392235303208436bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto">At the moment I have some code that reads like this:</div><div id="m_7179392235303208436bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto"><br></div><div id="m_7179392235303208436bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;margin:0px;line-height:auto"><div id="m_7179392235303208436bloop_customfont" style="margin:0px">        m_H->SetNumberOfValues(nPoints);</div><div id="m_7179392235303208436bloop_customfont" style="margin:0px">        m_G->SetNumberOfValues(nPoints);</div><div id="m_7179392235303208436bloop_customfont" style="margin:0px">        m_C->SetNumberOfValues(nPoints);</div><div id="m_7179392235303208436bloop_customfont" style="margin:0px">        m_SI->SetNumberOfValues(nPoints);</div><div id="m_7179392235303208436bloop_customfont" style="margin:0px"><br></div><div id="m_7179392235303208436bloop_customfont" style="margin:0px"><div id="m_7179392235303208436bloop_customfont" style="margin:0px">        for ( auto p : this->IterateOver<Point>() ) {</div><div id="m_7179392235303208436bloop_customfont" style="margin:0px">                auto curvatures = p.HG();</div><div id="m_7179392235303208436bloop_customfont" style="margin:0px">                m_H->SetValue(p.Id(), curvatures.H);</div><div id="m_7179392235303208436bloop_customfont" style="margin:0px">                m_G->SetValue(p.Id(), curvatures.G);</div><div id="m_7179392235303208436bloop_customfont" style="margin:0px">                m_C->SetValue(p.Id(), curvatures.C);</div><div id="m_7179392235303208436bloop_customfont" style="margin:0px">                m_SI->SetValue(p.Id(), curvatures.SI);</div><div id="m_7179392235303208436bloop_customfont" style="margin:0px">       }</div><div id="m_7179392235303208436bloop_customfont" style="margin:0px"><br></div><div id="m_7179392235303208436bloop_customfont" style="margin:0px"><div id="m_7179392235303208436bloop_customfont" style="margin:0px">        m_polyPtr->GetPointData()->AddArray(m_H);</div><div id="m_7179392235303208436bloop_customfont" style="margin:0px">        m_polyPtr->GetPointData()->AddArray(m_G);</div><div id="m_7179392235303208436bloop_customfont" style="margin:0px">        m_polyPtr->GetPointData()->AddArray(m_C);</div><div id="m_7179392235303208436bloop_customfont" style="margin:0px">        m_polyPtr->GetPointData()->AddArray(m_SI);</div><div><br></div><div>Where m_polyPtr is a vtkPolyData* and the return type of p.HG() is:</div><div><div>    </div><div>     struct Curvatures</div><div>    {</div><div>        double G; /**< Gauss Curvature */</div><div>        double H; /**< Mean Curvature */</div><div>        double C; /**< Curvedness */</div><div>        double SI; /**< Shape Index */</div><div>    };</div></div><div><br></div><div>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. </div><div>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?</div><div><br></div><div>Any suggestion is appreciated! </div><div><br></div><div>:)</div><div><br></div></div></div></div><br><div class="m_7179392235303208436bloop_sign" id="m_7179392235303208436bloop_sign_1538297062278425088">
         
        
     
     
        <pre>          _   
-.     .´  |∞∞∞∞
  ',  ;    |∞∞∞∞∞∞
    ˜˜     |∞∞∞∞∞∞∞∞∞ RdB
    ,.,    |∞∞∞∞∞∞
  .'   '.  |∞∞∞∞
-'       `’

<a href="https://rdb.is" target="_blank">https://rdb.is</a>
</pre>
     
</div></div>_______________________________________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" rel="noreferrer" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtkusers" rel="noreferrer" target="_blank">http://markmail.org/search/?q=vtkusers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="https://public.kitware.com/mailman/listinfo/vtkusers" rel="noreferrer" target="_blank">https://public.kitware.com/mailman/listinfo/vtkusers</a><br>
</blockquote></div>