<div dir="ltr"><p style="margin-left: 3pt;"><i><span lang="EN-GB">&nbsp; Thank you very much Amy. The program compiles without any errors!</span></i></p><p style="margin-left: 3pt;"><i><span lang="EN-GB">&nbsp; However , I still have a problem : The OpenGl lines doesn&#39;t display on the screen.</span></i></p>
<p style="margin-left: 3pt;"><i><span lang="EN-GB">&nbsp; I check In Debug Mode, the </span></i><font size="2"><span lang="EN-GB">RenderOpaqueGeometry function is executed permanently ( following the pipeline). <br></span></font></p>
<p style="margin-left: 3pt;"><i><span lang="EN-GB">&nbsp; <br></span></i></p><p style="margin-left: 3pt;"><i><span lang="EN-GB"><br></span></i></p><p style="margin-left: 3pt;"><i><span lang="EN-GB">----- In the main propram----------<br>
</span></i></p><p style="margin-left: 3pt;"><span lang="EN-GB">&nbsp;&nbsp;&nbsp; .............<br></span></p><p style="margin-left: 3pt;"><span lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp; vtkRenderer<span>&nbsp; </span>*renderer = vtkRenderer<span>&nbsp; </span>::New();</span></p>


<p><span lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkMyDerivedProp-&gt;
RenderOpaqueGeometry(renderer);</span></p>

<p><span lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; renderer-&gt;AddProp(vtkMyDerivedProp);</span></p><p><span lang="EN-GB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...........<br></span></p><p><span lang="EN-GB">---- In&nbsp; Myderived class----------------<br></span></p><p><font size="2"><span lang="EN-GB">virtual int
RenderOpaqueGeometry(vtkViewPort* )</span><br><br></font>{   <br></p><div><pre><font size="2"><span lang="EN-GB"><span style="font-family: arial,helvetica,sans-serif;">            glBegin (GL_LINES);</span><div style="font-family: arial,helvetica,sans-serif;" class="Ih2E3d">
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>glVertex2f (-2.5, 2.5);<br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>glVertex2f (2.5, -2.5);<br><span>&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>glEnd ();</div></span><span style="font-family: Arial;" lang="EN-GB"></span></font><font size="2"><span lang="EN-GB">}</span></font></pre>


</div><br>Any suggestions ? Did I miss something ?<br><br>Thank you in advance,<br>Amine<br><br><br><div class="gmail_quote">2008/8/19 Amy Squillacote <span dir="ltr">&lt;<a href="mailto:ahs@cfdrc.com">ahs@cfdrc.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi Amine,<br>
<br>
You cannot use VTK_RENDERING_EXPORT since you are not adding your class to the vtkRendering library. You&#39;ll need to create your own export macro. There is an example of setting up your own additional library for VTK in the VTK/Examples/Build/vtkLocal directory of the VTK source tree.<br>

<br>
- Amy<br>
<br>
Mohammed Amine SAHTARI wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div class="Wj3C7c">
<br>
I use vtkStandardNewMacro to add New macro. The problem is that I got 5 link errors even if I include the librairies of VTK (In VS 8).<br>
<br>
Hereby, you find my derived class (.h &amp; .cxx).<br>
<br>
---------------- vtkMyDerivedProp.h -------------------------<br>
<br>
#ifndef __vtkMyDerivedProp_h<br>
#define __vtkMyDerivedProp_h<br>
#include &quot;vtkProp.h&quot;<br>
<br>
class VTK_RENDERING_EXPORT vtkMyDerivedProp : public vtkProp<br>
{<br>
public:<br>
<br>
 &nbsp;vtkTypeRevisionMacro(vtkMyDerivedProp,vtkProp);<br>
 &nbsp;void PrintSelf(ostream&amp; os, vtkIndent indent);<br>
 &nbsp;static vtkMyDerivedProp* New();<br>
<br>
protected:<br>
<br>
 &nbsp;vtkMyDerivedProp();<br>
 &nbsp;~vtkMyDerivedProp();<br>
<br>
private:<br>
<br>
 &nbsp;vtkMyDerivedProp(const vtkMyDerivedProp&amp;); &nbsp;// Not implemented. &nbsp; &nbsp;void operator=(const vtkMyDerivedProp&amp;); &nbsp;// Not implemented.<br>
<br>
};<br>
<br>
#endif<br>
<br>
---------------- vtkMyDerivedProp.cxx -------------------------<br>
<br>
#include &quot;vtkMyDerivedProp.h&quot;<br>
<br>
#include &quot;vtkObjectFactory.h&quot;<br>
<br>
vtkCxxRevisionMacro(vtkMyDerivedProp, &quot;$Revision: 1.36 $&quot;);<br>
<br>
vtkStandardNewMacro(vtkMyDerivedProp);<br>
<br>
vtkMyDerivedProp::vtkMyDerivedProp(){}<br>
<br>
vtkMyDerivedProp::~vtkMyDerivedProp(){}<br>
<br>
void vtkMyDerivedProp::PrintSelf(ostream&amp; os, vtkIndent indent)<br>
{<br>
&nbsp;this-&gt;Superclass::PrintSelf(os,indent);<br>
}<br>
<br>
-------------------------------------- Errors ------------------------------------------<br>
<br>
*I got 5 errors *<br>
<br>
1&gt;vtkMyDerivedProp.obj : error LNK2001: unresolved external symbol &quot;private: virtual char const * __thiscall vtkMyDerivedProp::GetClassNameInternal(void)const &quot; (?GetClassNameInternal@vtkMyDerivedProp@@EBEPBDXZ)<br>

<br>
1&gt;vtkMyDerivedProp.obj : error LNK2001: unresolved external symbol &quot;public: virtual int __thiscall vtkMyDerivedProp::IsA(char const *)&quot; (?IsA@vtkMyDerivedProp@@UAEHPBD@Z)<br>
<br>
1&gt;vtkMyDerivedProp.obj : error LNK2001: unresolved external symbol &quot;protected: virtual class vtkObjectBase * __thiscall vtkMyDerivedProp::NewInstanceInternal(void)const &quot; (?NewInstanceInternal@vtkMyDerivedProp@@MBEPAVvtkObjectBase@@XZ)<br>

<br>
1&gt;vtkMyDerivedProp.obj : error LNK2019: unresolved external symbol &quot;__declspec(dllimport) const vtkMyDerivedProp::`vftable&#39;&quot; (__imp_??_7vtkMyDerivedProp@@6B@) referenced in function &quot;protected: __thiscall vtkMyDerivedProp::vtkMyDerivedProp(void)&quot; (??0vtkMyDerivedProp@@IAE@XZ)<br>

<br>
1&gt;C:\Documents and Settings\asahtari\Mes documents\Projet\Bibillothéques\VTK\MyTest\MyLib.dll : fatal error LNK1120: 4 unresolved externals<br>
<br>
When I put vtkMyDerivedProp instead of vtkProp3D, it compiles without any error.<br>
I don&#39;t understand .Is it a matter of VTK librairies ? Please Help!<br>
<br>
Amine<br>
<br></div></div><div><div></div><div class="Wj3C7c">
2008/8/14 Utkarsh Ayachit &lt;<a href="mailto:utkarsh.ayachit@kitware.com" target="_blank">utkarsh.ayachit@kitware.com</a> &lt;mailto:<a href="mailto:utkarsh.ayachit@kitware.com" target="_blank">utkarsh.ayachit@kitware.com</a>&gt;&gt;<br>

<br>
 &nbsp; &nbsp;Please keep the questions to the mailing list, so that others can<br>
 &nbsp; &nbsp;benefit/contribute as well.<br>
<br>
 &nbsp; &nbsp;To add New():<br>
 &nbsp; &nbsp;* take a look at any concrete class in VTK eg. vtkCollection (the<br>
 &nbsp; &nbsp;New is<br>
 &nbsp; &nbsp; declared in the header and defined using<br>
 &nbsp; &nbsp;vtkStandardNewMacro(vtkCollection); in the cxx.<br>
<br>
 &nbsp; &nbsp;* not using the viewport in the RenderOpaqueGeometry should not be a<br>
 &nbsp; &nbsp;problem. It&#39;s only provided if needed.<br>
<br>
 &nbsp; &nbsp;Utkarsh<br>
<br>
<br>
<br>
<br>
 &nbsp; &nbsp;Mohammed Amine SAHTARI wrote:<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;Thank you very much Utkarsh.<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;I am tring to implement your solution but I have some problems.<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;1) I create vtkMyDerivedProp.h and vtkMyDerivedProp.cxx<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; I subclass vtkProp :<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- I copy the class code of vtkProp3D (.h and .c files)<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- I replace all the words :<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vtkProp3D /by/ /vtkMyDerivedProp /and Prop3D by<br>
 &nbsp; &nbsp; &nbsp; &nbsp;/MyDerivedProp/<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- I include /&quot;vtkGl.h&quot;/ in vtkMyDerivedProp.h<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- I add RenderOpaqueGeometry() in vtkMyDerivedProp.h<br>
 &nbsp; &nbsp; &nbsp; &nbsp;like this :<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/virtual int RenderOpaqueGeometry(vtkViewPort* )<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{/<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;/ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; glBegin (GL_LINES);<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;glVertex2f (-2.5, 2.5);<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;glVertex2f (2.5, -2.5);<br>
<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;glEnd ();/<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;/ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }/<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;2) In my program : &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - I include and instantiate vtkMyDerivedProp :<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; / &nbsp;//# include &quot;vtkMyDerivedProp.h&quot;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vtkMyDerivedProp *MyDerivedProp;/<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;- &nbsp; &nbsp; &nbsp; &nbsp; I use &nbsp;vtkMyDerivedProp :<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;/ &nbsp; &nbsp; vtkRenderer &nbsp;*renderer = vtkRenderer &nbsp;::New();/<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;/ &nbsp; &nbsp; &nbsp;vtkMyDerivedProp-&gt; RenderOpaqueGeometry(renderer);/<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;/ &nbsp; &nbsp; &nbsp;renderer-&gt;AddProp(vtkMyDerivedProp);/<br>
<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;*Problem *: vtkMyDerivedProp is used without been defined!<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;*Question 1 :* How can I define it ? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(vtkMyDerivedProp::New() &nbsp;doesn&#39;t work)<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;*Question 2 :* &nbsp;RenderOpaqueGeometry has vtkViewPort* in input<br>
 &nbsp; &nbsp; &nbsp; &nbsp;but doesn&#39;t use it. Is it a problem ?<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;How can I fix this?<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;Looking forward to hear from you soon,<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;Amine**<br>
<br>
<br>
<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; <br>
 &nbsp; &nbsp; &nbsp; &nbsp;2008/8/14 Utkarsh Ayachit &lt;<a href="mailto:utkarsh.ayachit@kitware.com" target="_blank">utkarsh.ayachit@kitware.com</a><br>
 &nbsp; &nbsp; &nbsp; &nbsp;&lt;mailto:<a href="mailto:utkarsh.ayachit@kitware.com" target="_blank">utkarsh.ayachit@kitware.com</a>&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;&lt;mailto:<a href="mailto:utkarsh.ayachit@kitware.com" target="_blank">utkarsh.ayachit@kitware.com</a><br>
 &nbsp; &nbsp; &nbsp; &nbsp;&lt;mailto:<a href="mailto:utkarsh.ayachit@kitware.com" target="_blank">utkarsh.ayachit@kitware.com</a>&gt;&gt;&gt;<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; iren-&gt;Start() results in repeated calls to renWin-&gt;Render() on<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; interaction. This will clear whatever you had drawn. A better<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; approach is to subclass vtkProp(or one of it&#39;s subclasses)<br>
 &nbsp; &nbsp; &nbsp; &nbsp;and put<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; your rendering code in RenderOpaqueGeometry() /<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RenderTranslucentPolygonalGeometry()/ RenderOverlay() etc.<br>
 &nbsp; &nbsp; &nbsp; &nbsp;depending<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; upon what pass you want it to be rendered and then add the<br>
 &nbsp; &nbsp; &nbsp; &nbsp;prop to<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; the renderer. That way every time the renderer re-renders,<br>
 &nbsp; &nbsp; &nbsp; &nbsp;your code<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; will be executed.<br>
<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Utkarsh<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mohammed Amine SAHTARI wrote:<br>
<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; I want to add an OpenGl code in an application of VTK.<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; For this purpose, I try to draw lines using commands<br>
 &nbsp; &nbsp; &nbsp; &nbsp;OpenGL.:<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *1) I add this on the top of the program :*<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #include &lt;GL/gl.h&gt;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *2) I place my OpenGL commands after renWin-&gt;Render()<br>
 &nbsp; &nbsp; &nbsp; &nbsp;but before<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; iren-&gt;Start()** : &nbsp;*<br>
<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; renWin-&gt;Render();<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;glBegin (GL_LINES);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; glVertex2f (-2.5, 2.5);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; glVertex2f (2.5, -2.5);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; glEnd ();<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; iren-&gt;Start();<br>
<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *But it doesn&#39;t appears.*<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; did I miss something ? How can I do this work ?<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Looking forward to hear from you soon,<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Amine<br>
<br>
<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  &nbsp; &nbsp; &nbsp; &nbsp; ------------------------------------------------------------------------<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _______________________________________________<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; This is the private VTK discussion list.<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Please keep messages on-topic. Check the FAQ at:<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Follow this link to subscribe/unsubscribe:<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
<br>
<br>
<br>
 &nbsp; &nbsp;_______________________________________________<br>
 &nbsp; &nbsp;This is the private VTK discussion list.<br>
 &nbsp; &nbsp;Please keep messages on-topic. Check the FAQ at:<br>
 &nbsp; &nbsp;<a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
 &nbsp; &nbsp;Follow this link to subscribe/unsubscribe:<br>
 &nbsp; &nbsp;<a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
<br>
<br>
------------------------------------------------------------------------<br>
<br>
_______________________________________________<br>
This is the private VTK discussion list.<br>
Please keep messages on-topic. Check the FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
 &nbsp;<br>
</div></div></blockquote><font color="#888888">
<br>
-- <br>
Amy Squillacote &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Phone: (256) 726-4839<br>
Computer Scientist &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Fax: (256) 726-4806<br>
CFD Research Corporation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Web: <a href="http://www.cfdrc.com" target="_blank">http://www.cfdrc.com</a><br>
215 Wynn Drive, Suite 501<br>
Huntsville, AL &nbsp;35805<br>
<br>
<br>
</font></blockquote></div><br></div>