178 const Int_t inaxis = 7;
183 Int_t puxmin = gPad->XtoAbsPixel( gPad->GetUxmin() );
184 Int_t puymin = gPad->YtoAbsPixel( gPad->GetUymin() );
185 Int_t puxmax = gPad->XtoAbsPixel( gPad->GetUxmax() );
186 Int_t puymax = gPad->YtoAbsPixel( gPad->GetUymax() );
189 if ( px < puxmin - inaxis )
return dist;
190 if ( py > puymin + inaxis )
return dist;
191 if ( px > puxmax + inaxis )
return dist;
192 if ( py < puymax - inaxis )
return dist;
198 if ( !view )
return dist;
200 Bool_t inPolygon =
true;
201 Int_t x1, y1, x2, y2, cx, cy;
202 Double_t Pndc[3], k, b, pb, cb;
205 cx = gPad->XtoAbsPixel( Pndc[0] );
206 cy = gPad->YtoAbsPixel( Pndc[1] );
211 for ( Int_t i = 0; i <
fN; i++ )
214 x1 = gPad->XtoAbsPixel( Pndc[0] );
215 y1 = gPad->YtoAbsPixel( Pndc[1] );
217 if ( i !=
fN - 1 ) { view->
WCtoNDC( &
fP[3 * ( i + 1 )], Pndc ); }
220 x2 = gPad->XtoAbsPixel( Pndc[0] );
221 y2 = gPad->YtoAbsPixel( Pndc[1] );
227 if ( ( px - x1 ) * ( cx - x1 ) <= 0 )
235 k = Double_t( y2 - y1 ) / ( x2 - x1 );
239 if ( ( pb - b ) * ( cb - b ) <= 0 )
247 if ( inPolygon ==
true )
388 Double_t
s = TMath::Sqrt( sx * sx + sy * sy + sz * sz );
394 for ( Int_t i = 0; i <
fN; ++i )
396 Double_t dot = (
fP[3 * i] -
C[0] ) * V[0] + (
fP[3 * i + 1] -
C[1] ) * V[1] +
397 (
fP[3 * i + 2] -
C[2] ) * V[2];
398 for ( Int_t j = 0; j < 3; ++j ) {
fP[3 * i + j] += dot * ( factor - 1 ) * V[j]; }