@@ -66,12 +66,15 @@ export class StraightEdgeRenderer extends EdgeRendererClass {
6666
6767 public renderNormalState ( edge : LineEdge ) : void {
6868 // 直线绘制
69+ const edgeColor = edge . color . equals ( Color . Transparent )
70+ ? StageStyleManager . currentStyle . StageObjectBorderColor
71+ : edge . color ;
6972 if ( edge . text . trim ( ) === "" ) {
7073 // 没有文字的边
7174 CurveRenderer . renderSolidLine (
7275 Renderer . transformWorld2View ( edge . bodyLine . start ) ,
7376 Renderer . transformWorld2View ( edge . bodyLine . end ) ,
74- StageStyleManager . currentStyle . StageObjectBorderColor ,
77+ edgeColor ,
7578 2 * Camera . currentScale ,
7679 ) ;
7780 } else {
@@ -83,20 +86,20 @@ export class StraightEdgeRenderer extends EdgeRendererClass {
8386 edge . text ,
8487 Renderer . transformWorld2View ( midPoint ) ,
8588 Renderer . FONT_SIZE * Camera . currentScale ,
86- StageStyleManager . currentStyle . StageObjectBorderColor ,
89+ edgeColor ,
8790 ) ;
8891 const edgeTextRectangle = edge . textRectangle ;
8992
9093 CurveRenderer . renderSolidLine (
9194 Renderer . transformWorld2View ( edge . bodyLine . start ) ,
9295 Renderer . transformWorld2View ( edgeTextRectangle . getLineIntersectionPoint ( startHalf ) ) ,
93- StageStyleManager . currentStyle . StageObjectBorderColor ,
96+ edgeColor ,
9497 2 * Camera . currentScale ,
9598 ) ;
9699 CurveRenderer . renderSolidLine (
97100 Renderer . transformWorld2View ( edge . bodyLine . end ) ,
98101 Renderer . transformWorld2View ( edgeTextRectangle . getLineIntersectionPoint ( endHalf ) ) ,
99- StageStyleManager . currentStyle . StageObjectBorderColor ,
102+ edgeColor ,
100103 2 * Camera . currentScale ,
101104 ) ;
102105 }
@@ -116,41 +119,24 @@ export class StraightEdgeRenderer extends EdgeRendererClass {
116119 public getNormalStageSvg ( edge : LineEdge ) : React . ReactNode {
117120 let lineBody : React . ReactNode = < > </ > ;
118121 let textNode : React . ReactNode = < > </ > ;
122+ const edgeColor = edge . color . equals ( Color . Transparent )
123+ ? StageStyleManager . currentStyle . StageObjectBorderColor
124+ : edge . color ;
119125 if ( edge . text . trim ( ) === "" ) {
120126 // 没有文字的边
121- lineBody = SvgUtils . line (
122- edge . bodyLine . start ,
123- edge . bodyLine . end ,
124- StageStyleManager . currentStyle . StageObjectBorderColor ,
125- 2 ,
126- ) ;
127+ lineBody = SvgUtils . line ( edge . bodyLine . start , edge . bodyLine . end , edgeColor , 2 ) ;
127128 } else {
128129 // 有文字的边
129130 const midPoint = edge . bodyLine . midPoint ( ) ;
130131 const startHalf = new Line ( edge . bodyLine . start , midPoint ) ;
131132 const endHalf = new Line ( midPoint , edge . bodyLine . end ) ;
132133 const edgeTextRectangle = edge . textRectangle ;
133134
134- textNode = SvgUtils . textFromCenter (
135- edge . text ,
136- midPoint ,
137- Renderer . FONT_SIZE ,
138- StageStyleManager . currentStyle . StageObjectBorderColor ,
139- ) ;
135+ textNode = SvgUtils . textFromCenter ( edge . text , midPoint , Renderer . FONT_SIZE , edgeColor ) ;
140136 lineBody = (
141137 < >
142- { SvgUtils . line (
143- edge . bodyLine . start ,
144- edgeTextRectangle . getLineIntersectionPoint ( startHalf ) ,
145- StageStyleManager . currentStyle . StageObjectBorderColor ,
146- 2 ,
147- ) }
148- { SvgUtils . line (
149- edge . bodyLine . end ,
150- edgeTextRectangle . getLineIntersectionPoint ( endHalf ) ,
151- StageStyleManager . currentStyle . StageObjectBorderColor ,
152- 2 ,
153- ) }
138+ { SvgUtils . line ( edge . bodyLine . start , edgeTextRectangle . getLineIntersectionPoint ( startHalf ) , edgeColor , 2 ) }
139+ { SvgUtils . line ( edge . bodyLine . end , edgeTextRectangle . getLineIntersectionPoint ( endHalf ) , edgeColor , 2 ) }
154140 </ >
155141 ) ;
156142 }
@@ -163,6 +149,7 @@ export class StraightEdgeRenderer extends EdgeRendererClass {
163149 . subtract ( edge . source . collisionBox . getRectangle ( ) . getCenter ( ) )
164150 . normalize ( ) ,
165151 15 ,
152+ edgeColor ,
166153 ) ;
167154 return (
168155 < >
@@ -181,7 +168,10 @@ export class StraightEdgeRenderer extends EdgeRendererClass {
181168
182169 private renderArrowHead ( edge : LineEdge , direction : Vector , endPoint = edge . bodyLine . end . clone ( ) ) {
183170 const size = 15 ;
184- EdgeRenderer . renderArrowHead ( endPoint , direction , size ) ;
171+ const edgeColor = edge . color . equals ( Color . Transparent )
172+ ? StageStyleManager . currentStyle . StageObjectBorderColor
173+ : edge . color ;
174+ EdgeRenderer . renderArrowHead ( endPoint , direction , size , edgeColor ) ;
185175 }
186176
187177 public renderShiftingState ( edge : LineEdge ) : void {
@@ -191,19 +181,21 @@ export class StraightEdgeRenderer extends EdgeRendererClass {
191181 const endLine = new Line ( shiftingMidPoint , edge . target . collisionBox . getRectangle ( ) . center ) ;
192182 const startPoint = edge . source . collisionBox . getRectangle ( ) . getLineIntersectionPoint ( startLine ) ;
193183 const endPoint = edge . target . collisionBox . getRectangle ( ) . getLineIntersectionPoint ( endLine ) ;
194-
184+ const edgeColor = edge . color . equals ( Color . Transparent )
185+ ? StageStyleManager . currentStyle . StageObjectBorderColor
186+ : edge . color ;
195187 if ( edge . text . trim ( ) === "" ) {
196188 // 没有文字的边
197189 CurveRenderer . renderSolidLine (
198190 Renderer . transformWorld2View ( startPoint ) ,
199191 Renderer . transformWorld2View ( shiftingMidPoint ) ,
200- StageStyleManager . currentStyle . StageObjectBorderColor ,
192+ edgeColor ,
201193 2 * Camera . currentScale ,
202194 ) ;
203195 CurveRenderer . renderSolidLine (
204196 Renderer . transformWorld2View ( shiftingMidPoint ) ,
205197 Renderer . transformWorld2View ( endPoint ) ,
206- StageStyleManager . currentStyle . StageObjectBorderColor ,
198+ edgeColor ,
207199 2 * Camera . currentScale ,
208200 ) ;
209201 } else {
@@ -212,21 +204,21 @@ export class StraightEdgeRenderer extends EdgeRendererClass {
212204 edge . text ,
213205 Renderer . transformWorld2View ( shiftingMidPoint ) ,
214206 Renderer . FONT_SIZE * Camera . currentScale ,
215- StageStyleManager . currentStyle . StageObjectBorderColor ,
207+ edgeColor ,
216208 ) ;
217209 const edgeTextRectangle = edge . textRectangle ;
218210 const start2MidPoint = edgeTextRectangle . getLineIntersectionPoint ( startLine ) ;
219211 const mid2EndPoint = edgeTextRectangle . getLineIntersectionPoint ( endLine ) ;
220212 CurveRenderer . renderSolidLine (
221213 Renderer . transformWorld2View ( startPoint ) ,
222214 Renderer . transformWorld2View ( start2MidPoint ) ,
223- StageStyleManager . currentStyle . StageObjectBorderColor ,
215+ edgeColor ,
224216 2 * Camera . currentScale ,
225217 ) ;
226218 CurveRenderer . renderSolidLine (
227219 Renderer . transformWorld2View ( mid2EndPoint ) ,
228220 Renderer . transformWorld2View ( endPoint ) ,
229- StageStyleManager . currentStyle . StageObjectBorderColor ,
221+ edgeColor ,
230222 2 * Camera . currentScale ,
231223 ) ;
232224 }
@@ -239,12 +231,15 @@ export class StraightEdgeRenderer extends EdgeRendererClass {
239231
240232 public renderCycleState ( edge : LineEdge ) : void {
241233 // 自环
234+ const edgeColor = edge . color . equals ( Color . Transparent )
235+ ? StageStyleManager . currentStyle . StageObjectBorderColor
236+ : edge . color ;
242237 ShapeRenderer . renderArc (
243238 Renderer . transformWorld2View ( edge . target . collisionBox . getRectangle ( ) . location ) ,
244239 ( edge . target . collisionBox . getRectangle ( ) . size . y / 2 ) * Camera . currentScale ,
245240 Math . PI / 2 ,
246241 0 ,
247- StageStyleManager . currentStyle . StageObjectBorderColor ,
242+ edgeColor ,
248243 2 * Camera . currentScale ,
249244 ) ;
250245 // 画箭头
@@ -258,7 +253,7 @@ export class StraightEdgeRenderer extends EdgeRendererClass {
258253 edge . text ,
259254 Renderer . transformWorld2View ( edge . target . collisionBox . getRectangle ( ) . location . add ( new Vector ( 0 , - 50 ) ) ) ,
260255 Renderer . FONT_SIZE * Camera . currentScale ,
261- StageStyleManager . currentStyle . StageObjectBorderColor ,
256+ edgeColor ,
262257 ) ;
263258 }
264259
0 commit comments