93d6077de6
- aggiunto enum per trimming - aggiunto argomento a RegolarizeLocally
64 lines
3.9 KiB
C++
64 lines
3.9 KiB
C++
//----------------------------------------------------------------------------
|
|
// EgalTech 2025-2025
|
|
//----------------------------------------------------------------------------
|
|
// File : EgkTrimming.h Data : 15.09.25 Versione : 2.7j1
|
|
// Contenuto : Calcolo di una superficie di Bezier Ruled definita da un sottoinsieme
|
|
// di facce di una superficie TriMesh
|
|
//
|
|
//
|
|
//
|
|
// Modifiche : 15.09.25 RE Creazione modulo.
|
|
//
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
#include "EGkSelection.h"
|
|
#include "EGkCurveLine.h"
|
|
#include "/EgtDev/Include/EGkSurfBezier.h"
|
|
#include "/EgtDev/Include/EGkSurfTriMesh.h"
|
|
|
|
//----------------------- Macro per import/export ----------------------------
|
|
#undef EGK_EXPORT
|
|
#if defined( I_AM_EGK) // da definirsi solo nella DLL
|
|
#define EGK_EXPORT __declspec( dllexport)
|
|
#else
|
|
#define EGK_EXPORT __declspec( dllimport)
|
|
#endif
|
|
|
|
typedef std::vector<ISURFPOVECTOR> ISURFPOMATRIX ;
|
|
typedef std::vector<ICRVCOMPOPOVECTOR> ICRVCOMPOPOMATRIX ;
|
|
|
|
enum RegolarizeType { STD = 0, // standard, con modifiche dirette ai punti di controllo
|
|
RMF = 1}; // ricostruendo le curve usando il rotation minimizing frame
|
|
|
|
//-----------------------------------------------------------------------------
|
|
EGK_EXPORT bool GetTrimmingStmAdjTria( const ISurfTriMesh* pStm, int nStartTria, const Point3d& ptStartTria,
|
|
double dAngTol, double dSize, double dSizeTol, ISurfTriMesh* pStmAdjTria) ;
|
|
EGK_EXPORT bool GetTrimmingAdjSurfs( const CISURFPVECTOR& vSurf, const CISURFPVECTOR& vOtherSurf, double dLinTol,
|
|
double dAngTol, double dFaceAngTol,
|
|
INTVECTOR& vIndOtherSurf) ;
|
|
EGK_EXPORT bool GetTrimmingRawEdges( const CISURFPVECTOR& vSurf, const SELVECTOR& vSurfFace,
|
|
double dLinTol, double dAngTol,
|
|
ICRVCOMPOPOVECTOR& vBezierEdges) ;
|
|
EGK_EXPORT bool GetTrimmingBezierEdges( ICRVCOMPOPOVECTOR& vCompoRawEdges, double dLinTol, double dAngTol,
|
|
ICRVCOMPOPOVECTOR& vCompoEdges) ;
|
|
EGK_EXPORT bool GetTrimmingFinalBorders( ICRVCOMPOPOVECTOR& vCompoBezierEdges, double dLinTol,
|
|
double dAngTol, BIPNTVECTOR& vBreakingPts, double dThick, double dThickTol) ;
|
|
EGK_EXPORT bool GetTrimmingFinalBorders( CISURFPVECTOR& vpSurf, const SELVECTOR& vSurfFaces, double dSurfLinTol,
|
|
double dSurfAngTol, double dLinTol, double dAngTol, double dThick,
|
|
ICRVCOMPOPOVECTOR& vCompoBezierEdges) ;
|
|
EGK_EXPORT ISurfBezier* GetTrimmingRuledBezier( const CISURFPVECTOR& vSurf, const ICurve* pCrvEdge1, const ICurve* pCrvEdge2,
|
|
double dLinTol, const BIPNTVECTOR& vSyncPoints) ;
|
|
EGK_EXPORT bool GetTrimmingSurfBzSyncPoints( const ICurve* pCrvEdge1, const ICurve* pCrvEdge2,
|
|
double dLinTol, BIPNTVECTOR& vSyncPoints) ;
|
|
EGK_EXPORT bool GetTrimmingSyncInterpolation( const ICurve* pCrvEdge1, const ICurve* pCrvEdge2,
|
|
const ICurve* pSync1, const ICurve* pSync2, double dLinTol,
|
|
double dAngTol, BIPNTVECTOR& vSyncPoints) ;
|
|
EGK_EXPORT bool GetTrimmingHoleBorders( const CISURFPVECTOR& vpSurf, const Point3d& ptRef, double dSurfLinTol,
|
|
double dSurfAngTol, double dEdgeLinTol, double dEdgeAngTol,
|
|
double dEdgeThick, ICRVCOMPOPOVECTOR& vHoleBorders) ;
|
|
EGK_EXPORT ISurfBezier* RegolarizeBordersLocally( const ISurfBezier* pSurfBz, const BIPOINT& bpIsoStart,
|
|
const BIPOINT& bpIsoEnd, double dTol, int nType = RegolarizeType::STD) ;
|