You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kev/Drawer/Module/GeoSigmaDraw/ActionReverseZItem.h

83 lines
1.2 KiB
C++

#pragma once
#include "ActionItem.h"
/**
* 线和网格曲线z值反转的撤消和恢复
*/
class CActionReverseZItem :
public CActionItem
{
public:
CActionReverseZItem();
/**
* 构造函数
*
* \param ppDoc
* \param actionType
* \param elements 要反转z值的元素
*/
CActionReverseZItem(CSigmaDoc* ppDoc, UINT actionType, const CPositionList &elements);
std::string GetActionName() const override
{
return typeid(*this).name();
}
void Undo() override;
void Redo() override;
void Do() override;
void accept(CActionVisitor& visitor) override;
friend class BlobSerializer;
private:
void Reverse();
/**
* 反转网格 z 值
*
* \param pMesh
*/
void ReverseMesh(CMesh* pMesh);
/**
* 更新网格,把更新单独拎出来是因为得等其它数据都反转完了,它们才能正常工作
*
* \param pMesh
*/
void UpdateMesh(CMesh* pMesh);
/**
* 反转颜色标尺
*
* \param pMesh
*/
void ReverseColorRuler(CMesh* pMesh);
/**
* 反转颜色模板
*
* \param pMesh
*/
void ReverseColorBase(CMesh* pMesh);
/**
* 反转网格节点 z 值
*
* \param pMesh
*/
void ReverseDfg(CMesh* pMesh);
/**
* 反转曲线 z 值
*
* \param pCurve
*/
void ReverseCurve(CCurveEx *pCurve);
CPositionList m_elements;
};