优化 transfromRegion:旋转与平移合成一次 region 变换(E3) #69

Merged
gjm merged 1 commits from home-lenovo-legion-r9000/fix-gidraw-transfromregion-e3 AGit into main 2026-10-25 19:18:27 +08:00
Collaborator

原来对 AcDbRegion 连做两次 transformBy(先转到平面、再平移),
region 是 ACIS body,每次变换都要重建拓扑,而该函数在
DrawPipe(pCurve, pRegion, ptCenInRgn) 里每个管件都会调用。

改为先算出 ptOnRegion 变换后的落点,把平移量用 preMultBy 合成进
同一个矩阵,region 只做一次 ACIS 变换;顺带删掉 plan.get(pt0,pt1,pt2)
这三个未使用的局部变量。

原来对 AcDbRegion 连做两次 transformBy(先转到平面、再平移), region 是 ACIS body,每次变换都要重建拓扑,而该函数在 DrawPipe(pCurve, pRegion, ptCenInRgn) 里每个管件都会调用。 改为先算出 ptOnRegion 变换后的落点,把平移量用 preMultBy 合成进 同一个矩阵,region 只做一次 ACIS 变换;顺带删掉 plan.get(pt0,pt1,pt2) 这三个未使用的局部变量。
home-laptop added 1 commit 2026-10-25 19:16:42 +08:00
原来对 AcDbRegion 连做两次 transformBy(先转到平面、再平移),
region 是 ACIS body,每次变换都要重建拓扑,而该函数在
DrawPipe(pCurve, pRegion, ptCenInRgn) 里每个管件都会调用。

改为先算出 ptOnRegion 变换后的落点,把平移量用 preMultBy 合成进
同一个矩阵,region 只做一次 ACIS 变换;顺带删掉 plan.get(pt0,pt1,pt2)
这三个未使用的局部变量。
gjm approved these changes 2026-10-25 19:18:23 +08:00
gjm merged commit d329428791 into main 2026-10-25 19:18:27 +08:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gjm/envi-code#69