COMPASSi/trunk/code/inc/DataManager/Logic/Logic.DataManagement/Interpreters/CurveInterpreter.h

63 lines
2.2 KiB
C
Raw Normal View History

2025-06-25 15:06:42 +08:00
#ifndef CURVE_INTERPRETER_H
#define CURVE_INTERPRETER_H
#include "ObjectInterpreter.h"
#include <vector>
#include <string>
#include <memory>
#include "CommonType.h"
class DATAMANAGER_DLL_API_EXPORTS CurveInterpreter : public ObjectInterpreter {
public:
CurveInterpreter();
std::vector<std::shared_ptr<IModel>> GenerateTempObj(std::vector<std::string> commandLines);
void ExecuteCommand(std::vector<std::string> &commandLines, Curve_M &curve, std::vector<Point3D_M>& pointList);
void LineDone(std::vector<std::string> &commandLines);
bool IsPositiveDouble(const std::string &str);
double GetCircleRadius(double B, double f);
double GetCircleH(double R, double w, double f);
double GetCircleAngle(double R, double w, double h);
double GetParabolaH(double B, double f, double w);
void SetKnotAXYZII(Curve_M &o, int index, double X, double Y, double Z);
void SetKnotAXYZ(Curve_M &o, int index, double X, double Y, double Z);
void SetKnotValue(const std::vector<std::string> &linePara1b, Curve_M &o, std::vector<Point3D_M>& pointList, double offset, const std::string &dir, int type);
void SetProjIKnotAXYZII(Curve_M &curve, int index, double X, double Y, double Z);
void SetProjIIKnotAXYZII(Curve_M &curve, int index, double X, double Y, double Z);
void SetProjIKnotAXYZ(Curve_M &curve, int index, double X, double Y, double Z);
void SetProjIIKnotAXYZ(Curve_M &curve, int index, double X, double Y, double Z);
void SetKnotAXYZII(Curve_M &curve, int index, const std::string &dir, double ang);
void SetProjIKnotAXYZII(Curve_M &curve, int index, const std::string &dir, double ang);
void SetProjIIKnotAXYZII(Curve_M &curve, int index, const std::string &dir, double ang);
void SetKnotAXYZ(Curve_M &curve, int m, const std::string &dir, double ang);
void SetProjIKnotAXYZ(Curve_M &curve, int m, const std::string &dir, double ang);
void SetProjIIKnotAXYZ(Curve_M &curve, int m, const std::string &dir, double ang);
void addPointIfNotExists(std::vector<Point3D_M> &points, const Point3D_M &p);
bool tempCmd;
std::vector<IModel*> tempObj;
std::vector<Point3D_M> pList;
std::string cmd;
};
#endif // CURVE_INTERPRETER_H