⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 curveview.h

📁 学习 open inventor 的例子
💻 H
字号:
#ifndef CURVEVIEW_H#define CURVEVIEW_H/**************************************************************************\ * *  This file is part of the Coin 3D visualization library. *  Copyright (C) 1998-2003 by Systems in Motion.  All rights reserved. * *  This library is free software; you can redistribute it and/or *  modify it under the terms of the GNU General Public License *  ("GPL") version 2 as published by the Free Software Foundation. *  See the file LICENSE.GPL at the root directory of this source *  distribution for additional information about the GNU GPL. * *  For using Coin with software that can not be combined with the GNU *  GPL, and for taking advantage of the additional benefits of our *  support services, please contact Systems in Motion about acquiring *  a Coin Professional Edition License. * *  See <URL:http://www.coin3d.org> for more information. * *  Systems in Motion, Teknobyen, Abels Gate 5, 7030 Trondheim, NORWAY. *  <URL:http://www.sim.no>. *\**************************************************************************/#include "../qtsupport.h"#include <qimage.h>#include <Inventor/SbBasic.h>// FIXME: remove these dependencies. 20031020 mortene.#include "SoQtColorTableEditor.h"#include "ColorCurve.h"class QCanvasItemList;class QMouseEvent;class QCanvasItem;// *************************************************************************class CurveView : public QCanvasView {  Q_OBJECTpublic:  CurveView(int numcolors,            SoQtColorTableEditor::Mode mode,             QCanvas * canvas,             QWidget * parent = 0,             const char * name = 0,             Qt::WFlags flags = 0);    ~CurveView();  enum CurveType { SMOOTH, FREE };    void setMode(SoQtColorTableEditor::Mode mode);  void setColors(uint8_t * colors, int num);  void getColors(uint8_t * colors, int num) const;  void setCallBack(ColorCurve::ChangeCB * cb, void * userData);  QPixmap getPixmap(int width, int height) const;  QPixmap getGradient(int width, int height) const;public slots:  void changeColorMode(int mode);  void changeCurveMode(int mode);  void setConstantValue(int value);  void resetActive(void);signals:  void curveChanged(void);  protected:  virtual void contentsMousePressEvent(QMouseEvent * e);  virtual void contentsMouseReleaseEvent(QMouseEvent * e);  virtual void contentsMouseMoveEvent(QMouseEvent * e);  virtual void drawContents(QPainter * p, int cx, int cy, int cw, int ch);private:  virtual void drawContents(QPainter * p);  void interpolateFromColors();  void initColorCurves(void);  void initCanvasCurve(void);  void hideUnselected(void);  void updateCurve(void);  void initGrid(void);    QPixmap makePixmap(int w, int h, const uint8_t * r, const uint8_t * g, const uint8_t * b) const;  QCanvasRectangle * newControlPoint(int x, int y);  QCanvasItemList newCanvasCtrlPtList(void);  QCanvasItem * smallestItem(QCanvasItemList * list);  SbBool mousepressed;  QPoint movingstart;  QPoint lastpos;  QCanvas * canvas;  QCanvasItem * movingitem;  CurveType curvemode;  SoQtColorTableEditor::Mode colormode;  int colorindex;  const int ptsize;  int size;  int maxval;    QValueVector<QCanvasItemList> canvasctrlpts;  QValueVector<ColorCurve*> colorcurves;      QCanvasItemList curvesegments;  QCanvasItemList grid;};// *************************************************************************#endif // CURVEVIEW_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -