📄 rs_atomicentity.h
字号:
/****************************************************************************** $Id: rs_atomicentity.h 1937 2004-12-09 01:11:15Z andrew $**** Copyright (C) 2001-2003 RibbonSoft. All rights reserved.**** This file is part of the qcadlib Library project.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** Licensees holding valid qcadlib Professional Edition licenses may use ** this file in accordance with the qcadlib Commercial License** Agreement provided with the Software.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.ribbonsoft.com for further details.**** Contact info@ribbonsoft.com if any conditions of this licensing are** not clear to you.************************************************************************/#ifndef RS_ATOMICENTITY_H#define RS_ATOMICENTITY_H#include "rs_entity.h"/** * Class representing a tree of entities. * Typical entity containers are graphics, polylines, groups, texts, ...) * * @author Andrew Mustun */class RS_AtomicEntity : public RS_Entity {public: /** * Construtor. */ RS_AtomicEntity(RS_EntityContainer* parent=NULL) : RS_Entity(parent) {} /** * Destrutor. */ virtual ~RS_AtomicEntity() {} /** * @return false because entities made from subclasses are * atomic entities. */ virtual bool isContainer() const { return false; } /** * @return true because entities made from subclasses are * atomic entities. */ virtual bool isAtomic() const { return true; } /** * @return Always 1 for atomic entities. */ virtual unsigned long int count() { return 1; } /** * @return Always 1 for atomic entities. */ virtual unsigned long int countDeep() { return 1; } /** * Implementation must return the endpoint of the entity or * an invalid vector if the entity has no endpoint. */ virtual RS_Vector getEndpoint() const { return RS_Vector(false); } /** * Implementation must return the startpoint of the entity or * an invalid vector if the entity has no startpoint. */ virtual RS_Vector getStartpoint() const { return RS_Vector(false); } /** * Implementation must return the angle in which direction the entity starts. */ virtual double getDirection1() const { return 0.0; } /** * Implementation must return the angle in which direction the entity starts the opposite way. */ virtual double getDirection2() const { return 0.0; } /** * (De-)selects startpoint. */ virtual void setStartpointSelected(bool select) { if (select) { setFlag(RS2::FlagSelected1); } else { delFlag(RS2::FlagSelected1); } } /** * (De-)selects endpoint. */ virtual void setEndpointSelected(bool select) { if (select) { setFlag(RS2::FlagSelected2); } else { delFlag(RS2::FlagSelected2); } } /** * @return True if the entities startpoint is selected. */ bool isStartpointSelected() const { return getFlag(RS2::FlagSelected1); } /** * @return True if the entities endpoint is selected. */ bool isEndpointSelected() const { return getFlag(RS2::FlagSelected2); } /** * Implementation must move the startpoint of the entity to * the given position. */ virtual void moveStartpoint(const RS_Vector& /*pos*/) {} /** * Implementation must move the endpoint of the entity to * the given position. */ virtual void moveEndpoint(const RS_Vector& /*pos*/) {} /** * Implementation must trim the startpoint of the entity to * the given position. */ virtual void trimStartpoint(const RS_Vector& pos) { moveStartpoint(pos); } /** * Implementation must trim the endpoint of the entity to * the given position. */ virtual void trimEndpoint(const RS_Vector& pos) { moveEndpoint(pos); } /** * Implementation must return which ending of the entity will * be trimmed if 'coord' is the coordinate chosen to indicate the * trim entity and 'trimPoint' is the point to which the entity will * be trimmed. */ virtual RS2::Ending getTrimPoint(const RS_Vector& /*coord*/, const RS_Vector& /*trimPoint*/) { return RS2::EndingNone; } virtual void reverse() { } virtual void moveSelectedRef(const RS_Vector& ref, const RS_Vector& offset) { if (isSelected()) { moveRef(ref, offset); } }};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -