[vtkusers] Computational Geometry - user equations?

Andrew Maclean andrew.amaclean at gmail.com
Sun Oct 4 00:38:04 EDT 2015


I just had a look at what you did. It looks very nice try increasing U/V
resolution.
e.g:
  pfnSrc->SetUResolution(100);
  pfnSrc->SetUResolution(100);

And you should get a really smooth surface.

On Sun, Oct 4, 2015 at 3:17 PM, Andrew Maclean <andrew.amaclean at gmail.com>
wrote:

> 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
>
> ___________________________________________
>



-- 
___________________________________________
Andrew J. P. Maclean

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


More information about the vtkusers mailing list