- correzione telaio triangolare
- gestione delle giunzioni come vettore - modificato il calcolo delle sottaree generate da uno split - aggiunta info lato di riferimento per lavorazione dowels - correzioni varie per telai non rettangolari.
This commit is contained in:
+268
-302
@@ -63,8 +63,7 @@ end
|
||||
------------------------------------- TELAIO -------------------------------------
|
||||
----------------------------------------------------------------------------------
|
||||
-- funzione che crea il buco per la finestra a partire da curve generiche
|
||||
-- TO DO rendere i joints un vettore con un numero variabile a seconda del tipo di finestra
|
||||
function WinCreate.CreateGenFrame( vFrameCrvs, nJointBL, nJointBR, nJointTL, nJointTR)
|
||||
function WinCreate.CreateGenFrame( vFrameCrvs, vJoints)
|
||||
-- creo gruppo per telaio
|
||||
local nFrameAreaId = EgtGroup( GDB_ID.ROOT)
|
||||
EgtSetName( nFrameAreaId, WIN_AREA .. '(' .. WIN_FRAME .. ')')
|
||||
@@ -77,10 +76,7 @@ function WinCreate.CreateGenFrame( vFrameCrvs, nJointBL, nJointBR, nJointTL, nJo
|
||||
EgtRelocateGlob( vFrameCrvs[i], nAreaOutlineLayerId)
|
||||
end
|
||||
-- imposto tipo giunzioni
|
||||
EgtSetInfo( nAreaOutlineLayerId, WIN_JOINT_BL, nJointBL)
|
||||
EgtSetInfo( nAreaOutlineLayerId, WIN_JOINT_BR, nJointBR)
|
||||
EgtSetInfo( nAreaOutlineLayerId, WIN_JOINT_TL, nJointTL)
|
||||
EgtSetInfo( nAreaOutlineLayerId, WIN_JOINT_TR, nJointTR)
|
||||
EgtSetInfo( nAreaOutlineLayerId, WIN_JOINTS, vJoints)
|
||||
|
||||
return nFrameAreaId
|
||||
end
|
||||
@@ -88,104 +84,116 @@ end
|
||||
----------------------------------------------------------------------------------
|
||||
-- funzione che crea le curve che definiscono il telaio in base alla geometria richiesta
|
||||
local function CreateFrameCurves( nLayerId, nType, dWidth, dHeight, dVal)
|
||||
|
||||
|
||||
-- rettangolo
|
||||
if nType == WIN_FRAME_TYPE.RECT then
|
||||
-- telaio rettangolare
|
||||
local nFrameBottomId = EgtLine( nLayerId, Point3d( 0, 0, 0), Point3d( dWidth, 0, 0))
|
||||
EgtSetName( nFrameBottomId, WIN_BOTTOM)
|
||||
local nFrameRightId = EgtLine( nLayerId, Point3d( dWidth, 0, 0), Point3d( dWidth, dHeight, 0))
|
||||
EgtSetName( nFrameRightId, WIN_RIGHT)
|
||||
local nFrameTopId = EgtLine( nLayerId, Point3d( dWidth, dHeight, 0), Point3d( 0, dHeight, 0))
|
||||
EgtSetName( nFrameTopId, WIN_TOP)
|
||||
local nFrameLeftId = EgtLine( nLayerId, Point3d( 0, dHeight, 0), Point3d( 0, 0, 0))
|
||||
EgtSetName( nFrameLeftId, WIN_LEFT)
|
||||
local nBottomId = EgtLine( nLayerId, ORIG(), Point3d( dWidth, 0, 0))
|
||||
EgtSetName( nBottomId, WIN_BOTTOM)
|
||||
local nRightId = EgtLine( nLayerId, Point3d( dWidth, 0, 0), Point3d( dWidth, dHeight, 0))
|
||||
EgtSetName( nRightId, WIN_RIGHT)
|
||||
local nTopId = EgtLine( nLayerId, Point3d( dWidth, dHeight, 0), Point3d( 0, dHeight, 0))
|
||||
EgtSetName( nTopId, WIN_TOP)
|
||||
local nLeftId = EgtLine( nLayerId, Point3d( 0, dHeight, 0), ORIG())
|
||||
EgtSetName( nLeftId, WIN_LEFT)
|
||||
|
||||
-- lato top inclinato
|
||||
elseif nType == WIN_FRAME_TYPE.CHAMFER_SIDE then
|
||||
-- dHeight è l'altezza del lato sx, dVal è l'altezza del lato dx
|
||||
local nFrameBottomId = EgtLine( nLayerId, Point3d( 0, 0, 0), Point3d( dWidth, 0, 0))
|
||||
EgtSetName( nFrameBottomId, WIN_BOTTOM)
|
||||
local nFrameRightId = EgtLine( nLayerId, Point3d( dWidth, 0, 0), Point3d( dWidth, dVal, 0))
|
||||
EgtSetName( nFrameRightId, WIN_RIGHT)
|
||||
local nFrameTopId = EgtLine( nLayerId, Point3d( dWidth, dVal, 0), Point3d( 0, dHeight, 0))
|
||||
EgtSetName( nFrameTopId, WIN_TOP)
|
||||
local nFrameLeftId = EgtLine( nLayerId, Point3d( 0, dHeight, 0), Point3d( 0, 0, 0))
|
||||
EgtSetName( nFrameLeftId, WIN_LEFT)
|
||||
|
||||
|
||||
local nBottomId = EgtLine( nLayerId, ORIG(), Point3d( dWidth, 0, 0))
|
||||
EgtSetName( nBottomId, WIN_BOTTOM)
|
||||
local nRightId = EgtLine( nLayerId, Point3d( dWidth, 0, 0), Point3d( dWidth, dVal, 0))
|
||||
EgtSetName( nRightId, WIN_RIGHT)
|
||||
local nTopId = EgtLine( nLayerId, Point3d( dWidth, dVal, 0), Point3d( 0, dHeight, 0))
|
||||
EgtSetName( nTopId, WIN_TOP)
|
||||
local nLeftId = EgtLine( nLayerId, Point3d( 0, dHeight, 0), ORIG())
|
||||
EgtSetName( nLeftId, WIN_LEFT)
|
||||
|
||||
-- triangular arch
|
||||
elseif nType == WIN_FRAME_TYPE.CHAMFER then
|
||||
-- dHeight è l'altezza dei lati verticali, dVal è l'altezza complessiva della finestra
|
||||
local nFrameBottomId = EgtLine( nLayerId, Point3d( 0, 0, 0), Point3d( dWidth, 0, 0))
|
||||
EgtSetName( nFrameBottomId, WIN_BOTTOM)
|
||||
local nFrameRightId = EgtLine( nLayerId, Point3d( dWidth, 0, 0), Point3d( dWidth, dHeight, 0))
|
||||
EgtSetName( nFrameRightId, WIN_RIGHT)
|
||||
local nFrameTop1Id = EgtLine( nLayerId, Point3d( dWidth, dHeight, 0), Point3d( dWidth / 2, dVal, 0))
|
||||
local nFrameTop2Id = EgtLine( nLayerId, Point3d( dWidth / 2, dVal, 0), Point3d( 0, dHeight, 0))
|
||||
EgtSetName( nFrameTop1Id, WIN_TOP)
|
||||
EgtSetName( nFrameTop2Id, WIN_TOP)
|
||||
local nFrameLeftId = EgtLine( nLayerId, Point3d( 0, dHeight, 0), Point3d( 0, 0, 0))
|
||||
EgtSetName( nFrameLeftId, WIN_LEFT)
|
||||
|
||||
local nBottomId = EgtLine( nLayerId, ORIG(), Point3d( dWidth, 0, 0))
|
||||
EgtSetName( nBottomId, WIN_BOTTOM)
|
||||
local nRightId = EgtLine( nLayerId, Point3d( dWidth, 0, 0), Point3d( dWidth, dHeight, 0))
|
||||
EgtSetName( nRightId, WIN_RIGHT)
|
||||
local nTop1Id = EgtLine( nLayerId, Point3d( dWidth, dHeight, 0), Point3d( dWidth / 2, dVal, 0))
|
||||
local nTop2Id = EgtLine( nLayerId, Point3d( dWidth / 2, dVal, 0), Point3d( 0, dHeight, 0))
|
||||
EgtSetName( nTop1Id, WIN_TOP)
|
||||
EgtSetName( nTop2Id, WIN_TOP)
|
||||
local nLeftId = EgtLine( nLayerId, Point3d( 0, dHeight, 0), ORIG())
|
||||
EgtSetName( nLeftId, WIN_LEFT)
|
||||
|
||||
-- arco a tutto sesto
|
||||
elseif nType == WIN_FRAME_TYPE.ROUND_ARC then
|
||||
-- arco a tutto sesto
|
||||
local nFrameBottomId = EgtLine( nLayerId, Point3d( 0, 0, 0), Point3d( dWidth, 0, 0))
|
||||
EgtSetName( nFrameBottomId, WIN_BOTTOM)
|
||||
local nFrameRightId = EgtLine( nLayerId, Point3d( dWidth, 0, 0), Point3d( dWidth, dHeight - 0.5 * dWidth, 0))
|
||||
EgtSetName( nFrameRightId, WIN_RIGHT)
|
||||
local nFrameTopId = EgtArcCPA( nLayerId, Point3d( 0.5 * dWidth, dHeight - 0.5 * dWidth, 0), Point3d( dWidth, dHeight - 0.5 * dWidth, 0), 180, 0)
|
||||
EgtSetName( nFrameTopId, WIN_TOP)
|
||||
local nFrameLeftId = EgtLine( nLayerId, Point3d( 0, dHeight - 0.5 * dWidth, 0), Point3d( 0, 0, 0))
|
||||
EgtSetName( nFrameLeftId, WIN_LEFT)
|
||||
|
||||
local nBottomId = EgtLine( nLayerId, ORIG(), Point3d( dWidth, 0, 0))
|
||||
EgtSetName( nBottomId, WIN_BOTTOM)
|
||||
local nRightId = EgtLine( nLayerId, Point3d( dWidth, 0, 0), Point3d( dWidth, dHeight - 0.5 * dWidth, 0))
|
||||
EgtSetName( nRightId, WIN_RIGHT)
|
||||
local nTopId = EgtArcCPA( nLayerId, Point3d( 0.5 * dWidth, dHeight - 0.5 * dWidth, 0), Point3d( dWidth, dHeight - 0.5 * dWidth, 0), 180, 0)
|
||||
EgtSetName( nTopId, WIN_TOP)
|
||||
local nLeftId = EgtLine( nLayerId, Point3d( 0, dHeight - 0.5 * dWidth, 0), ORIG())
|
||||
EgtSetName( nLeftId, WIN_LEFT)
|
||||
|
||||
-- arco ribassato
|
||||
elseif nType == WIN_FRAME_TYPE.SEGMENTAL_ARC then
|
||||
-- arco ribassato
|
||||
-- dHeight è l'altezza dei lati verticali, dVal è l'altezza complessiva della finestra
|
||||
local nFrameBottomId = EgtLine( nLayerId, Point3d( 0, 0, 0), Point3d( dWidth, 0, 0))
|
||||
EgtSetName( nFrameBottomId, WIN_BOTTOM)
|
||||
local nFrameRightId = EgtLine( nLayerId, Point3d( dWidth, 0, 0), Point3d( dWidth, dHeight, 0))
|
||||
EgtSetName( nFrameRightId, WIN_RIGHT)
|
||||
local nFrameTopId = EgtArc3P( nLayerId, Point3d( dWidth, dHeight, 0), Point3d( 0.5 * dWidth, dVal, 0), Point3d( 0, dHeight, 0))
|
||||
EgtSetName( nFrameTopId, WIN_TOP)
|
||||
local nFrameLeftId = EgtLine( nLayerId, Point3d( 0, dHeight, 0), Point3d( 0, 0, 0))
|
||||
EgtSetName( nFrameLeftId, WIN_LEFT)
|
||||
|
||||
local nBottomId = EgtLine( nLayerId, ORIG(), Point3d( dWidth, 0, 0))
|
||||
EgtSetName( nBottomId, WIN_BOTTOM)
|
||||
local nRightId = EgtLine( nLayerId, Point3d( dWidth, 0, 0), Point3d( dWidth, dHeight, 0))
|
||||
EgtSetName( nRightId, WIN_RIGHT)
|
||||
local nTopId = EgtArc3P( nLayerId, Point3d( dWidth, dHeight, 0), Point3d( 0.5 * dWidth, dVal, 0), Point3d( 0, dHeight, 0))
|
||||
EgtSetName( nTopId, WIN_TOP)
|
||||
local nLeftId = EgtLine( nLayerId, Point3d( 0, dHeight, 0), ORIG())
|
||||
EgtSetName( nLeftId, WIN_LEFT)
|
||||
|
||||
-- arco a tutto sesto
|
||||
elseif nType == WIN_FRAME_TYPE.POINTED_ARC then
|
||||
-- arco a tutto sesto
|
||||
-- dHeight è l'altezza dei lati verticali, dVal è l'altezza complessiva della finestra
|
||||
-- verifico che le due altezze abbiano valori sensati per realizzare i due archi
|
||||
if dVal - dHeight < 0.5 * dWidth then
|
||||
return
|
||||
end
|
||||
local nFrameBottomId = EgtLine( nLayerId, Point3d( 0, 0, 0), Point3d( dWidth, 0, 0))
|
||||
EgtSetName( nFrameBottomId, WIN_BOTTOM)
|
||||
local nFrameRightId = EgtLine( nLayerId, Point3d( dWidth, 0, 0), Point3d( dWidth, dHeight, 0))
|
||||
EgtSetName( nFrameRightId, WIN_RIGHT)
|
||||
local nFrameTop1Id = EgtArc2PV( nLayerId, Point3d( dWidth, dHeight, 0), Point3d( 0.5 * dWidth, dVal, 0), Y_AX())
|
||||
EgtSetName( nFrameTop1Id, WIN_TOP)
|
||||
local nFrameTop2Id = EgtArc2PV( nLayerId, Point3d( 0, dHeight, 0), Point3d( 0.5 * dWidth, dVal, 0), Y_AX())
|
||||
EgtInvertCurve( nFrameTop2Id)
|
||||
EgtSetName( nFrameTop2Id, WIN_TOP)
|
||||
local nFrameLeftId = EgtLine( nLayerId, Point3d( 0, dHeight, 0), Point3d( 0, 0, 0))
|
||||
EgtSetName( nFrameLeftId, WIN_LEFT)
|
||||
|
||||
local nBottomId = EgtLine( nLayerId, ORIG(), Point3d( dWidth, 0, 0))
|
||||
EgtSetName( nBottomId, WIN_BOTTOM)
|
||||
local nRightId = EgtLine( nLayerId, Point3d( dWidth, 0, 0), Point3d( dWidth, dHeight, 0))
|
||||
EgtSetName( nRightId, WIN_RIGHT)
|
||||
local nTop1Id = EgtArc2PV( nLayerId, Point3d( dWidth, dHeight, 0), Point3d( 0.5 * dWidth, dVal, 0), Y_AX())
|
||||
EgtSetName( nTop1Id, WIN_TOP)
|
||||
local nTop2Id = EgtArc2PV( nLayerId, Point3d( 0, dHeight, 0), Point3d( 0.5 * dWidth, dVal, 0), Y_AX())
|
||||
EgtInvertCurve( nTop2Id)
|
||||
EgtSetName( nTop2Id, WIN_TOP)
|
||||
local nLeftId = EgtLine( nLayerId, Point3d( 0, dHeight, 0), ORIG())
|
||||
EgtSetName( nLeftId, WIN_LEFT)
|
||||
|
||||
-- triangolo
|
||||
elseif nType == WIN_FRAME_TYPE.TRG then
|
||||
local nFrameBottomId = EgtLine( nLayerId, Point3d( 0, 0, 0), Point3d( dWidth, 0, 0))
|
||||
EgtSetName( nFrameBottomId, WIN_BOTTOM)
|
||||
local nFrameRightId = EgtLine( nLayerId, Point3d( dWidth, 0, 0), Point3d( dVal, dHeight, 0))
|
||||
EgtSetName( nFrameRightId, WIN_RIGHT)
|
||||
local nFrameLeftId = EgtLine( nLayerId, Point3d( dVal, dHeight, 0), Point3d( 0, 0, 0))
|
||||
EgtSetName( nFrameLeftId, WIN_LEFT)
|
||||
local nBottomId = EgtLine( nLayerId, ORIG(), Point3d( dWidth, 0, 0))
|
||||
EgtSetName( nBottomId, WIN_BOTTOM)
|
||||
local nEdge1Id = EgtLine( nLayerId, Point3d( dWidth, 0, 0), Point3d( dVal, dHeight, 0))
|
||||
local nEdge2Id = EgtLine( nLayerId, Point3d( dVal, dHeight, 0), ORIG())
|
||||
-- un lato verticale è right/left, un lato inclinato è top
|
||||
if dVal < GEO.EPS_SMALL then
|
||||
EgtSetName( nEdge1Id, WIN_TOP)
|
||||
EgtSetName( nEdge2Id, WIN_LEFT)
|
||||
elseif abs( dVal - dWidth) < GEO.EPS_SMALL then
|
||||
EgtSetName( nEdge1Id, WIN_RIGHT)
|
||||
EgtSetName( nEdge2Id, WIN_TOP)
|
||||
else
|
||||
EgtSetName( nEdge1Id, WIN_TOP)
|
||||
EgtSetName( nEdge2Id, WIN_TOP)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------------------
|
||||
-- funzione che crea il telaio a partire da una specifica geometria ( rettangolo, chamfer...)
|
||||
function WinCreate.CreateFrame( nType, nJointBL, nJointBR, nJointTL, nJointTR, dWidth, dHeight, dHeight2)
|
||||
function WinCreate.CreateFrame( nType, vJoints, dWidth, dHeight, dHeight2)
|
||||
|
||||
-- creo un gruppo temporaneo per le curve di outline
|
||||
local nTmpLay = EgtGroup( GDB_ID.ROOT)
|
||||
-- disegno outline
|
||||
CreateFrameCurves( nTmpLay, nType, dWidth, dHeight, dHeight2)
|
||||
local nFrameAreaId = WinCreate.CreateGenFrame( EgtGetAllInGroup( nTmpLay), nJointBL, nJointBR, nJointTL, nJointTR)
|
||||
local nFrameAreaId = WinCreate.CreateGenFrame( EgtGetAllInGroup( nTmpLay), vJoints)
|
||||
EgtErase( nTmpLay)
|
||||
|
||||
return nFrameAreaId
|
||||
@@ -195,7 +203,7 @@ end
|
||||
-------------------------------------- ANTA --------------------------------------
|
||||
----------------------------------------------------------------------------------
|
||||
-- funzione che aggiunge una anta
|
||||
function WinCreate.AddSash( nAreaId, nJointBL, nJointBR, nJointTR, nJointTL, nSashType)
|
||||
function WinCreate.AddSash( nAreaId, vJoints, nSashType)
|
||||
-- creo nuova area
|
||||
local nSashAreaId = EgtGroup( nAreaId)
|
||||
EgtSetName( nSashAreaId, WIN_AREA .. '(' .. WIN_SASH .. ')')
|
||||
@@ -215,10 +223,7 @@ function WinCreate.AddSash( nAreaId, nJointBL, nJointBR, nJointTR, nJointTL, nSa
|
||||
nAreaOutlineId = EgtGetNext( nAreaOutlineId)
|
||||
end
|
||||
-- imposto tipo giunzioni
|
||||
EgtSetInfo( nAreaOutlineLayerId, WIN_JOINT_BL, nJointBL)
|
||||
EgtSetInfo( nAreaOutlineLayerId, WIN_JOINT_BR, nJointBR)
|
||||
EgtSetInfo( nAreaOutlineLayerId, WIN_JOINT_TL, nJointTL)
|
||||
EgtSetInfo( nAreaOutlineLayerId, WIN_JOINT_TR, nJointTR)
|
||||
EgtSetInfo( nAreaOutlineLayerId, WIN_JOINTS, vJoints)
|
||||
-- imposto tipo di anta se presente
|
||||
if nSashType then
|
||||
EgtSetInfo( nSashAreaId, WIN_SASHTYPE, nSashType)
|
||||
@@ -250,10 +255,8 @@ function WinCreate.AddFill( nAreaId, FillType)
|
||||
nAreaOutlineId = EgtGetNext( nAreaOutlineId)
|
||||
end
|
||||
-- rimuovo eventuali info di giunzioni
|
||||
EgtRemoveInfo( nAreaOutlineLayerId, WIN_JOINT_BL)
|
||||
EgtRemoveInfo( nAreaOutlineLayerId, WIN_JOINT_BR)
|
||||
EgtRemoveInfo( nAreaOutlineLayerId, WIN_JOINT_TL)
|
||||
EgtRemoveInfo( nAreaOutlineLayerId, WIN_JOINT_TR)
|
||||
EgtRemoveInfo( nAreaOutlineLayerId, WIN_JOINTS)
|
||||
|
||||
-- imposto tipo di fill
|
||||
EgtSetInfo( nFillAreaId, WIN_FILLTYPE, FillType)
|
||||
return nFillAreaId
|
||||
@@ -355,117 +358,33 @@ function WinCreate.AddSplits( nAreaLayerId, SplitType, MeasureType, PositionList
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------------------
|
||||
-- funzione che crea un taglio split da una curva generica
|
||||
function WinCreate.AddGenSplit( nAreaLayerId, nSplitId, nSplitType)
|
||||
-- se area nulla diventa di tipo split
|
||||
local nAreaType = EgtGetInfo( nAreaLayerId, WIN_AREATYPE, 'i')
|
||||
if nAreaType == WIN_AREATYPES.NULL then
|
||||
EgtSetInfo( nAreaLayerId, WIN_AREATYPE, WIN_AREATYPES.SPLIT)
|
||||
end
|
||||
-- creo layer per split
|
||||
local nSplitLayerId = EgtGroup( nAreaLayerId)
|
||||
EgtSetName( nSplitLayerId, WIN_BASESPLIT)
|
||||
-- sposto curva split nel layer
|
||||
EgtRelocateGlob( nSplitId, nSplitLayerId)
|
||||
local nOutlineLayerId = EgtGetFirstNameInGroup( nAreaLayerId, WIN_AREAOUTLINE)
|
||||
local b3OutlineLayer = EgtGetBBox( nOutlineLayerId, GDB_BB.STANDARD)
|
||||
-- allungo curva split per cercare intersezioni
|
||||
EgtExtendCurveStartByLen( nSplitId, 10)
|
||||
EgtExtendCurveEndByLen( nSplitId, 10)
|
||||
-- recupero lista intersezioni
|
||||
local OutlineInters = {}
|
||||
local nOutlineId = EgtGetFirstInGroup( nOutlineLayerId)
|
||||
while nOutlineId do
|
||||
local sName = EgtGetName( nOutlineId)
|
||||
-- verifico se ci siano intersezioni con questo outline
|
||||
local ptInters = EgtIP( nSplitId, nOutlineId, EgtSP( nSplitId))
|
||||
if ptInters then
|
||||
table.insert( OutlineInters, { Id = nOutlineId, IntersPoint = ptInters})
|
||||
end
|
||||
nOutlineId = EgtGetNext( nOutlineId)
|
||||
end
|
||||
local ptStartSplit = EgtSP( nSplitId)
|
||||
local ptEndSplit = EgtEP( nSplitId)
|
||||
local StartInters
|
||||
local EndInters
|
||||
for nIndex = 1, #OutlineInters do
|
||||
local CurrOutInters = OutlineInters[nIndex]
|
||||
CurrOutInters.StartDistance = dist( CurrOutInters.IntersPoint, ptStartSplit)
|
||||
CurrOutInters.EndDistance = dist( CurrOutInters.IntersPoint, ptEndSplit)
|
||||
if not StartInters or CurrOutInters.StartDistance < StartInters.StartDistance then
|
||||
StartInters = CurrOutInters
|
||||
end
|
||||
if not EndInters or CurrOutInters.EndDistance < EndInters.EndDistance then
|
||||
EndInters = CurrOutInters
|
||||
end
|
||||
end
|
||||
-- accorcio la curva split su intersezione outline
|
||||
local dStartSplitInters = EgtCurveParamAtPoint( nSplitId, StartInters.IntersPoint)
|
||||
EgtTrimCurveStartAtParam( nSplitId, dStartSplitInters)
|
||||
local dEndSplitInters = EgtCurveParamAtPoint( nSplitId, EndInters.IntersPoint)
|
||||
EgtTrimCurveEndAtParam( nSplitId, dEndSplitInters)
|
||||
-- funzione che assegna il nome alla curva di split nella sottoarea in base alla sua direzione
|
||||
local function SetSplitName( nSplitId)
|
||||
|
||||
-- sistemo le info di intersezione
|
||||
local dPar1 = EgtCurveParamAtPoint( StartInters.Id, StartInters.IntersPoint, 100 * GEO.EPS_SMALL)
|
||||
local _, dParE1 = EgtCurveDomain( StartInters.Id)
|
||||
if dPar1 < GEO.EPS_SMALL then
|
||||
-- intersezione coinvolge anche curva precedente
|
||||
local nOther = EgtGetPrev( StartInters.Id) or EgtGetLastInGroup( nOutlineLayerId)
|
||||
EgtSetInfo( nSplitId, WIN_SPLIT_STARTINTERS, { nOther, StartInters.Id})
|
||||
elseif abs( dPar1 - dParE1) < GEO.EPS_SMALL then
|
||||
-- intersezione coinvolge anche curva successiva
|
||||
local nOther = EgtGetNext( StartInters.Id) or EgtGetFirstInGroup( nOutlineLayerId)
|
||||
EgtSetInfo( nSplitId, WIN_SPLIT_STARTINTERS, { StartInters.Id, nOther})
|
||||
local vtMedia = ( ( EgtEV( nSplitId) - EgtSV( nSplitId)) / 2)
|
||||
if not vtMedia:normalize() then
|
||||
vtMedia = EgtSV( nSplitId)
|
||||
end
|
||||
if abs( vtMedia:getX()) > abs( vtMedia:getY()) then
|
||||
if vtMedia:getX() > 0 then
|
||||
EgtSetName( nSplitId, WIN_BOTTOM)
|
||||
else
|
||||
EgtSetName( nSplitId, WIN_TOP)
|
||||
end
|
||||
else
|
||||
EgtSetInfo( nSplitId, WIN_SPLIT_STARTINTERS, { StartInters.Id})
|
||||
end
|
||||
|
||||
local dPar2 = EgtCurveParamAtPoint( EndInters.Id, EndInters.IntersPoint, 100 * GEO.EPS_SMALL)
|
||||
local _, dParE2 = EgtCurveDomain( EndInters.Id)
|
||||
if dPar2 < GEO.EPS_SMALL then
|
||||
-- intersezione coinvolge anche curva precedente
|
||||
local nOther = EgtGetPrev( EndInters.Id) or EgtGetLastInGroup( nOutlineLayerId)
|
||||
EgtSetInfo( nSplitId, WIN_SPLIT_ENDINTERS, { nOther, EndInters.Id})
|
||||
elseif abs( dPar2 - dParE2) < GEO.EPS_SMALL then
|
||||
-- intersezione coinvolge anche curva successiva
|
||||
local nOther = EgtGetNext( EndInters.Id) or EgtGetFirstInGroup( nOutlineLayerId)
|
||||
EgtSetInfo( nSplitId, WIN_SPLIT_ENDINTERS, { EndInters.Id, nOther})
|
||||
else
|
||||
EgtSetInfo( nSplitId, WIN_SPLIT_ENDINTERS, { EndInters.Id})
|
||||
end
|
||||
|
||||
-- assegno nome profilo
|
||||
EgtSetName( nSplitId, WIN_SPLIT)
|
||||
-- creo aree
|
||||
local nArea1Id, nArea2Id = WinCreate.CreateAreaFromSplit( nAreaLayerId, nSplitId)
|
||||
-- verifico se discende da Frame
|
||||
local nParentAreaId = nAreaLayerId
|
||||
local nParentAreaType = nAreaType
|
||||
-- recupero parent fino a trovare frame o sash
|
||||
while nParentAreaType ~= WIN_AREATYPES.FRAME and nParentAreaType ~= WIN_AREATYPES.SASH do
|
||||
nParentAreaId = EgtGetParent( nParentAreaId)
|
||||
nParentAreaType = EgtGetInfo( nParentAreaId, WIN_AREATYPE, 'i')
|
||||
end
|
||||
if nParentAreaType == WIN_AREATYPES.FRAME and nSplitType then
|
||||
-- imposto tipo di split
|
||||
EgtSetInfo( nSplitLayerId, WIN_SPLITTYPE, nSplitType)
|
||||
-- EgtSetInfo( nSplitLayerId, WIN_SPLITTYPE, EgtIf( not nSplitType, WIN_SPLITTYPES.MULLION, nSplitType))
|
||||
end
|
||||
return nArea1Id, nArea2Id
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------------------
|
||||
-- funzione che crea tagli split da curve generiche
|
||||
function WinCreate.AddGenSplits( nAreaLayerId, SplitList)
|
||||
for nIndex = 1, #SplitList do
|
||||
WinCreate.AddSplit( nAreaLayerId, SplitList[nIndex])
|
||||
if vtMedia:getY() > 0 then
|
||||
EgtSetName( nSplitId, WIN_RIGHT)
|
||||
else
|
||||
EgtSetName( nSplitId, WIN_LEFT)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------------------
|
||||
-- funzione che crea le aree da un taglio split
|
||||
function WinCreate.CreateAreaFromSplit( nAreaLayerId, nSplitId)
|
||||
-- creo layer per le due aree
|
||||
local function CreateAreaFromSplit( nAreaLayerId, nCompo, nSplitId, dPar1, dPar2, vOutlineCrvs)
|
||||
|
||||
-- creo layer per le due sottoaree
|
||||
local nArea1Id = EgtGroup( nAreaLayerId)
|
||||
EgtSetName( nArea1Id , WIN_AREA1)
|
||||
EgtSetInfo( nArea1Id, WIN_AREATYPE, WIN_AREATYPES.NULL)
|
||||
@@ -476,120 +395,52 @@ function WinCreate.CreateAreaFromSplit( nAreaLayerId, nSplitId)
|
||||
EgtSetInfo( nArea2Id, WIN_AREATYPE, WIN_AREATYPES.NULL)
|
||||
local nArea2OutlineLayerId = EgtGroup( nArea2Id)
|
||||
EgtSetName( nArea2OutlineLayerId , WIN_AREAOUTLINE)
|
||||
local nOutlineLayerId = EgtGetFirstNameInGroup( nAreaLayerId, WIN_AREAOUTLINE)
|
||||
local nOutlineId = EgtGetFirstInGroup( nOutlineLayerId)
|
||||
local nInters = 0
|
||||
while nOutlineId and nInters ~= 3 do
|
||||
local sName = EgtGetName( nOutlineId)
|
||||
-- calcolo intersezioni con questo outline
|
||||
local ptInters = EgtIP( nSplitId, nOutlineId, EgtSP( nSplitId))
|
||||
if ptInters then
|
||||
if nInters == 0 then
|
||||
-- trovato primo punto di intersezione - inizio area 2
|
||||
local dStartIntersParam = EgtCurveParamAtPoint( nOutlineId, ptInters)
|
||||
local _, dParE = EgtCurveDomain( nOutlineId)
|
||||
if abs( dStartIntersParam - dParE) < GEO.EPS_SMALL then
|
||||
-- se intersezione nel punto finale della curva la ignoro, la ritroverò analizzando l'outline successivo
|
||||
else
|
||||
nInters = 1
|
||||
local nCopyId = EgtCopy( nOutlineId, nArea2OutlineLayerId)
|
||||
EgtSetInfo( nCopyId, WIN_SOU, nOutlineId)
|
||||
EgtRemoveInfo( nCopyId, WIN_CHILD)
|
||||
AddInfo( nOutlineId, WIN_CHILD, nCopyId)
|
||||
EgtTrimCurveStartAtParam( nCopyId, dStartIntersParam)
|
||||
end
|
||||
elseif nInters == 1 then
|
||||
-- trovato secondo punto di intersezione - fine area 2
|
||||
nInters = 2
|
||||
local nCopyId = EgtCopy( nOutlineId, nArea2OutlineLayerId)
|
||||
EgtSetInfo( nCopyId, WIN_SOU, nOutlineId)
|
||||
EgtRemoveInfo( nCopyId, WIN_CHILD)
|
||||
AddInfo( nOutlineId, WIN_CHILD, nCopyId)
|
||||
local dEndIntersParam = EgtCurveParamAtPoint( nCopyId, ptInters)
|
||||
EgtTrimCurveEndAtParam( nCopyId, dEndIntersParam)
|
||||
-- copio anche split
|
||||
local nSplitCopyId = EgtCopy( nSplitId, nArea2OutlineLayerId)
|
||||
EgtSetInfo( nSplitCopyId, WIN_SOU, nSplitId)
|
||||
EgtRemoveInfo( nSplitCopyId, WIN_CHILD)
|
||||
AddInfo( nSplitId, WIN_CHILD, nSplitCopyId)
|
||||
EgtRemoveInfo( nSplitCopyId, WIN_SPLIT_STARTINTERS)
|
||||
EgtRemoveInfo( nSplitCopyId, WIN_SPLIT_ENDINTERS)
|
||||
if not AreSamePointExact( EgtEP( nCopyId), EgtSP( nSplitCopyId)) then
|
||||
EgtInvertCurve( nSplitCopyId)
|
||||
end
|
||||
-- verifico direzione per dare nome
|
||||
local vtMedia = ( ( EgtEV( nSplitCopyId) - EgtSV( nSplitCopyId)) / 2)
|
||||
if not vtMedia:normalize() then
|
||||
vtMedia = EgtSV( nSplitCopyId)
|
||||
end
|
||||
if abs( vtMedia:getX()) > abs( vtMedia:getY()) then
|
||||
EgtSetName( nSplitCopyId, WIN_BOTTOM)
|
||||
else
|
||||
EgtSetName( nSplitCopyId, WIN_LEFT)
|
||||
end
|
||||
-- inizio area 1
|
||||
local _, dEnd = EgtCurveDomain( nOutlineId)
|
||||
if abs( dEndIntersParam - dEnd) < GEO.EPS_SMALL then
|
||||
-- l'intersezione è sul punto finale della curva di outline, quindi è la curva successiva che dà inizio all'area 1
|
||||
nOutlineId = EgtGetNext( nOutlineId) or EgtGetFirstInGroup( nOutlineLayerId)
|
||||
end
|
||||
nCopyId = EgtCopy( nOutlineId, nArea1OutlineLayerId)
|
||||
EgtSetInfo( nCopyId, WIN_SOU, nOutlineId)
|
||||
EgtRemoveInfo( nCopyId, WIN_CHILD)
|
||||
AddInfo( nOutlineId, WIN_CHILD, nCopyId)
|
||||
local dStartIntersParam = EgtCurveParamAtPoint( nCopyId, ptInters)
|
||||
EgtTrimCurveStartAtParam( nCopyId, dStartIntersParam)
|
||||
elseif nInters == 2 then
|
||||
-- trovato secondo punto di intersezione - fine area 1
|
||||
nInters = 3
|
||||
local nCopyId = EgtCopy( nOutlineId, nArea1OutlineLayerId)
|
||||
EgtSetInfo( nCopyId, WIN_SOU, nOutlineId)
|
||||
EgtRemoveInfo( nCopyId, WIN_CHILD)
|
||||
AddInfo( nOutlineId, WIN_CHILD, nCopyId)
|
||||
local dEndIntersParam = EgtCurveParamAtPoint( nCopyId, ptInters)
|
||||
EgtTrimCurveEndAtParam( nCopyId, dEndIntersParam)
|
||||
-- copio anche split
|
||||
local nSplitCopyId = EgtCopy( nSplitId, nArea1OutlineLayerId)
|
||||
EgtRemoveName( nSplitCopyId)
|
||||
EgtSetInfo( nSplitCopyId, WIN_SOU, nSplitId)
|
||||
EgtRemoveInfo( nSplitCopyId, WIN_CHILD)
|
||||
AddInfo( nSplitId, WIN_CHILD, nSplitCopyId)
|
||||
EgtRemoveInfo( nSplitCopyId, WIN_SPLIT_STARTINTERS)
|
||||
EgtRemoveInfo( nSplitCopyId, WIN_SPLIT_ENDINTERS)
|
||||
if not AreSamePointExact( EgtEP( nCopyId), EgtSP( nSplitCopyId)) then
|
||||
EgtInvertCurve( nSplitCopyId)
|
||||
end
|
||||
-- verifico direzione per dare nome
|
||||
local vtMedia = ( ( EgtEV( nSplitCopyId) - EgtSV( nSplitCopyId)) / 2)
|
||||
if not vtMedia:normalize() then
|
||||
vtMedia = EgtSV( nSplitCopyId)
|
||||
end
|
||||
if abs( vtMedia:getX()) > abs( vtMedia:getY()) then
|
||||
EgtSetName( nSplitCopyId, WIN_TOP)
|
||||
else
|
||||
EgtSetName( nSplitCopyId, WIN_RIGHT)
|
||||
end
|
||||
|
||||
-- ad ogni sottoarea associo la porzione di curva composita corrispondente
|
||||
local nCrv1 = EgtCopyGlob( nCompo, nArea1OutlineLayerId)
|
||||
local nCrv2 = EgtCopyGlob( nCompo, nArea2OutlineLayerId)
|
||||
EgtTrimCurveStartEndAtParam( nCrv1, dPar2, dPar1)
|
||||
EgtTrimCurveStartEndAtParam( nCrv2, dPar1, dPar2)
|
||||
|
||||
-- copio curva di split
|
||||
local nSplitId1 = EgtCopyGlob( nSplitId, nArea1OutlineLayerId)
|
||||
local nSplitId2 = EgtCopyGlob( nSplitId, nArea2OutlineLayerId)
|
||||
-- verifico se necessaria inversione
|
||||
if AreSamePointApprox( EgtSP( nSplitId1), EgtSP( nCrv1)) then
|
||||
EgtInvertCurve( nSplitId1)
|
||||
end
|
||||
if AreSamePointApprox( EgtSP( nSplitId2), EgtSP( nCrv2)) then
|
||||
EgtInvertCurve( nSplitId2)
|
||||
end
|
||||
-- assegno il nome in base alla direzione
|
||||
SetSplitName( nSplitId1)
|
||||
SetSplitName( nSplitId2)
|
||||
-- assengo le info di source e child
|
||||
EgtSetInfo( nSplitId, WIN_CHILD, { nSplitId1, nSplitId2})
|
||||
EgtSetInfo( nSplitId1, WIN_SOU, nSplitId)
|
||||
EgtSetInfo( nSplitId2, WIN_SOU, nSplitId)
|
||||
|
||||
-- spezzo le curve composite per riottenere le curve originarie di partenza
|
||||
local nFirst1, nCnt1 = EgtExplodeCurveCompo( nCrv1)
|
||||
local nFirst2, nCnt2 = EgtExplodeCurveCompo( nCrv2)
|
||||
-- assegno nome e info
|
||||
local vCrvs = EgtTableFill( nFirst1, nCnt1)
|
||||
EgtTableAdd( vCrvs, nFirst2, nCnt2)
|
||||
for i = 1, #vCrvs do
|
||||
-- ricavo la curva di outline originale da cui deriva
|
||||
local ptM = EgtMP( vCrvs[i])
|
||||
for j = 1, #vOutlineCrvs do
|
||||
if EgtCurveParamAtPoint( vOutlineCrvs[j], ptM, 100 * GEO.EPS_SMALL) then
|
||||
-- ne prendo il nome
|
||||
EgtSetName( vCrvs[i], EgtGetName( vOutlineCrvs[j]))
|
||||
-- assegno le info di child e source
|
||||
EgtSetInfo( vCrvs[i], WIN_SOU, vOutlineCrvs[j])
|
||||
AddInfo( vOutlineCrvs[j], WIN_CHILD, vCrvs[i])
|
||||
break
|
||||
end
|
||||
elseif nInters == 1 then
|
||||
-- copio nel profilo 2
|
||||
local nCopyId = EgtCopy( nOutlineId, nArea2OutlineLayerId)
|
||||
EgtSetInfo( nCopyId, WIN_SOU, nOutlineId)
|
||||
EgtRemoveInfo( nCopyId, WIN_CHILD)
|
||||
AddInfo( nOutlineId, WIN_CHILD, nCopyId)
|
||||
elseif nInters == 2 then
|
||||
-- copio nel profilo 1
|
||||
local nCopyId = EgtCopy( nOutlineId, nArea1OutlineLayerId)
|
||||
EgtSetInfo( nCopyId, WIN_SOU, nOutlineId)
|
||||
EgtRemoveInfo( nCopyId, WIN_CHILD)
|
||||
AddInfo( nOutlineId, WIN_CHILD, nCopyId)
|
||||
end
|
||||
-- aggiorno indice
|
||||
nOutlineId = EgtGetNext( nOutlineId)
|
||||
-- se arrivato alla fine riparto
|
||||
if not nOutlineId then
|
||||
nOutlineId = EgtGetFirstInGroup( nOutlineLayerId)
|
||||
end
|
||||
end
|
||||
|
||||
-- scorro pezzi del primo e secondo outline per avere bottom come primo
|
||||
local nFirstInAreaId = EgtGetFirstInGroup( nArea1OutlineLayerId)
|
||||
local sFirstInAreaName = EgtGetName( nFirstInAreaId)
|
||||
@@ -605,9 +456,125 @@ function WinCreate.CreateAreaFromSplit( nAreaLayerId, nSplitId)
|
||||
nFirstInAreaId = EgtGetFirstInGroup( nArea2OutlineLayerId)
|
||||
sFirstInAreaName = EgtGetName( nFirstInAreaId)
|
||||
end
|
||||
|
||||
return nArea1Id, nArea2Id
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------------------
|
||||
-- funzione che crea un taglio split da una curva generica
|
||||
function WinCreate.AddGenSplit( nAreaLayerId, nSplitId, nSplitType)
|
||||
-- se area nulla diventa di tipo split
|
||||
local nAreaType = EgtGetInfo( nAreaLayerId, WIN_AREATYPE, 'i')
|
||||
if nAreaType == WIN_AREATYPES.NULL then
|
||||
EgtSetInfo( nAreaLayerId, WIN_AREATYPE, WIN_AREATYPES.SPLIT)
|
||||
end
|
||||
-- creo layer per split
|
||||
local nSplitLayerId = EgtGroup( nAreaLayerId)
|
||||
EgtSetName( nSplitLayerId, WIN_BASESPLIT)
|
||||
-- sposto curva split nel layer
|
||||
EgtRelocateGlob( nSplitId, nSplitLayerId)
|
||||
-- assegno nome profilo
|
||||
EgtSetName( nSplitId, WIN_SPLIT)
|
||||
|
||||
-- verifico se devo impostare tipo di split ( solo se deriva da tipo frame)
|
||||
if nSplitType then
|
||||
local nParentAreaId = nAreaLayerId
|
||||
local nParentAreaType = nAreaType
|
||||
-- recupero parent fino a trovare frame o sash
|
||||
while nParentAreaType ~= WIN_AREATYPES.FRAME and nParentAreaType ~= WIN_AREATYPES.SASH do
|
||||
nParentAreaId = EgtGetParent( nParentAreaId)
|
||||
nParentAreaType = EgtGetInfo( nParentAreaId, WIN_AREATYPE, 'i')
|
||||
end
|
||||
if nParentAreaType == WIN_AREATYPES.FRAME then
|
||||
-- imposto tipo di split
|
||||
EgtSetInfo( nSplitLayerId, WIN_SPLITTYPE, nSplitType)
|
||||
end
|
||||
end
|
||||
|
||||
-- Ricerca delle intersezioni :
|
||||
-- creo una curva composita a partire da tutte le curve di outline
|
||||
local nOutlineLayerId = EgtGetFirstNameInGroup( nAreaLayerId, WIN_AREAOUTLINE)
|
||||
local vOutlineCrvs = EgtGetAllInGroup( nOutlineLayerId)
|
||||
local nCompo = EgtCurveCompo( nSplitLayerId, vOutlineCrvs, false)
|
||||
-- allungo curva split per cercare intersezioni
|
||||
EgtExtendCurveStartByLen( nSplitId, 10)
|
||||
EgtExtendCurveEndByLen( nSplitId, 10)
|
||||
-- trovo intersezioni tra composita e lo split
|
||||
local nFirst, nPntCnt, nCrvCnt = EgtCurveCurveInters( nCompo, nSplitId, nSplitLayerId)
|
||||
if nCrvCnt ~= 0 or nPntCnt ~= 2 then
|
||||
-- errore
|
||||
return
|
||||
end
|
||||
-- recupero i due punti di intersezione
|
||||
local pt1 = EgtSP( nFirst)
|
||||
local pt2 = EgtSP( nFirst + 1)
|
||||
EgtErase( { nFirst, nFirst + 1})
|
||||
|
||||
-- recupero i parametri di intersezione sulla curva di split
|
||||
local dSplitParS = EgtCurveParamAtPoint( nSplitId, pt1, 100 * GEO.EPS_SMALL)
|
||||
local dSplitParE = EgtCurveParamAtPoint( nSplitId, pt2, 100 * GEO.EPS_SMALL)
|
||||
-- recupero i parametri di intersezione sulla curva composita
|
||||
local dPar1 = EgtCurveParamAtPoint( nCompo, pt1, 100 * GEO.EPS_SMALL)
|
||||
local dPar2 = EgtCurveParamAtPoint( nCompo, pt2, 100 * GEO.EPS_SMALL)
|
||||
|
||||
-- ricavo i parametri di intersezione legati a start ed end dello split
|
||||
local dParCrvS = dPar1
|
||||
local dParCrvE = dPar2
|
||||
if dSplitParS > dSplitParE then
|
||||
dSplitParS, dSplitParE = dSplitParE, dSplitParS
|
||||
dParCrvS, dParCrvE = dParCrvE, dParCrvS
|
||||
end
|
||||
|
||||
-- taglio la curva di split nei punti di intersezione
|
||||
EgtTrimCurveStartEndAtParam( nSplitId, dSplitParS, dSplitParE)
|
||||
|
||||
-- setto info per intersezione start
|
||||
-- se il parametro è intero allora l'intersezione coinvolge due curve successive
|
||||
if abs( dParCrvS - ceil( dParCrvS)) < GEO.EPS_SMALL then
|
||||
local nCrv = vOutlineCrvs[ ceil( dParCrvS) + 1]
|
||||
local nOther = EgtGetPrev( nCrv) or EgtGetLastInGroup( nOutlineLayerId)
|
||||
EgtSetInfo( nSplitId, WIN_SPLIT_STARTINTERS, { nOther, nCrv})
|
||||
elseif abs( dParCrvS - floor( dParCrvS)) < GEO.EPS_SMALL then
|
||||
local nCrv = vOutlineCrvs[ floor( dParCrvS) + 1]
|
||||
local nOther = EgtGetPrev( nCrv) or EgtGetLastInGroup( nOutlineLayerId)
|
||||
EgtSetInfo( nSplitId, WIN_SPLIT_STARTINTERS, { nOther, nCrv})
|
||||
else
|
||||
-- se il parametro non è intero allora l'intersezione coinvolge una sola curva
|
||||
local nCrv = vOutlineCrvs[ floor( dParCrvS) + 1]
|
||||
EgtSetInfo( nSplitId, WIN_SPLIT_STARTINTERS, { nCrv})
|
||||
end
|
||||
|
||||
-- setto info per intersezione end
|
||||
if abs( dParCrvE - ceil( dParCrvE)) < GEO.EPS_SMALL then
|
||||
local nCrv = vOutlineCrvs[ ceil( dParCrvE) + 1]
|
||||
local nOther = EgtGetPrev( nCrv) or EgtGetLastInGroup( nOutlineLayerId)
|
||||
EgtSetInfo( nSplitId, WIN_SPLIT_ENDINTERS, { nOther, nCrv})
|
||||
elseif abs( dParCrvE - floor( dParCrvE)) < GEO.EPS_SMALL then
|
||||
local nCrv = vOutlineCrvs[ floor( dParCrvE) + 1]
|
||||
local nOther = EgtGetPrev( nCrv) or EgtGetLastInGroup( nOutlineLayerId)
|
||||
EgtSetInfo( nSplitId, WIN_SPLIT_ENDINTERS, { nOther, nCrv})
|
||||
else
|
||||
local nCrv = vOutlineCrvs[ floor( dParCrvE) + 1]
|
||||
EgtSetInfo( nSplitId, WIN_SPLIT_ENDINTERS, { nCrv})
|
||||
end
|
||||
|
||||
-- creo sottoaree
|
||||
local nArea1, nArea2 = CreateAreaFromSplit( nAreaLayerId, nCompo, nSplitId, dPar1, dPar2, vOutlineCrvs)
|
||||
|
||||
EgtErase( nCompo)
|
||||
|
||||
return nArea1, nArea2
|
||||
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------------------
|
||||
-- funzione che crea tagli split da curve generiche
|
||||
function WinCreate.AddGenSplits( nAreaLayerId, SplitList)
|
||||
for nIndex = 1, #SplitList do
|
||||
WinCreate.AddSplit( nAreaLayerId, SplitList[nIndex])
|
||||
end
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------------------
|
||||
---------------------------------- BOTTOMRAIL ------------------------------------
|
||||
----------------------------------------------------------------------------------
|
||||
@@ -617,7 +584,6 @@ function WinCreate.AddBottomRail( nAreaId)
|
||||
if nAreaType == WIN_AREATYPES.FRAME then
|
||||
-- recupero l'outline bottom
|
||||
local nBaseOutlineLayerId = EgtGetFirstNameInGroup( nAreaId, WIN_AREAOUTLINE)
|
||||
-- local nBottomOutlineId = EgtGetFirstNameInGroup( nBaseOutlineLayerId, WIN_BOTTOM)
|
||||
EgtSetInfo( nBaseOutlineLayerId, WIN_BOTTOMRAIL, 1)
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user