|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @file FITKAssInstanceTR.h
|
|
|
|
|
* @brief
|
|
|
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
|
|
|
* @date 2024-03-29
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
#ifndef _FITKINSTANCEASS_TR_H__
|
|
|
|
|
#define _FITKINSTANCEASS_TR_H__
|
|
|
|
|
|
|
|
|
|
#include "FITKAbstractAssInstance.h"
|
|
|
|
|
|
|
|
|
|
namespace Interface
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* @brief 装配实例
|
|
|
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
|
|
|
* @date 2024-03-22
|
|
|
|
|
*/
|
|
|
|
|
class FITKInerfaceModelAPI FITKAssemblyInstanceTR : public FITKAbstractAssInstance
|
|
|
|
|
{
|
|
|
|
|
FITKCLASS(Interface, FITKAssemblyInstanceTR);
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
explicit FITKAssemblyInstanceTR() = default;
|
|
|
|
|
virtual ~FITKAssemblyInstanceTR() = default;
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置平移参数
|
|
|
|
|
* @param[i] x 平移参数x
|
|
|
|
|
* @param[i] y 平移参数y
|
|
|
|
|
* @param[i] z 平移参数z
|
|
|
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
|
|
|
* @date 2024-03-25
|
|
|
|
|
*/
|
|
|
|
|
void setTransform(const double x, const double y, const double z);
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置旋转轴
|
|
|
|
|
* @param[i] p1 旋转轴第一点
|
|
|
|
|
* @param[i] p2 旋转轴第二点
|
|
|
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
|
|
|
* @date 2024-03-25
|
|
|
|
|
*/
|
|
|
|
|
void setRotateAxis(double* p1, double* p2);
|
|
|
|
|
/**
|
|
|
|
|
* @brief 设置旋转角度 角度制
|
|
|
|
|
* @param[i] a 转动角度 角度制
|
|
|
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
|
|
|
* @date 2024-03-25
|
|
|
|
|
*/
|
|
|
|
|
void setAngle(double a);
|
|
|
|
|
/**
|
|
|
|
|
* @brief 获取平移参数
|
|
|
|
|
* @param[i] transform 平移参数
|
|
|
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
|
|
|
* @date 2024-03-25
|
|
|
|
|
*/
|
|
|
|
|
void getTransfom(double* transform) const;
|
|
|
|
|
/**
|
|
|
|
|
* @brief 获取旋转轴线
|
|
|
|
|
* @param[o] p1 旋转轴第一点
|
|
|
|
|
* @param[o] p2 旋转轴第二点
|
|
|
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
|
|
|
* @date 2024-03-25
|
|
|
|
|
*/
|
|
|
|
|
void getRotateAxis(double* p1, double* p2) const;
|
|
|
|
|
/**
|
|
|
|
|
* @brief 获取旋转角度
|
|
|
|
|
* @return double
|
|
|
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
|
|
|
* @date 2024-03-25
|
|
|
|
|
*/
|
|
|
|
|
double getAngle() const;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 获取点坐标
|
|
|
|
|
* @param[i] pointID 点ID
|
|
|
|
|
* @param[o] coor 节点坐标
|
|
|
|
|
* @param[i] modelIndex 模型索引,用于复合模型(一个模型包含多个子模型)
|
|
|
|
|
* @return bool 是否获取成功
|
|
|
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
|
|
|
* @date 2024-04-19
|
|
|
|
|
*/
|
|
|
|
|
virtual bool getPointCoor(int pointID, double* coor, int modelIndex = 0) override;
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
/**
|
|
|
|
|
* @brief 平移
|
|
|
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
|
|
|
* @date 2024-03-25
|
|
|
|
|
*/
|
|
|
|
|
double _trans[3] = { 0.0, 0.0, 0.0 };
|
|
|
|
|
/**
|
|
|
|
|
* @brief 旋转轴第一点
|
|
|
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
|
|
|
* @date 2024-03-25
|
|
|
|
|
*/
|
|
|
|
|
double _rotate1[3] = { 0.0, 0.0, 0.0 };
|
|
|
|
|
/**
|
|
|
|
|
* @brief 旋转轴第二点
|
|
|
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
|
|
|
* @date 2024-03-25
|
|
|
|
|
*/
|
|
|
|
|
double _rotate2[3] = { 0.0, 0.0, 0.0 };
|
|
|
|
|
/**
|
|
|
|
|
* @brief 旋转角度
|
|
|
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
|
|
|
* @date 2024-03-25
|
|
|
|
|
*/
|
|
|
|
|
double _angle = 0.0;
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|