[vtkusers] [Fwd: Re: Using OpenGl with VTK] Color using glColor3f
Mohammed Amine SAHTARI
msahtari at gmail.com
Wed Aug 20 17:17:15 EDT 2008
I apologize, you are right : I mean glPopAttrib() for (3). I try it but it
doesn't work......do you have any suggestion please?
2008/8/20, Francois Bertel <francois.bertel at kitware.com>:
>
> What do you mean by glPopAttrib() for (2)? It should be for (3).
>
>
>
> On Wed, Aug 20, 2008 at 12:04 PM, Mohammed Amine SAHTARI
> <msahtari at gmail.com> wrote:
> >
> > Thank you very much François. It works!
> >
> > In order to be able ,in future, to copy a large code of OpenGl directly
> > without checking each time all the OpenGl states. Is there a way to:
> >
> > 1) Store the whole state of the VTK/OpenGl properties
> : light,colors,.....
> > 2) copy the code OpenGl code in my function
> > 3) restore VTK/OpenGl state properties
> >
> > For example, I try glPushAttrib(GL_ALL_ATTRIB_BITS) for (1) , and
> > glPopAttrib() for (2) but it doesn't work.
> >
> > Do you have any idea ?
> >
> > Thank you for responding,
> >
> > Amine
> >
> > 2008/8/20 Francois Bertel <francois.bertel at kitware.com>
> >>
> >> Maybe lighting is on. In this case, the color is the result of the
> >> lighting equation involving material properties, normals and lights
> >> properties instead of the current OpenGL color:
> >>
> >> Try glDisable(GL_LIGHTING);
> >>
> >> On Wed, Aug 20, 2008 at 4:43 AM, Mohammed Amine SAHTARI
> >> <msahtari at gmail.com> wrote:
> >> > 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
> >> >>>
> >> >>>
> >> >>
> >> >
> >> >
> >> > _______________________________________________
> >> > 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
> >> >
> >> >
> >>
> >>
> >>
> >> --
> >> François Bertel, PhD | Kitware Inc. Suite 204
> >> 1 (518) 371 3971 x113 | 28 Corporate Drive
> >> | Clifton Park NY 12065, USA
> >> _______________________________________________
> >> 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
> >
> >
>
>
>
> --
> François Bertel, PhD | Kitware Inc. Suite 204
> 1 (518) 371 3971 x113 | 28 Corporate Drive
> | Clifton Park NY 12065, USA
> _______________________________________________
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20080820/dca02b7c/attachment.htm>
More information about the vtkusers
mailing list