joint.h
Go to the documentation of this file.
00001 #ifndef JOINT_H
00002 #define JOINT_H
00003 /****************************************************************************
00004 **
00005 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
00006 ** All rights reserved.
00007 ** Contact: Nokia Corporation (qt-info@nokia.com)
00008 **
00009 ** This file is part of the examples of the Qt Toolkit.
00010 **
00011 ** $QT_BEGIN_LICENSE:BSD$
00012 ** You may use this file under the terms of the BSD license as follows:
00013 **
00014 ** "Redistribution and use in source and binary forms, with or without
00015 ** modification, are permitted provided that the following conditions are
00016 ** met:
00017 **   * Redistributions of source code must retain the above copyright
00018 **     notice, this list of conditions and the following disclaimer.
00019 **   * Redistributions in binary form must reproduce the above copyright
00020 **     notice, this list of conditions and the following disclaimer in
00021 **     the documentation and/or other materials provided with the
00022 **     distribution.
00023 **   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
00024 **     the names of its contributors may be used to endorse or promote
00025 **     products derived from this software without specific prior written
00026 **     permission.
00027 **
00028 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00029 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00030 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
00031 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
00032 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
00033 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
00034 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
00035 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
00036 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00037 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00038 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
00039 ** $QT_END_LICENSE$
00040 **
00041 ****************************************************************************/
00042 
00043 #include <QGraphicsItem>
00044  #include <QList>
00045 
00046  class ArmWidget;
00047  class ArmRotationWidget;
00048  class QGraphicsSceneMouseEvent;
00049 
00050  class joint : public QGraphicsItem
00051  {
00052  public:
00053      joint(ArmWidget *graphWidget);
00054      joint(ArmRotationWidget *graphWidget);
00055 
00056      enum { Type = UserType + 1 };
00057      int type() const { return Type; }
00058 
00059      bool advance(); //update the position of the joint
00060 
00061      QRectF boundingRect() const;
00062      QPainterPath shape() const;
00063      void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
00064 
00065  protected:
00066      QVariant itemChange(GraphicsItemChange change, const QVariant &value);
00067 
00068      void mousePressEvent(QGraphicsSceneMouseEvent *event);
00069      void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
00070 
00071  private:
00072      QPointF newPos;
00073      ArmWidget *graph;
00074      ArmRotationWidget *graph_rotation;
00075  };
00076 
00077 #endif // JOINT_H


corobot_teleop
Author(s): Morgan Cormier/Gang Li/mcormier@coroware.com
autogenerated on Tue Jan 7 2014 11:39:41