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.
AppFlow/FITK_Interface/FITKInterfaceGeometry/FITKAbsGeoModelOperImprintS...

156 lines
4.3 KiB
C

/*****************************************************************//**
* @file FITKAbsGeoModelOperImprintSolid.h
* @brief
*
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-05
*********************************************************************/
#ifndef FITKABSGEOMODELOPERIMPRINTSOLID_H
#define FITKABSGEOMODELOPERIMPRINTSOLID_H
#include "FITKInterfaceGeometryAPI.h"
#include "FITKAbsGeoCommand.h"
namespace Interface
{
class FITKAbsGeoShapeAgent;
/**
* @brief
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-05
*/
class FITKInterfaceGeometryAPI FITKAbsGeoModelOperImprintSolid : public FITKAbsGeoCommand
{
public:
/**
* @brief
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-05
*/
enum GeoSolidOperType
{
GBTNone,
GBTImprintSolid, ///压印体
};
public:
FITKAbsGeoModelOperImprintSolid() = default;
virtual ~FITKAbsGeoModelOperImprintSolid() override = default;
/**
* @brief
* @param geoCommandID
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-04
*/
FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override;
/**
* @brief
* @param geoCommandIDID
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-05
*/
void add(VirtualShape* geoCommandID);
/**
* @brief
* @param geoCommandIDs
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-05
*/
void add(QList<VirtualShape*> geoCommandIDs);
/**
* @brief
* @param geoCommand
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-05
*/
void remove(int index);
/**
* @brief
* @param geoCommand
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-08-26
*/
void clear();
/**
* @brief
* @param t
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-08-26
*/
void setType(GeoSolidOperType t);
/**
* @brief
* @return
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-08-26
*/
FITKAbsGeoModelOperImprintSolid::GeoSolidOperType getType();
/**
* @brief
* @param geoCommand
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-08-19
*/
QList<VirtualShape*> getVShapes();
/**
* @brief
* @return
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-05
*/
QList<int> getModelOperFacesID();
/**
* @brief
* @return
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-08-23
*/
void setTolerance(double tolerance);
/**
* @brief
* @return
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-08-23
*/
double getTolerance();
protected:
/**
* @brief
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-05
*/
GeoSolidOperType _faceOperType{ GBTNone };
/**
* @brief
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-05
*/
QList<VirtualShape*> m_tempVShapes{};
/**
* @brief
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-08-23
*/
double _tolerance = 1e-2;
};
}
#endif // !FITKAbsGeoModelOperImprintSolid_H