这周主要是于核心讨论并完善组件的共用框架
组件在逻辑上呈现树形结构,实际则是顺序的结构。针对单个组件与多组件的操作分别创建两个类
Component与Canvas类
确定大致架构以后,逐步完善内部实现。
Component类的实现
public:
void changeElementAttributes(std::string attributesName,std::string attributesValue);
/*
* 改变组价的某些属性
* attributesName:属性名称
* attributesValue:属性更改过的值
*/
void deleteCorePoint(int coreId);
/*
* 删去关键点
* coreId:关键点的标号
*/
void moveCorePoint(int coreId,double dx,double dy);
/*
* 移动组件的单个关键点
* coreId:关键点标号
* dx,dy:关键点的x,y的增量
*
*/
void addCorePoint(double coreX,double coreY,int PId);
/*
* 在关键点PID后增加关键点。
* coreX,coreY:新关键点的坐标
*/
void getCorePoint(int coreId);
/*
* 获取关键点
* coreId:关键点标号
*/
void setCorePoint(int coreId,double newX,double newY);
/*
* 设置关键点
* 将关键点coreId置为(newX,newY)
*
*/
void moveElement(double dx,double dy);
/*
* 移动组件
* dx,dy:组件坐标的增量
*/
void deleteElement();
/*
* 删除组件
* 将isValid置为0
* 清空其child数组
* 若存在父节点,则将其从父节点的子节点中移除
*/
virtual void scaleElement(int coreId,double dx,double dy);
/*
* 改变组件大小
* coreId:关键点标号
* dx,dy:关键点的下标增量
*/
virtual void rotateElement(double radian);
/*
* 旋转组件
* redian:旋转的角度
*/
核心生成静态库lib以后,后端连接lib,并且开始熟悉核心的使用。