@@ -266,14 +266,47 @@ export namespace Renderer {
266266 }
267267 /** 框选框 */
268268 function renderSelectingRectangle ( ) {
269- if ( Stage . selectMachine . isUsing ) {
270- if ( Stage . selectMachine . selectingRectangle ) {
269+ if ( Stage . selectMachine . isUsing && Stage . selectMachine . selectingRectangle ) {
270+ const selectMode = Stage . selectMachine . getSelectMode ( ) ;
271+ if ( selectMode === "intersect" ) {
271272 ShapeRenderer . renderRect (
272273 Stage . selectMachine . selectingRectangle . transformWorld2View ( ) ,
273274 StageStyleManager . currentStyle . SelectRectangleFillColor ,
274275 StageStyleManager . currentStyle . SelectRectangleBorderColor ,
275276 1 ,
276277 ) ;
278+ } else if ( selectMode === "contain" ) {
279+ ShapeRenderer . renderRect (
280+ Stage . selectMachine . selectingRectangle . transformWorld2View ( ) ,
281+ StageStyleManager . currentStyle . SelectRectangleFillColor ,
282+ Color . Transparent ,
283+ 0 ,
284+ ) ;
285+ // 额外画四个直角边框
286+ CurveRenderer . renderSolidLine (
287+ transformWorld2View ( Stage . selectMachine . selectingRectangle . leftTop ) ,
288+ transformWorld2View ( Stage . selectMachine . selectingRectangle . topCenter ) ,
289+ StageStyleManager . currentStyle . SelectRectangleBorderColor ,
290+ 1 ,
291+ ) ;
292+ CurveRenderer . renderSolidLine (
293+ transformWorld2View ( Stage . selectMachine . selectingRectangle . rightTop ) ,
294+ transformWorld2View ( Stage . selectMachine . selectingRectangle . rightCenter ) ,
295+ StageStyleManager . currentStyle . SelectRectangleBorderColor ,
296+ 1 ,
297+ ) ;
298+ CurveRenderer . renderSolidLine (
299+ transformWorld2View ( Stage . selectMachine . selectingRectangle . rightBottom ) ,
300+ transformWorld2View ( Stage . selectMachine . selectingRectangle . bottomCenter ) ,
301+ StageStyleManager . currentStyle . SelectRectangleBorderColor ,
302+ 1 ,
303+ ) ;
304+ CurveRenderer . renderSolidLine (
305+ transformWorld2View ( Stage . selectMachine . selectingRectangle . leftBottom ) ,
306+ transformWorld2View ( Stage . selectMachine . selectingRectangle . leftCenter ) ,
307+ StageStyleManager . currentStyle . SelectRectangleBorderColor ,
308+ 1 ,
309+ ) ;
277310 }
278311 }
279312 }
0 commit comments