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.

76 lines
3.4 KiB
C

1 month ago
#pragma once
#include "dllExport.h"
#include <math.h>
#include "XJPoint3D.h"
/*************************************************************************
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD> VectorDot
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> a--------------------<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>ʸ<EFBFBD><EFBFBD>
b--------------------<EFBFBD>ڶ<EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ
*************************************************************************/
extern "C" XJ_ALGO_EXPORT double VectorDot(const Point3D &a, const Point3D &b);
/*************************************************************************
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD> VectorCross
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD> ʸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> a--------------------<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>ʸ<EFBFBD><EFBFBD>
b--------------------<EFBFBD>ڶ<EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><EFBFBD>
res------------------<EFBFBD><EFBFBD><EFBFBD>ؽ<EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><EFBFBD>
*************************************************************************/
extern "C" XJ_ALGO_EXPORT void VectorCross(const Point3D &a, const Point3D &b, Point3D &res);
/*************************************************************************
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD> Normalized
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD> ʸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> a--------------------<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> a--------------------<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ <EFBFBD><EFBFBD> bool-----------------<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>ɹ<EFBFBD>
*************************************************************************/
extern "C" XJ_ALGO_EXPORT bool Normalized(Point3D &a);
/***************************************************************************
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD> GetAngle
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD> <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD>ĽǶ<EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> V1-------------------<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>ʸ<EFBFBD><EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> V2-------------------<EFBFBD>ڶ<EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ <EFBFBD><EFBFBD> double---------------<EFBFBD><EFBFBD>ʸ<EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD>ֵ
****************************************************************************/
extern "C" XJ_ALGO_EXPORT double GetAngle(const Point3D V1,const Point3D V2);
/***************************************************************************
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD> GetAngleLineWithPlane
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD>ĽǶ<EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> lineDir-------------------ֱ<EFBFBD>߷<EFBFBD><EFBFBD><EFBFBD>
linrBace------------------ֱ<EFBFBD>߻<EFBFBD><EFBFBD><EFBFBD>
planeDir------------------ƽ<EFBFBD><EFBFBD><EFBFBD>
planeBace-----------------ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> resultAngle----------------<EFBFBD>нǣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ <EFBFBD><EFBFBD> int------------------------<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
****************************************************************************/
extern "C" XJ_ALGO_EXPORT int GetAngleLineWithPlane(Point3D lineDir,Point3D linrBace,Point3D planeDir, Point3D planeBace, double& resultAngle);
/***************************************************************************
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD> GetAnglePlaneWithPlane
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD>ĽǶ<EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> planeDir1-------------------ֱ<EFBFBD>߷<EFBFBD><EFBFBD><EFBFBD>
planeBace1------------------ֱ<EFBFBD>߻<EFBFBD><EFBFBD><EFBFBD>
planeDir2------------------ƽ<EFBFBD><EFBFBD><EFBFBD>
planeBace2-----------------ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> resultAngle----------------<EFBFBD>нǣ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ <EFBFBD><EFBFBD> int------------------------<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʾ<EFBFBD>ɹ<EFBFBD>
****************************************************************************/
extern "C" XJ_ALGO_EXPORT int GetAnglePlaneWithPlane(Point3D planeDir1,Point3D planeBace1,Point3D planeDir2, Point3D planeBace2, double& resultAngle);
/***************************************************************************
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD> TranslatePtByDir
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*point----------------<EFBFBD><EFBFBD> I/O
*dir------------------<EFBFBD><EFBFBD><EFBFBD><EFBFBD> I
*distance-------------<EFBFBD><EFBFBD><EFBFBD><EFBFBD> I
****************************************************************************/
extern "C" XJ_ALGO_EXPORT void TranslatePtByDir(Point3D& point, Point3D& dir, float distance);
extern "C" XJ_ALGO_EXPORT int CalcTriNormal( Point3D& p0, Point3D& p1, Point3D& p2, Point3D &po);