[vtkusers] [Fwd: Re: Using OpenGl with VTK] Color using glColor3f
Mohammed Amine SAHTARI
msahtari at gmail.com
Wed Aug 20 04:43:53 EDT 2008
The background is *gray *and The OpenGl lines has been dispalyed as *gray* !
When I change the background of my screen I was able to visualize the
Opengl lines/faces.
I am wondering why the OpenGL lines is grey knowing that i am using
glColor3f [(1,0,0);(0,1,0),..] in RenderOpaqueGeometry which should affect
other colors to the lines ?!
Shall I enable/change an option to fix this matter ? ...Please help!
Amine
2008/8/19 Mohammed Amine SAHTARI <msahtari at gmail.com>
> * Thank you very much Amy. The program compiles without any errors!*
>
> * However , I still have a problem : The OpenGl lines doesn't display on
> the screen.*
>
> * I check In Debug Mode, the *RenderOpaqueGeometry function is executed
> permanently ( following the pipeline).
>
> *
> *
>
> *
> *
>
> *----- In the main propram----------
> *
>
> .............
>
> vtkRenderer *renderer = vtkRenderer ::New();
>
> vtkMyDerivedProp-> RenderOpaqueGeometry(renderer);
>
> renderer->AddProp(vtkMyDerivedProp);
>
> ...........
>
> ---- In Myderived class----------------
>
> virtual int RenderOpaqueGeometry(vtkViewPort* )
>
> {
>
> glBegin (GL_LINES); glVertex2f (-2.5, 2.5);
> glVertex2f (2.5, -2.5);
> glEnd ();
> }
>
>
> Any suggestions ? Did I miss something ?
>
> Thank you in advance,
> Amine
>
>
> 2008/8/19 Amy Squillacote <ahs at cfdrc.com>
>
> Hi Amine,
>>
>> You cannot use VTK_RENDERING_EXPORT since you are not adding your class to
>> the vtkRendering library. You'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.
>>
>> - Amy
>>
>> Mohammed Amine SAHTARI wrote:
>>
>>>
>>> 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).
>>>
>>> Hereby, you find my derived class (.h & .cxx).
>>>
>>> ---------------- vtkMyDerivedProp.h -------------------------
>>>
>>> #ifndef __vtkMyDerivedProp_h
>>> #define __vtkMyDerivedProp_h
>>> #include "vtkProp.h"
>>>
>>> class VTK_RENDERING_EXPORT vtkMyDerivedProp : public vtkProp
>>> {
>>> public:
>>>
>>> vtkTypeRevisionMacro(vtkMyDerivedProp,vtkProp);
>>> void PrintSelf(ostream& os, vtkIndent indent);
>>> static vtkMyDerivedProp* New();
>>>
>>> protected:
>>>
>>> vtkMyDerivedProp();
>>> ~vtkMyDerivedProp();
>>>
>>> private:
>>>
>>> vtkMyDerivedProp(const vtkMyDerivedProp&); // Not implemented. void
>>> operator=(const vtkMyDerivedProp&); // Not implemented.
>>>
>>> };
>>>
>>> #endif
>>>
>>> ---------------- vtkMyDerivedProp.cxx -------------------------
>>>
>>> #include "vtkMyDerivedProp.h"
>>>
>>> #include "vtkObjectFactory.h"
>>>
>>> vtkCxxRevisionMacro(vtkMyDerivedProp, "$Revision: 1.36 $");
>>>
>>> vtkStandardNewMacro(vtkMyDerivedProp);
>>>
>>> vtkMyDerivedProp::vtkMyDerivedProp(){}
>>>
>>> vtkMyDerivedProp::~vtkMyDerivedProp(){}
>>>
>>> void vtkMyDerivedProp::PrintSelf(ostream& os, vtkIndent indent)
>>> {
>>> this->Superclass::PrintSelf(os,indent);
>>> }
>>>
>>> -------------------------------------- Errors
>>> ------------------------------------------
>>>
>>> *I got 5 errors *
>>>
>>> 1>vtkMyDerivedProp.obj : error LNK2001: unresolved external symbol
>>> "private: virtual char const * __thiscall
>>> vtkMyDerivedProp::GetClassNameInternal(void)const "
>>> (?GetClassNameInternal at vtkMyDerivedProp@@EBEPBDXZ)
>>>
>>> 1>vtkMyDerivedProp.obj : error LNK2001: unresolved external symbol
>>> "public: virtual int __thiscall vtkMyDerivedProp::IsA(char const *)"
>>> (?IsA at vtkMyDerivedProp@@UAEHPBD at Z)
>>>
>>> 1>vtkMyDerivedProp.obj : error LNK2001: unresolved external symbol
>>> "protected: virtual class vtkObjectBase * __thiscall
>>> vtkMyDerivedProp::NewInstanceInternal(void)const "
>>> (?NewInstanceInternal at vtkMyDerivedProp@@MBEPAVvtkObjectBase@@XZ)
>>>
>>> 1>vtkMyDerivedProp.obj : error LNK2019: unresolved external symbol
>>> "__declspec(dllimport) const vtkMyDerivedProp::`vftable'"
>>> (__imp_??_7vtkMyDerivedProp@@6B@) referenced in function "protected:
>>> __thiscall vtkMyDerivedProp::vtkMyDerivedProp(void)" (??0vtkMyDerivedProp@
>>> @IAE at XZ)
>>>
>>> 1>C:\Documents and Settings\asahtari\Mes
>>> documents\Projet\Bibillothéques\VTK\MyTest\MyLib.dll : fatal error LNK1120:
>>> 4 unresolved externals
>>>
>>> When I put vtkMyDerivedProp instead of vtkProp3D, it compiles without any
>>> error.
>>> I don't understand .Is it a matter of VTK librairies ? Please Help!
>>>
>>> Amine
>>>
>>> 2008/8/14 Utkarsh Ayachit <utkarsh.ayachit at kitware.com <mailto:
>>> utkarsh.ayachit at kitware.com>>
>>>
>>> Please keep the questions to the mailing list, so that others can
>>> benefit/contribute as well.
>>>
>>> To add New():
>>> * take a look at any concrete class in VTK eg. vtkCollection (the
>>> New is
>>> declared in the header and defined using
>>> vtkStandardNewMacro(vtkCollection); in the cxx.
>>>
>>> * not using the viewport in the RenderOpaqueGeometry should not be a
>>> problem. It's only provided if needed.
>>>
>>> Utkarsh
>>>
>>>
>>>
>>>
>>> Mohammed Amine SAHTARI wrote:
>>>
>>> Thank you very much Utkarsh.
>>>
>>> I am tring to implement your solution but I have some problems.
>>>
>>> 1) I create vtkMyDerivedProp.h and vtkMyDerivedProp.cxx
>>>
>>> I subclass vtkProp :
>>> - I copy the class code of vtkProp3D (.h and .c files)
>>> - I replace all the words :
>>> vtkProp3D /by/ /vtkMyDerivedProp /and Prop3D by
>>> /MyDerivedProp/
>>> - I include /"vtkGl.h"/ in vtkMyDerivedProp.h
>>> - I add RenderOpaqueGeometry() in vtkMyDerivedProp.h
>>> like this :
>>> /virtual int RenderOpaqueGeometry(vtkViewPort* )
>>> {/
>>>
>>> / glBegin (GL_LINES);
>>>
>>> glVertex2f (-2.5, 2.5);
>>>
>>> glVertex2f (2.5, -2.5);
>>>
>>>
>>> glEnd ();/
>>>
>>> / }/
>>>
>>> 2) In my program : - I include and instantiate
>>> vtkMyDerivedProp :
>>>
>>> / //# include "vtkMyDerivedProp.h"
>>> vtkMyDerivedProp *MyDerivedProp;/
>>>
>>> - I use vtkMyDerivedProp :
>>>
>>> / vtkRenderer *renderer = vtkRenderer ::New();/
>>>
>>> / vtkMyDerivedProp-> RenderOpaqueGeometry(renderer);/
>>>
>>> / renderer->AddProp(vtkMyDerivedProp);/
>>>
>>>
>>> *Problem *: vtkMyDerivedProp is used without been defined!
>>>
>>> *Question 1 :* How can I define it ?
>>> (vtkMyDerivedProp::New() doesn't work)
>>>
>>> *Question 2 :* RenderOpaqueGeometry has vtkViewPort* in input
>>> but doesn't use it. Is it a problem ?
>>>
>>> How can I fix this?
>>>
>>> Looking forward to hear from you soon,
>>>
>>> Amine**
>>>
>>>
>>>
>>>
>>>
>>> 2008/8/14 Utkarsh Ayachit <utkarsh.ayachit at kitware.com
>>> <mailto:utkarsh.ayachit at kitware.com>
>>> <mailto:utkarsh.ayachit at kitware.com
>>> <mailto:utkarsh.ayachit at kitware.com>>>
>>>
>>> iren->Start() results in repeated calls to renWin->Render() on
>>> interaction. This will clear whatever you had drawn. A better
>>> approach is to subclass vtkProp(or one of it's subclasses)
>>> and put
>>> your rendering code in RenderOpaqueGeometry() /
>>> RenderTranslucentPolygonalGeometry()/ RenderOverlay() etc.
>>> depending
>>> upon what pass you want it to be rendered and then add the
>>> prop to
>>> the renderer. That way every time the renderer re-renders,
>>> your code
>>> will be executed.
>>>
>>>
>>> Utkarsh
>>>
>>> Mohammed Amine SAHTARI wrote:
>>>
>>>
>>> I want to add an OpenGl code in an application of VTK.
>>>
>>> For this purpose, I try to draw lines using commands
>>> OpenGL.:
>>>
>>> *1) I add this on the top of the program :*
>>>
>>> #include <GL/gl.h>
>>> *2) I place my OpenGL commands after renWin->Render()
>>> but before
>>> iren->Start()** : *
>>>
>>>
>>> renWin->Render();
>>>
>>> glBegin (GL_LINES);
>>> glVertex2f (-2.5, 2.5);
>>> glVertex2f (2.5, -2.5);
>>> glEnd ();
>>>
>>> iren->Start();
>>>
>>>
>>> *But it doesn't appears.*
>>>
>>> did I miss something ? How can I do this work ?
>>> Looking forward to hear from you soon,
>>>
>>> Amine
>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> This is the private VTK discussion list.
>>> Please keep messages on-topic. Check the FAQ at:
>>> http://www.vtk.org/Wiki/VTK_FAQ
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>
>>>
>>>
>>> _______________________________________________
>>> This is the private VTK discussion list.
>>> Please keep messages on-topic. Check the FAQ at:
>>> http://www.vtk.org/Wiki/VTK_FAQ
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> This is the private VTK discussion list.
>>> Please keep messages on-topic. Check the FAQ at:
>>> http://www.vtk.org/Wiki/VTK_FAQ
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>
>>>
>>
>> --
>> Amy Squillacote Phone: (256) 726-4839
>> Computer Scientist Fax: (256) 726-4806
>> CFD Research Corporation Web: http://www.cfdrc.com
>> 215 Wynn Drive, Suite 501
>> Huntsville, AL 35805
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20080820/27b6844f/attachment.htm>
More information about the vtkusers
mailing list