[vtkusers] Computational Geometry - user equations?

Andrew Maclean andrew.amaclean at gmail.com
Sun Oct 4 00:17:51 EDT 2015


This is my own opinion but in the long run it is probably better to move to
VTK 6.3 at least.

However, having said this you need to evaluate your own code in the light
of: http://www.vtk.org/Wiki/VTK/VTK_6_Migration_Guide and
http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Overview in order to see how
much work will be involved.

VTK 6. was a big change from VTK 5 but there are lots of nice extras in VTK
6.3, such as OpenGL2, QT 5  and VTk 7 (the master) is taking things even
further with Python 3 support, vtkFlyingEdges etc. Also there has been a
lot of work done for other platforms such as Android and IOS.

These links may help:

http://www.kitware.com/source/home/post/116
http://www.kitware.com/blog/home/post/941

Regards
   Andrew



On Sun, Oct 4, 2015 at 3:00 PM, Gib Bogle <g.bogle at auckland.ac.nz> wrote:

> I did that Andrew, in fact I deleted everything except the source files
> and CMakeLists.txt.
>
> I've been holding off from updating my VTK, because I don't want to break
> running programs.  How easy is the migration from 5 to 6?
>
> Gib
> ------------------------------
> *From:* Andrew Maclean [andrew.amaclean at gmail.com]
> *Sent:* Sunday, 4 October 2015 4:55 p.m.
> *To:* Gib Bogle
> *Cc:* vtk; logicmonkeyuk
> *Subject:* Re: [vtkusers] Computational Geometry - user equations?
>
> It's a long while since I have used VTK 5.10. Try deleting your cmake
> cache file, then run cmake again and rebuild.
>
> On Sun, Oct 4, 2015 at 1:38 PM, Gib Bogle <g.bogle at auckland.ac.nz> wrote:
>
>> Thanks for your help, Andrew.
>> I did this:
>> #find_package(VTK COMPONENTS
>> #  vtkCommonColor
>> #  vtkCommonCore
>> #  vtkFiltersHybrid
>> #  vtkFiltersSources
>> #  vtkIOImage
>> #  vtkInteractionStyle
>> #  vtkRenderingOpenGL
>> #)
>> find_package(VTK REQUIRED)
>> but unfortunately the list of errors looks much the same.
>>
>> Cheers
>> Gib
>> ------------------------------
>> *From:* Andrew Maclean [andrew.amaclean at gmail.com]
>> *Sent:* Sunday, 4 October 2015 3:32 p.m.
>>
>> *To:* Gib Bogle
>> *Cc:* vtk; logicmonkeyuk
>> *Subject:* RE: [vtkusers] Computational Geometry - user equations?
>>
>> VT6 is modular in contrast to VTK 5 so I would replace the section in the
>> CMakeLists.txt file dealing with including  the modules with something like
>> this:
>>
>> find_package(VTK REQUIRED)
>> include(${VTK_USE_FILE})
>>
>> I hope this helps.
>>
>> Andrew Maclean
>> On 4 Oct 2015 1:01 pm, "Gib Bogle" <g.bogle at auckland.ac.nz> wrote:
>>
>>> That was easily circumvented, but turned out to be the least of the
>>> problems:
>>>
>>> 2>TrefoilKnot.obj : error LNK2019: unresolved external symbol
>>> "__declspec(dllimport) protected: __thiscall
>>> vtkParametricFunction::vtkParametricFunction(void)"
>>> (__imp_??0vtkParametricFunction@@IAE at XZ) referenced in function
>>> "protected: __thiscall
>>> myParametricTrefoilKnot::myParametricTrefoilKnot(void)"
>>> (??0myParametricTrefoilKnot@@IAE at XZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkObjectBase::Delete(void)" (?Delete at vtkObjectBase
>>> @@UAEXXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkObjectBase::FastDelete(void)"
>>> (?FastDelete at vtkObjectBase@@UAEXXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkObjectBase::PrintHeader(class
>>> std::basic_ostream<char,struct std::char_traits<char> > &,class vtkIndent)"
>>> (?PrintHeader at vtkObjectBase@@UAEXAAV?$basic_ostream at DU?$char_traits at D
>>> @std@@@std@@VvtkIndent@@@Z)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkObjectBase::PrintTrailer(class
>>> std::basic_ostream<char,struct std::char_traits<char> > &,class vtkIndent)"
>>> (?PrintTrailer at vtkObjectBase@@UAEXAAV?$basic_ostream at DU?$char_traits at D
>>> @std@@@std@@VvtkIndent@@@Z)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkObjectBase::Register(class vtkObjectBase *)"
>>> (?Register at vtkObjectBase@@UAEXPAV1@@Z)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkObjectBase::UnRegister(class vtkObjectBase *)"
>>> (?UnRegister at vtkObjectBase@@UAEXPAV1@@Z)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol
>>> "protected: virtual void __thiscall
>>> myParametricTrefoilKnot::CollectRevisions(class
>>> std::basic_ostream<char,struct std::char_traits<char> > &)"
>>> (?CollectRevisions at myParametricTrefoilKnot@@MAEXAAV?$basic_ostream at DU
>>> ?$char_traits at D@std@@@std@@@Z)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol
>>> "protected: virtual void __thiscall vtkObject::RegisterInternal(class
>>> vtkObjectBase *,int)" (?RegisterInternal at vtkObject
>>> @@MAEXPAVvtkObjectBase@@H at Z)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol
>>> "protected: virtual void __thiscall vtkObject::UnRegisterInternal(class
>>> vtkObjectBase *,int)" (?UnRegisterInternal at vtkObject
>>> @@MAEXPAVvtkObjectBase@@H at Z)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol
>>> "protected: virtual void __thiscall vtkObjectBase::ReportReferences(class
>>> vtkGarbageCollector *)" (?ReportReferences at vtkObjectBase
>>> @@MAEXPAVvtkGarbageCollector@@@Z)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkObject::DebugOn(void)" (?DebugOn at vtkObject
>>> @@UAEXXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkObject::DebugOff(void)" (?DebugOff at vtkObject
>>> @@UAEXXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkObject::Modified(void)" (?Modified at vtkObject
>>> @@UAEXXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual unsigned long __thiscall vtkObject::GetMTime(void)"
>>> (?GetMTime at vtkObject@@UAEKXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkParametricFunction::SetMinimumU(double)"
>>> (?SetMinimumU at vtkParametricFunction@@UAEXN at Z)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual double __thiscall vtkParametricFunction::GetMinimumU(void)"
>>> (?GetMinimumU at vtkParametricFunction@@UAENXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkParametricFunction::SetMaximumU(double)"
>>> (?SetMaximumU at vtkParametricFunction@@UAEXN at Z)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual double __thiscall vtkParametricFunction::GetMaximumU(void)"
>>> (?GetMaximumU at vtkParametricFunction@@UAENXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkParametricFunction::SetMinimumV(double)"
>>> (?SetMinimumV at vtkParametricFunction@@UAEXN at Z)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual double __thiscall vtkParametricFunction::GetMinimumV(void)"
>>> (?GetMinimumV at vtkParametricFunction@@UAENXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkParametricFunction::SetMaximumV(double)"
>>> (?SetMaximumV at vtkParametricFunction@@UAEXN at Z)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual double __thiscall vtkParametricFunction::GetMaximumV(void)"
>>> (?GetMaximumV at vtkParametricFunction@@UAENXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkParametricFunction::SetMinimumW(double)"
>>> (?SetMinimumW at vtkParametricFunction@@UAEXN at Z)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual double __thiscall vtkParametricFunction::GetMinimumW(void)"
>>> (?GetMinimumW at vtkParametricFunction@@UAENXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkParametricFunction::SetMaximumW(double)"
>>> (?SetMaximumW at vtkParametricFunction@@UAEXN at Z)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual double __thiscall vtkParametricFunction::GetMaximumW(void)"
>>> (?GetMaximumW at vtkParametricFunction@@UAENXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkParametricFunction::SetJoinU(int)"
>>> (?SetJoinU at vtkParametricFunction@@UAEXH at Z)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual int __thiscall vtkParametricFunction::GetJoinU(void)"
>>> (?GetJoinU at vtkParametricFunction@@UAEHXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkParametricFunction::JoinUOn(void)"
>>> (?JoinUOn at vtkParametricFunction@@UAEXXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkParametricFunction::JoinUOff(void)"
>>> (?JoinUOff at vtkParametricFunction@@UAEXXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkParametricFunction::SetJoinV(int)"
>>> (?SetJoinV at vtkParametricFunction@@UAEXH at Z)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual int __thiscall vtkParametricFunction::GetJoinV(void)"
>>> (?GetJoinV at vtkParametricFunction@@UAEHXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkParametricFunction::JoinVOn(void)"
>>> (?JoinVOn at vtkParametricFunction@@UAEXXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkParametricFunction::JoinVOff(void)"
>>> (?JoinVOff at vtkParametricFunction@@UAEXXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkParametricFunction::SetTwistU(int)"
>>> (?SetTwistU at vtkParametricFunction@@UAEXH at Z)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual int __thiscall vtkParametricFunction::GetTwistU(void)"
>>> (?GetTwistU at vtkParametricFunction@@UAEHXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkParametricFunction::TwistUOn(void)"
>>> (?TwistUOn at vtkParametricFunction@@UAEXXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkParametricFunction::TwistUOff(void)"
>>> (?TwistUOff at vtkParametricFunction@@UAEXXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkParametricFunction::SetTwistV(int)"
>>> (?SetTwistV at vtkParametricFunction@@UAEXH at Z)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual int __thiscall vtkParametricFunction::GetTwistV(void)"
>>> (?GetTwistV at vtkParametricFunction@@UAEHXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkParametricFunction::TwistVOn(void)"
>>> (?TwistVOn at vtkParametricFunction@@UAEXXZ)
>>> 2>TrefoilKnot.obj : error LNK2001: unresolved external symbol "public:
>>> virtual void __thiscall vtkParametricFunction::TwistVOff(void)"
>>> (?TwistVOff at vtkParametricFunction@@UAEXXZ)
>>> etc. etc.
>>> ------------------------------
>>> *From:* Andrew Maclean [andrew.amaclean at gmail.com]
>>> *Sent:* Sunday, 4 October 2015 2:53 p.m.
>>> *To:* Gib Bogle
>>> *Cc:* vtk; logicmonkeyuk
>>> *Subject:* RE: [vtkusers] Computational Geometry - user equations?
>>>
>>> vtkNamedColors was introduced in VTK 6. For VTK 5 you will have to
>>> specify colours using RGB values.
>>>
>>> e.g something like:
>>> unsigned char red[3] = {255, 0, 0};
>>>   actor->GetProperty()->SetColor(red[0], red[1], red[2]);
>>>
>>> Andrew Maclean
>>> On 4 Oct 2015 12:35 pm, "Gib Bogle" <g.bogle at auckland.ac.nz> wrote:
>>>
>>>> Hi Piers, Andrew, Cory,
>>>>
>>>> This does not build with VTK 5.10 (no vtkNamedColors.h).  Is there a
>>>> version that works with 5.10?
>>>>
>>>> Thanks
>>>> Gib
>>>> ------------------------------
>>>> *From:* vtkusers [vtkusers-bounces at vtk.org] on behalf of
>>>> piers.barber at logicmonkey.co.uk [piers.barber at logicmonkey.co.uk]
>>>> *Sent:* Sunday, 4 October 2015 1:48 p.m.
>>>> *To:* andrew.amaclean at gmail.com
>>>> *Cc:* vtk
>>>> *Subject:* Re: [vtkusers] Computational Geometry - user equations?
>>>>
>>>> Andrew, Cory,
>>>>
>>>> Thanks for the attachment - as a non-coder it bridged the gap between
>>>> the PDF that I've seen before and what actually needed to be done.
>>>>
>>>> I've attached my trefoil knot code in a zip. The partial derivatives
>>>> make a big difference to shadows.
>>>>
>>>> I'm on Arch Linux with VTK 6.1.0, and the only change I needed to make
>>>> to get the example to build was to the CMakeLists.txt - so it picks up
>>>> OpenGL rather than OpenGL2.
>>>>
>>>> I'm pleased that this works, but the output surface is rather jagged
>>>> when compared to what I get with MathMod. Any ideas?
>>>>
>>>> For the VTK user list, the zipped files I mention are here:
>>>>
>>>> https://github.com/logicmonkey/curves/tree/master/vtk/TrefoilKnot
>>>>
>>>> ( unzip/git pull; cd TrefoilKnot; mkdir build; cd build; cmake ..;
>>>> make; ./bin/TrefoilKnot )
>>>>
>>>> Thanks again for your help.
>>>>
>>>> --
>>>>
>>>> Piers Barber (-=:LogicMonkey;=-)
>>>>
>>>> On 2015-10-01 00:19, Andrew Maclean wrote:
>>>>
>>>> If I understand you correctly, then the approach described in
>>>> http://www.vtk.org/img/ParametricSurfaces.pdfin " How to create your
>>>> own surface" should work for you. If you adopt this approach, you just
>>>> build using the library and you do not need to modify the VTK library.
>>>>
>>>> I attach  a VTK 6.3+ version of the example for you to try out.
>>>>
>>>> I'll add this to the VTK examples sometime next week.
>>>>
>>>> Once you get a surface you might like to look at:
>>>>
>>>> http://www.vtk.org/Wiki/VTK/Examples/Cxx/Visualization/ElevationBandsWithGlyphs
>>>> and
>>>>
>>>> http://www.vtk.org/Wiki/VTK/Examples/Cxx/Visualization/CurvatureBandsWithGlyphs
>>>> for some visualisation ideas.
>>>>
>>>>
>>>> Regards
>>>>    Andrew
>>>>
>>>>
>>>>
>>>>> ---------- Forwarded message ----------
>>>>> From: Cory Quammen <cory.quammen at kitware.com>
>>>>> To: piers.barber at logicmonkey.co.uk
>>>>> Cc: "vtkusers at vtk.org" <vtkusers at vtk.org>
>>>>> Date: Wed, 30 Sep 2015 09:15:45 -0400
>>>>> Subject: Re: [vtkusers] Computational Geometry - user equations?
>>>>> On Tue, Sep 29, 2015 at 12:13 PM, <piers.barber at logicmonkey.co.uk>
>>>>> wrote:
>>>>>
>>>>>> Hi All,
>>>>>>
>>>>>> I'd like to specify a surface f(u,v) in 3D with my own parametric
>>>>>> equation system {x(u,v), y(u,v), z(u,v)}. And then visualize it.
>>>>>>
>>>>>> The only way I can see to do this is to add my function to the
>>>>>> library source code, build the library and then call my function as
>>>>>> described here:
>>>>>>
>>>>>>
>>>>>> http://www.vtk.org/Wiki/VTK/Examples/Cxx/GeometricObjects/ParametricObjectsDemo#CMakeLists.txt
>>>>>
>>>>>
>>>>> Yep, that looks like a good way to go.
>>>>>
>>>>>
>>>>>> I'm using vtkParametricTorus[.h, .cxx] as a template, but is there an
>>>>>> easier and more direct way to do this?
>>>>>
>>>>>
>>>>> You can define your subclass of vtkParametricFunction in your local
>>>>> project - no need to add it to VTK, which is what I think you were saying
>>>>> above.
>>>>>
>>>>> Were you looking for a vtkParametricFunction subclass that takes an
>>>>> expression for x(u,v), etc.? That doesn't exist as far as I know, but that
>>>>> would be cool to have.
>>>>>
>>>>> Cory
>>>>>
>>>>>
>>>>>> Thanks!
>>>>>>
>>>>>> -=:LM:=-
>>>>>> _______________________________________________
>>>>>> Powered by www.kitware.com
>>>>>>
>>>>>> Visit other Kitware open-source projects at
>>>>>> http://www.kitware.com/opensource/opensource.html
>>>>>>
>>>>>> Please keep messages on-topic and check the VTK FAQ at:
>>>>>> http://www.vtk.org/Wiki/VTK_FAQ
>>>>>>
>>>>>> Search the list archives at: http://markmail.org/search/?q=vtkusers
>>>>>>
>>>>>> Follow this link to subscribe/unsubscribe:
>>>>>> http://public.kitware.com/mailman/listinfo/vtkusers
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Cory Quammen
>>>>> R&D Engineer
>>>>> Kitware, Inc.
>>>>>
>>>>>
>>>>> --
>>>> ___________________________________________
>>>> Andrew J. P. Maclean
>>>>
>>>> ___________________________________________
>>>>
>>>>
>>>>
>>>>
>>>
>
>
> --
> ___________________________________________
> Andrew J. P. Maclean
>
> ___________________________________________
>



-- 
___________________________________________
Andrew J. P. Maclean

___________________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20151004/9e124822/attachment.html>


More information about the vtkusers mailing list