Include :

- aggiunta funzione per il calcolo della curvatura in un vertice per una superficie TriMesh.
This commit is contained in:
Riccardo Elitropi
2025-11-04 15:56:56 +01:00
parent 658a6a319b
commit 0fa10b233f
4 changed files with 14 additions and 1 deletions
+4
View File
@@ -113,6 +113,10 @@ class __declspec( novtable) ISurfTriMesh : public ISurf
virtual bool GetEdge( int nInd, int& nV1, int& nV2, int& nFl, int& nFr, double& dAng) const = 0 ;
virtual bool GetEdge( int nInd, Point3d& ptP1, Point3d& ptP2, double& dAng) const = 0 ;
virtual bool GetEdges( ICURVEPOVECTOR& vpCurve) const = 0 ;
virtual bool GetCurvature( int nV,
double& dMinK, Vector3d& vtMinK, double& dMaxK, Vector3d& vtMaxK, bool& bPlanar, Vector3d& vtNorm,
double* dGaussK = nullptr, double* dMeanK = nullptr,
double* dMaxNormK = nullptr, double* dMinNormK = nullptr) const = 0 ;
virtual bool Cut( const Plane3d& plPlane, bool bSaveOnEq) = 0 ;
virtual bool GeneralizedCut( const ICurve& cvCurve, bool bSaveOnEq) = 0 ;
virtual bool Add( const ISurfTriMesh& Other) = 0 ;
+6
View File
@@ -154,6 +154,12 @@ enum VolZmapOffset { FILLET = 0 , // come in VolZmap
CHAMFER = 1, // come in VolZmap
EXTEND = 2 } ; // come in VolZmap
//----------------- Costanti Curvature per SurfTm ------------------------------
enum StmCurvature { STM_CURVATURE_STD = 0, // Curvatura minima e massima
STM_CURVATURE_GAUSS = 1, // Curvature Gaussiana
STM_CURVATURE_MEAN = 2, // Curvature Media
STM_CURVATURE_NORM = 3 } ; // Curvature Normale
//----------------- Costanti per sostituzione direttorio e nome progetto --------------------
const std::string SUB_PROJECT_DIR = "%PRJDIR%" ;
const std::string SUB_PROJECT_TITLE = "%PRJTITLE%" ;
+1
View File
@@ -838,6 +838,7 @@ EXE_EXPORT bool ExeSurfTmGetFacetOutlineInfo( int nId, int nFacet, int nRefId,
int& nStatus, BOOLVECTOR& vbOpen, INTVECTOR& vnAdj, DBLVECTOR& vdLen,
PNTVECTOR& vptStart, VCT3DVECTOR& vvtNorm, DBLVECTOR& vdElev) ;
EXE_EXPORT int ExeSurfTmGetEdges( int nId, int nDestGrpId, bool bSmoothAng, int* pnCount) ;
EXE_EXPORT bool ExeSurfTmGetCurvatures( int nId, int nV, int nType, double& dK1, Vector3d& vtK1, double& dK2, Vector3d& vtK2) ;
EXE_EXPORT bool ExeSurfBezierGetPoint( int nSurfId, double dU, double dV, int nRefId, Point3d& ptP) ;
EXE_EXPORT bool ExeSurfBezierGetPointD1( int nSurfId, double dU, double dV, int nUsd, int nVsd, int nRefId,
Point3d& ptP, Vector3d& vtDerU, Vector3d& vtDerV) ;
+3 -1
View File
@@ -16,6 +16,7 @@
#include <vector>
#include <list>
#include <utility>
#include <set>
#include <unordered_set>
//----------------------------------------------------------------------------
@@ -28,7 +29,8 @@ typedef std::list<bool> BOOLLIST ; // lista di bool
typedef std::vector<int> INTVECTOR ; // vettore di interi
typedef std::list<int> INT_LIST ; // lista di interi (con _ per non collidere con Win)
typedef std::vector<std::vector<int>> INTMATRIX ; // matrice di interi
typedef std::unordered_set<int> INTUNORDSET ; // unordered set di interi
typedef std::set<int> INTSET ; // set di interi
typedef std::unordered_set<int> INTUNORDSET ; // unordered set di interi
//----------------------------------------------------------------------------
// Raccolte di interi senza segno