Version: 9.16.0
GLViewer_BaseObjects.h
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5//
6// This library is free software; you can redistribute it and/or
7// modify it under the terms of the GNU Lesser General Public
8// License as published by the Free Software Foundation; either
9// version 2.1 of the License, or (at your option) any later version.
10//
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14// Lesser General Public License for more details.
15//
16// You should have received a copy of the GNU Lesser General Public
17// License along with this library; if not, write to the Free Software
18// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19//
20// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21//
22
23// Author : OPEN CASCADE
24// File: GLViewer_BaseObjects.h
25// Created: November, 2004
26//
27#ifndef GLVIEWER_BASEOBJECTS_H
28#define GLVIEWER_BASEOBJECTS_H
29
30#include "GLViewer.h"
31#include "GLViewer_Object.h"
32
33#include <QColor>
34
35#include <TColStd_SequenceOfInteger.hxx>
36
37#ifdef WIN32
38#pragma warning( disable:4251 )
39#endif
40
46{
47public:
49 GLViewer_MarkerSet( int number = 1, float size = 5.0, const QString& toolTip = "GLMarker" );
52
53 // redefined methods
54 virtual void compute();
56
57 virtual GLboolean highlight( GLfloat x, GLfloat y, GLfloat tol = 15.0, GLboolean isCircle = GL_FALSE );
58 virtual GLboolean unhighlight();
59 virtual GLboolean select( GLfloat x, GLfloat y, GLfloat tol, GLViewer_Rect rect, GLboolean isFull = GL_FALSE,
60 GLboolean isCircle = GL_FALSE, GLboolean isShift = GL_FALSE );
61 virtual GLboolean unselect();
62
64
65 virtual void moveObject( float, float, bool fromGroup = false );
66
67 virtual QByteArray getByteCopy();
68 virtual bool initializeFromByteCopy( QByteArray );
69
70 virtual bool translateToPS( QFile& hFile, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aPSCS );
71 virtual bool translateToHPGL( QFile& hFile, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aHPGLCS );
72
73#ifdef WIN32
74 virtual bool translateToEMF( HDC dc, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aEMFCS );
75#endif
76
78 void setXCoord( GLfloat* xCoord, int size );
80 void setYCoord( GLfloat* yCoord, int size );
82 GLfloat* getXCoord() const { return myXCoord; }
84 GLfloat* getYCoord() const { return myYCoord; }
85
87 void setNumMarkers( GLint );
89 GLint getNumMarkers() const { return myNumber; };
91 void setMarkerSize( const float size ) { myMarkerSize = size; }
93 float getMarkerSize() const { return myMarkerSize; }
94
96 void exportNumbers( QList<int>& high, QList<int>& unhigh,
97 QList<int>& sel, QList<int>& unsel );
98
100 QList<int> getSelectedElements() { return mySelNumbers; }
102 bool addOrRemoveSelected( int index );
104 void addSelected( const TColStd_SequenceOfInteger& );
106 void setSelected( const TColStd_SequenceOfInteger& );
107
108protected:
109 GLint myNumber;
110 GLfloat* myXCoord;
111 GLfloat* myYCoord;
119 TColStd_SequenceOfInteger mySelectedIndexes;
120};
121
127{
128public:
129 GLViewer_Polyline( int number = 1, float size = 5.0, const QString& toolTip = "GLPolyline" );
130 virtual ~GLViewer_Polyline();
131
132 // redefined methods
133 virtual void compute();
134 virtual GLViewer_Drawer* createDrawer();
135
136 virtual GLboolean highlight( GLfloat x, GLfloat y, GLfloat tol = 15.0, GLboolean isCircle = GL_FALSE );
137 virtual GLboolean unhighlight();
138 virtual GLboolean select( GLfloat x, GLfloat y, GLfloat tol, GLViewer_Rect rect, GLboolean isFull = GL_FALSE,
139 GLboolean isCircle = GL_FALSE, GLboolean isShift = GL_FALSE );
140 virtual GLboolean unselect();
141
142 virtual GLViewer_Rect* getUpdateRect();
143
144 virtual void moveObject( float, float, bool fromGroup = false );
145
146 virtual QByteArray getByteCopy();
147 virtual bool initializeFromByteCopy( QByteArray );
148
149 virtual bool translateToPS( QFile& hFile, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aPSCS );
150 virtual bool translateToHPGL( QFile& hFile, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aHPGLCS );
151
152#ifdef WIN32
153 virtual bool translateToEMF( HDC dc, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aEMFCS );
154#endif
155
157 void setXCoord( GLfloat* xCoord, int size );
159 void setYCoord( GLfloat* yCoord, int size );
161 GLfloat* getXCoord() const { return myXCoord; }
163 GLfloat* getYCoord() const { return myYCoord; }
164
166 void setNumber( GLint );
168 GLint getNumber() const { return myNumber; };
169
171 void setClosed( GLboolean closed ) { myIsClosed = closed; }
173 GLboolean isClosed() const { return myIsClosed; }
174
176 void setHighSelAll( GLboolean highSelAll ) { myHighSelAll = highSelAll; }
178 GLboolean isHighSelAll() const { return myHighSelAll; }
179
181 void exportNumbers( QList<int>& high, QList<int>& unhigh,
182 QList<int>& sel, QList<int>& unsel );
183
185 QList<int> getSelectedElements() { return mySelNumbers; }
186
187protected:
188 GLfloat* myXCoord;
189 GLfloat* myYCoord;
190 GLint myNumber;
191 GLboolean myIsClosed;
192 GLboolean myHighSelAll;
193
200 TColStd_SequenceOfInteger mySelectedIndexes;
201
202 GLboolean myHighFlag;
203};
204
210{
211public:
212 GLViewer_TextObject( const QString&, float xPos = 0, float yPos = 0,
213 const QColor& color = QColor( 0, 255, 0 ), const QString& toolTip = "GLText" );
215
216 virtual void compute();
217 virtual GLViewer_Drawer* createDrawer();
218
219 virtual void setDrawer( GLViewer_Drawer* theDrawer );
220
221 virtual GLboolean highlight( GLfloat x, GLfloat y, GLfloat tol, GLboolean isCircle = GL_FALSE );
222 virtual GLboolean unhighlight();
223 virtual GLboolean select( GLfloat x, GLfloat y, GLfloat tol, GLViewer_Rect rect, GLboolean isFull = GL_FALSE,
224 GLboolean isCircle = GL_FALSE, GLboolean isShift = GL_FALSE );
225 virtual GLboolean unselect();
226
227 virtual GLViewer_Rect* getUpdateRect();
228
229 virtual void moveObject( float, float, bool fromGroup = false );
230
231 virtual QByteArray getByteCopy();
232 virtual bool initializeFromByteCopy( QByteArray );
233
234 virtual bool translateToPS( QFile& hFile, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aPSCS );
235 virtual bool translateToHPGL( QFile& hFile, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aHPGLCS );
236
237#ifdef WIN32
238 virtual bool translateToEMF( HDC dc, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aEMFCS );
239#endif
240
241 int getWidth(){ return myWidth; }
242 int getHeight(){ return myWidth; }
243 void setWidth( int w ){ myWidth=w; }
244 void setHeight( int h ){ myHeight=h; }
245
246protected:
250};
251
252#ifdef WIN32
253#pragma warning ( default:4251 )
254#endif
255
256#endif
#define GLVIEWER_API
Macro for exports.
Definition: GLViewer.h:37
Class implementing mathematical model of 2D coordinate system.
Definition: GLViewer_CoordSystem.h:45
Definition: GLViewer_Drawer.h:193
Definition: GLViewer_BaseObjects.h:46
QList< int > myPrevHNumbers
Definition: GLViewer_BaseObjects.h:118
GLfloat myMarkerSize
Definition: GLViewer_BaseObjects.h:112
GLint getNumMarkers() const
returns markers number
Definition: GLViewer_BaseObjects.h:89
GLfloat * getYCoord() const
Returns y coords.
Definition: GLViewer_BaseObjects.h:84
TColStd_SequenceOfInteger mySelectedIndexes
Definition: GLViewer_BaseObjects.h:119
QList< int > myUHNumbers
Definition: GLViewer_BaseObjects.h:114
GLfloat * myXCoord
Definition: GLViewer_BaseObjects.h:110
GLfloat * myYCoord
Definition: GLViewer_BaseObjects.h:111
QList< int > getSelectedElements()
Returns selected numbers.
Definition: GLViewer_BaseObjects.h:100
QList< int > myHNumbers
Definition: GLViewer_BaseObjects.h:113
QList< int > myCurSelNumbers
Definition: GLViewer_BaseObjects.h:116
void setMarkerSize(const float size)
Sets merker radius.
Definition: GLViewer_BaseObjects.h:91
QList< int > mySelNumbers
Definition: GLViewer_BaseObjects.h:115
float getMarkerSize() const
Returns merker radius.
Definition: GLViewer_BaseObjects.h:93
GLint myNumber
Definition: GLViewer_BaseObjects.h:109
GLfloat * getXCoord() const
Returns x coords.
Definition: GLViewer_BaseObjects.h:82
QList< int > myUSelNumbers
Definition: GLViewer_BaseObjects.h:117
Definition: GLViewer_Object.h:65
virtual QByteArray getByteCopy()
A function for coding object to the byte copy.
Definition: GLViewer_Object.cxx:140
virtual bool translateToHPGL(QFile &hFile, GLViewer_CoordSystem *aViewerCS, GLViewer_CoordSystem *aHPGLCS)=0
A function translate object in to HPGL file on disk.
virtual void setSelected(GLboolean state)
Installs select status to object.
Definition: GLViewer_Object.h:158
virtual GLboolean unselect()=0
Clears all select information.
virtual bool translateToPS(QFile &hFile, GLViewer_CoordSystem *aViewerCS, GLViewer_CoordSystem *aPSCS)=0
A function translate object in to PostScript file on disk.
virtual GLboolean unhighlight()=0
Clears all highlight information.
virtual GLboolean select(GLfloat x, GLfloat y, GLfloat tol, GLViewer_Rect rect, GLboolean isFull=GL_FALSE, GLboolean isCircle=GL_FALSE, GLboolean isShift=GL_FALSE)=0
Computes select presentation.
virtual GLboolean highlight(GLfloat x, GLfloat y, GLfloat tol, GLboolean isCircle=GL_FALSE)=0
Computes highlight presentation.
virtual void setDrawer(GLViewer_Drawer *theDrawer)
Installing already exist drawer with same type.
Definition: GLViewer_Object.h:78
virtual GLViewer_Rect * getUpdateRect()=0
Returns update object rectangle.
virtual GLViewer_Drawer * createDrawer()=0
Creates correspond drawer.
virtual bool initializeFromByteCopy(QByteArray)
A function for decoding object from the byte copy.
Definition: GLViewer_Object.cxx:212
virtual void moveObject(float dx, float dy, bool fromGroup=false)=0
Moves object per by recomputing.
virtual void compute()=0
Main method. Computes all needed information about object for presentation in drawer.
Definition: GLViewer_BaseObjects.h:127
QList< int > mySelNumbers
Definition: GLViewer_BaseObjects.h:196
void setHighSelAll(GLboolean highSelAll)
On/off highlight as whole object status.
Definition: GLViewer_BaseObjects.h:176
GLfloat * getXCoord() const
Returns x coords.
Definition: GLViewer_BaseObjects.h:161
QList< int > myUSelNumbers
Definition: GLViewer_BaseObjects.h:197
QList< int > getSelectedElements()
Returns numbers of selected lines.
Definition: GLViewer_BaseObjects.h:185
GLint myNumber
Definition: GLViewer_BaseObjects.h:190
GLboolean isClosed() const
Checks closed status of polyline.
Definition: GLViewer_BaseObjects.h:173
GLboolean myHighSelAll
Definition: GLViewer_BaseObjects.h:192
GLfloat * getYCoord() const
Returns y coords.
Definition: GLViewer_BaseObjects.h:163
QList< int > myUHNumbers
Definition: GLViewer_BaseObjects.h:195
GLfloat * myYCoord
Definition: GLViewer_BaseObjects.h:189
GLfloat * myXCoord
Definition: GLViewer_BaseObjects.h:188
QList< int > myPrevHNumbers
Definition: GLViewer_BaseObjects.h:199
GLboolean myHighFlag
Definition: GLViewer_BaseObjects.h:202
QList< int > myCurSelNumbers
Definition: GLViewer_BaseObjects.h:198
GLboolean myIsClosed
Definition: GLViewer_BaseObjects.h:191
void setClosed(GLboolean closed)
On/off closed status of polyline.
Definition: GLViewer_BaseObjects.h:171
TColStd_SequenceOfInteger mySelectedIndexes
Definition: GLViewer_BaseObjects.h:200
QList< int > myHNumbers
Definition: GLViewer_BaseObjects.h:194
GLboolean isHighSelAll() const
Checks highlight as whole object status.
Definition: GLViewer_BaseObjects.h:178
GLint getNumber() const
Returns number of points.
Definition: GLViewer_BaseObjects.h:168
Definition: GLViewer_Geom.h:69
Definition: GLViewer_BaseObjects.h:210
int getHeight()
Definition: GLViewer_BaseObjects.h:242
int myWidth
Definition: GLViewer_BaseObjects.h:248
int myHeight
Definition: GLViewer_BaseObjects.h:249
void setWidth(int w)
Definition: GLViewer_BaseObjects.h:243
int getWidth()
Definition: GLViewer_BaseObjects.h:241
void setHeight(int h)
Definition: GLViewer_BaseObjects.h:244
bool myHighFlag
Definition: GLViewer_BaseObjects.h:247
Quantity_Color color(const QColor &)
Convert QColor object to Quantity_Color object.
Definition: OCCViewer.cxx:28