Compare commits

...

16 Commits

Author SHA1 Message Date
LorenzoM d73c231820 Virtual milling additivo 2021-10-25 09:27:11 +02:00
LorenzoM d769bc57df Gestione multi-utensile virtual milling 2021-10-20 10:24:44 +02:00
LorenzoM df5d74161f Merge remote-tracking branch 'origin/HEAD' into LorenzoM 2021-10-18 10:48:23 +02:00
LorenzoM 8a031e252f Merge commit 'd1f85278b680ee7d5ef8aca241ab1fa317e071be' into LorenzoM 2021-09-01 17:52:10 +02:00
LorenzoM bb0e351cc4 Merge commit '0d0fccf1d461d6cdbbde7ce6df71066f76e61573' into LorenzoM 2021-08-03 16:32:47 +02:00
LorenzoM d954d264e7 Merge commit '7c182e9d3368160f41d3ded6505c9ed967912ab4' into LorenzoM 2021-07-23 11:09:16 +02:00
LorenzoM de55faf6e4 Aggiunta seconda temp prop 2021-07-21 12:53:58 +02:00
LorenzoM 8d7401f07f Milgiorie varie 2021-07-05 19:00:02 +02:00
LorenzoM 1e988cf77c Merge commit '10309c05287be601201832247f105c6cd4cacc45' into LorenzoM 2021-06-30 11:19:29 +02:00
LorenzoM c2e0d3ce14 Spostati prototipi di funz in EGkPolyLine.h 2021-06-30 11:17:00 +02:00
LorenzoM bd2cb827e9 Merge remote-tracking branch 'origin/HEAD' into LorenzoM 2021-06-23 16:30:35 +02:00
LorenzoM 53e5fcc269 Spostate in PolyLine funzioni ad esse inerenti 2021-06-23 16:29:58 +02:00
LorenzoM 8ad32287b4 Merge remote-tracking branch 'origin/master' into LorenzoM 2021-05-14 17:49:06 +02:00
LorenzoM 300665ea03 Aggiunta creazione SurfFlatRegion Da PolyLineVector 2021-05-14 10:16:37 +02:00
LorenzoM 621221b24e Correzione casi intersezione triangolo triangolo 2021-05-14 10:15:50 +02:00
LorenzoM 6b8f97230d Fix path 2021-05-14 10:14:38 +02:00
10 changed files with 46 additions and 15 deletions
+1 -1
View File
@@ -12,7 +12,7 @@
#pragma once
#include "EgtDev/Include/EGkSurfTriMesh.h"
#include "/EgtDev/Include/EGkSurfTriMesh.h"
//----------------------- Macro per import/export ----------------------------
#undef EGK_EXPORT
+2 -2
View File
@@ -12,8 +12,8 @@
#pragma once
#include "EgtDev/Include/EGkFrame3d.h"
#include "EgtDev/Include/EGkSurfTriMesh.h"
#include "/EgtDev/Include/EGkFrame3d.h"
#include "/EgtDev/Include/EGkSurfTriMesh.h"
//----------------------- Macro per import/export ----------------------------
#undef EGK_EXPORT
+2 -2
View File
@@ -58,8 +58,8 @@ class __declspec( novtable) ICurveComposite : public ICurve
virtual bool IsAPoint( void) const = 0 ;
virtual bool IsALine( double dLinTol, Point3d& ptStart, Point3d& ptEnd) const = 0 ;
virtual bool IsACircle( double dLinTol, Point3d& ptCen, Vector3d& vtN, double& dRad, bool& bCCW) const = 0 ;
virtual bool SetCurveTempProp( int nCrv, int nProp, int nPropInd = 0) = 0 ;
virtual bool GetCurveTempProp( int nCrv, int& nProp, int nPropInd = 0) const = 0 ;
virtual bool SetCurveTempProp( int nCrv, int nProp, int nPropNum = 0) = 0 ;
virtual bool GetCurveTempProp( int nCrv, int& nProp, int nPropNum = 0) const = 0 ;
} ;
//-----------------------------------------------------------------------------
+2 -2
View File
@@ -54,8 +54,8 @@ class __declspec( novtable) IGeoObj
virtual void SetObjGraphics( IObjGraphics* pOGr) = 0 ;
virtual IObjGraphics* GetObjGraphics( void) = 0 ;
virtual const IObjGraphics* GetObjGraphics( void) const = 0 ;
virtual void SetTempProp( int nProp, int nPropInd = 0) = 0 ;
virtual int GetTempProp( int nPropInd = 0) const = 0 ;
virtual void SetTempProp( int nProp, int nPropNum = 0) = 0 ;
virtual int GetTempProp( int nPropNum = 0) const = 0 ;
} ;
//-----------------------------------------------------------------------------
+2 -2
View File
@@ -13,8 +13,8 @@
#pragma once
#include "EgtDev/Include/EGkBBox3d.h"
#include "EgtDev/Include/EgtNumCollection.h"
#include "/EgtDev/Include/EGkBBox3d.h"
#include "/EgtDev/Include/EgtNumCollection.h"
#include <unordered_map>
//----------------------- Macro per import/export ----------------------------
+2 -2
View File
@@ -13,8 +13,8 @@
#pragma once
#include "EgtDev/Include/EGkBBox3d.h"
#include "EgtDev/Include/EgtNumCollection.h"
#include "/EgtDev/Include/EGkBBox3d.h"
#include "/EgtDev/Include/EgtNumCollection.h"
#include <unordered_map>
//----------------------- Macro per import/export ----------------------------
+1 -1
View File
@@ -32,7 +32,7 @@ EGK_EXPORT int IntersTriaTria( const Triangle3d& trTria1, const Triangle3d& trTr
//-----------------------------------------------------------------------------
// Tipo di intersezione triangolo-triangolo
enum IntTriaTriaType { ITTT_NO = 0, // non c'è intersezione
enum IntTriaTriaType { ITTT_NO = 0, // non c' intersezione
ITTT_OVERLAPS = 1, // i triangoli si sovrappongono (i triangoli del poligono sono in vTria)
ITTT_VERT_VERT = 2, // intersezione coppia di vertici
ITTT_VERT_EDGE = 3, // vertice del primo su lato del secondo
+22
View File
@@ -99,6 +99,8 @@ class PolyLine
{ return GetPrevULine( nullptr, &ptIni, nullptr, &ptFin) ; }
EGK_EXPORT PNTULIST& GetUPointList( void)
{ return m_lUPoints ; }
EGK_EXPORT const PNTULIST& GetUPointList( void) const
{ return m_lUPoints ; }
EGK_EXPORT bool IsFlat( int& nRank, Point3d& ptCen, Vector3d& vtDir, double dToler = EPS_SMALL) const ;
EGK_EXPORT bool IsFlat( Plane3d& plPlane, double dToler = EPS_SMALL) const ;
EGK_EXPORT bool IsClosedAndFlat( Plane3d& plPlane, double& dArea, double dToler = EPS_SMALL) const ;
@@ -116,6 +118,13 @@ class PolyLine
EGK_EXPORT bool GetConvexHullXY( PNTVECTOR& vConvHull) const ;
EGK_EXPORT bool GetMinAreaRectangleXY( Point3d& ptCen, Vector3d& vtAx, double& dLen, double& dHeight) const ;
EGK_EXPORT bool Trim( const Plane3d& plPlane, bool bInVsOut = true) ;
EGK_EXPORT bool ChangePolyLineStart( const Point3d& ptNewStart, double dTol = EPS_SMALL) ;
// nSegNum 0-based
EGK_EXPORT bool PointPositionOnPolyLine( const Point3d& ptPoint, int& nSegNum, double& dParOnSeg, double dTol = EPS_SMALL) const ;
EGK_EXPORT bool IsPointInsidePolyLine( const Point3d& ptP) const ;
EGK_EXPORT bool DistPointPolyLine( const Point3d& ptP, double& dPointPolyLineDist) const ;
EGK_EXPORT bool SplitPolyLineAtPoint( const Point3d& ptPoint, PolyLine& Loop1, PolyLine& Loop2, double dTol = EPS_SMALL) const ;
EGK_EXPORT bool AddPolyLineToPolyLine( PolyLine& PolyToAdd, double dTol = EPS_SMALL) ;
private :
bool MyChangeStart( int nPos) ;
@@ -132,3 +141,16 @@ class PolyLine
// Raccolte di PolyLine
typedef std::vector<PolyLine> POLYLINEVECTOR ; // vettore di PolyLine
typedef std::list<PolyLine> POLYLINELIST ; // lista di PolyLine
//----------------------------------------------------------------------------
struct PositionOnPolyLine {
int nIndexInVec ;
int nSegNum ;
double dParOnSeg ;
PositionOnPolyLine( int nIndex, int nSeg, double dPar) {
nIndexInVec = nIndex ;
nSegNum = nSeg ;
dParOnSeg = dPar ;
}
} ;
+6 -3
View File
@@ -29,6 +29,9 @@ class Triangle3d ;
EGK_EXPORT ISurfFlatRegion* GetSurfFlatRegionRectangle( double dWidth, double dLen) ;
EGK_EXPORT ISurfFlatRegion* GetSurfFlatRegionStadium( double dWidth, double dLen) ;
EGK_EXPORT ISurfFlatRegion* GetSurfFlatRegionDisk( double dRadius) ;
EGK_EXPORT ISurfFlatRegion* GetSurfFlatRegionFromPolyLine( const PolyLine& ContourPolyLine) ;
EGK_EXPORT ISurfFlatRegion* GetSurfFlatRegionFromPolyLineVector( const POLYLINEVECTOR& vContoursPolyLineVec) ;
// la curva ingrassata non deve autointersecarsi
EGK_EXPORT ISurfFlatRegion* GetSurfFlatRegionFromFatCurve( ICurve* pCrv, double dRadius,
bool bSquareEnds, bool bSquareMids) ;
// NB : la curva ingrassata non deve autointersecarsi
@@ -56,9 +59,9 @@ class SurfFlatRegionByContours
typedef std::vector<INDAREA> INDAREAVECTOR ; // vettore di coppie indice, area
private :
bool m_bAllowedMore ; // ammesse più regioni
bool m_bAllowedMultiChunk ; // ammesse regioni con più componenti disgiunti (chunk)
bool m_bAllowedMore ; // ammesse pi regioni
bool m_bAllowedMultiChunk ; // ammesse regioni con pi componenti disgiunti (chunk)
bool m_bFirst ; // flag per prima superficie non ancora richiesta
ICURVEPVECTOR m_vpCrv ; // vettore di puntatori a curve, l'oggetto ne è possessore
ICURVEPVECTOR m_vpCrv ; // vettore di puntatori a curve, l'oggetto ne possessore
INDAREAVECTOR m_vArea ; // vettore indice + area di ogni curva
} ;
+6
View File
@@ -55,6 +55,7 @@ class __declspec( novtable) IVolZmap : public IGeoObj
virtual bool Create( const Point3d& ptO, double dDimX, double dDimY, double dDimZ, double dPrec, bool bTriDex) = 0 ;
virtual bool CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double dPrec, bool bTriDex) = 0 ;
virtual bool CreateFromTriMesh( const ISurfTriMesh& Surf, double dPrec, bool bTriDex) = 0 ;
virtual bool CreateEmptyMap( const Point3d& ptO, double dLengthX, double dLengthY, double dLengthZ, double dStep, bool bTriDex) = 0 ;
virtual int GetBlockCount( void) const = 0 ;
virtual int GetBlockUpdatingCounter( int nBlock) const = 0 ;
virtual bool GetBlockTriangles( int nBlock, TRIA3DEXVECTOR& vTria) const = 0 ;
@@ -72,6 +73,11 @@ class __declspec( novtable) IVolZmap : public IGeoObj
virtual bool SetGenTool( const std::string& sToolName, const ICurveComposite* pToolOutline, int nFlag) = 0 ;
virtual bool SetMortiserTool( const std::string& sToolName, double dH, double dW, double dTh, double dRc, int nFlag) = 0 ;
virtual bool SetChiselTool( const std::string& sToolName, double dH, double dW, double dTh, int nFlag) = 0 ;
virtual bool SetCurrTool( int nCurrTool) = 0 ;
virtual int GetToolCount( void) const = 0 ;
virtual int GetCurrTool( void) const = 0 ;
virtual bool AddTool( void) = 0 ;
virtual bool ResetAllTools( void) = 0 ;
virtual bool ResetTool( void) = 0 ;
virtual const ICurveComposite& GetToolOutline( bool bApprox = false) const = 0 ;
virtual bool MillingStep( const Point3d& ptPs, const Vector3d& vtDs, const Point3d& ptPe, const Vector3d& vtDe) = 0 ;