#include <DataFormats/GeometrySurface/interface/RectangularPlaneBounds.h>
Public Member Functions | |
virtual Bounds * | clone () const |
virtual bool | inside (const Local2DPoint &p, const LocalError &err, float scale=1.) const |
Determine if a 2D point is inside the bounds, taking error into account. | |
virtual bool | inside (const Local3DPoint &p, const LocalError &err, float scale=1.) const |
Determine if a point is inside the bounds, taking error into account. | |
virtual bool | inside (const Local3DPoint &p) const |
Determine if the point is inside the bounds. | |
virtual bool | inside (const Local2DPoint &p) const |
virtual float | length () const |
Lenght along local Y. | |
RectangularPlaneBounds (float w, float h, float t) | |
Construct from half width (extension in local X), half length (Y) and half thickness (Z). | |
virtual float | thickness () const |
Thickness of the volume in local Z. | |
virtual float | width () const |
Width along local X. | |
Private Attributes | |
float | halfLength |
float | halfThickness |
float | halfWidth |
Local Coordinate system coincides with center of the box with X axis along the width and Y axis along the lenght.
Definition at line 14 of file RectangularPlaneBounds.h.
RectangularPlaneBounds::RectangularPlaneBounds | ( | float | w, | |
float | h, | |||
float | t | |||
) |
Construct from half width (extension in local X), half length (Y) and half thickness (Z).
Definition at line 5 of file RectangularPlaneBounds.cc.
Referenced by clone().
00005 : 00006 halfWidth(w), halfLength(h), halfThickness(t) {}
Implements Bounds.
Definition at line 35 of file RectangularPlaneBounds.cc.
References RectangularPlaneBounds().
00035 { 00036 return new RectangularPlaneBounds(*this); 00037 }
bool RectangularPlaneBounds::inside | ( | const Local2DPoint & | p, | |
const LocalError & | err, | |||
float | scale = 1. | |||
) | const [virtual] |
Determine if a 2D point is inside the bounds, taking error into account.
Reimplemented from Bounds.
Definition at line 28 of file RectangularPlaneBounds.cc.
References halfLength, halfWidth, funct::sqrt(), PV2DBase< T, PVType, FrameType >::x(), LocalError::xx(), PV2DBase< T, PVType, FrameType >::y(), and LocalError::yy().
00029 { 00030 return 00031 (fabs(p.x()) < halfWidth || fabs(p.x()) < halfWidth + std::sqrt(err.xx())*scale) && 00032 (fabs(p.y()) < halfLength || fabs(p.y()) < halfLength + std::sqrt(err.yy())*scale); 00033 }
bool RectangularPlaneBounds::inside | ( | const Local3DPoint & | , | |
const LocalError & | , | |||
float | scale = 1. | |||
) | const [virtual] |
Determine if a point is inside the bounds, taking error into account.
Implements Bounds.
Definition at line 20 of file RectangularPlaneBounds.cc.
References halfLength, halfThickness, halfWidth, funct::sqrt(), PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), PV3DBase< T, PVType, FrameType >::y(), LocalError::yy(), and PV3DBase< T, PVType, FrameType >::z().
00021 { 00022 return 00023 fabs(p.z()) < halfThickness && 00024 (fabs(p.x()) < halfWidth || fabs(p.x()) < halfWidth + std::sqrt(err.xx())*scale) && 00025 (fabs(p.y()) < halfLength || fabs(p.y()) < halfLength + std::sqrt(err.yy())*scale); 00026 }
bool RectangularPlaneBounds::inside | ( | const Local3DPoint & | ) | const [virtual] |
Determine if the point is inside the bounds.
Implements Bounds.
Definition at line 13 of file RectangularPlaneBounds.cc.
References halfLength, halfThickness, halfWidth, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
00013 { 00014 return 00015 fabs(p.x()) < halfWidth && 00016 fabs(p.y()) < halfLength && 00017 fabs(p.z()) < halfThickness; 00018 }
bool RectangularPlaneBounds::inside | ( | const Local2DPoint & | p | ) | const [virtual] |
Reimplemented from Bounds.
Definition at line 9 of file RectangularPlaneBounds.cc.
References halfLength, halfWidth, PV2DBase< T, PVType, FrameType >::x(), and PV2DBase< T, PVType, FrameType >::y().
00009 { 00010 return fabs(p.x()) <= halfWidth && fabs(p.y()) <= halfLength; 00011 }
virtual float RectangularPlaneBounds::length | ( | ) | const [inline, virtual] |
Lenght along local Y.
Implements Bounds.
Definition at line 22 of file RectangularPlaneBounds.h.
References halfLength.
Referenced by VisRPCDigiTwig::update().
00022 { return 2*halfLength;}
virtual float RectangularPlaneBounds::thickness | ( | ) | const [inline, virtual] |
Thickness of the volume in local Z.
Implements Bounds.
Definition at line 26 of file RectangularPlaneBounds.h.
References halfThickness.
00026 { return 2*halfThickness;}
virtual float RectangularPlaneBounds::width | ( | ) | const [inline, virtual] |
Width along local X.
Implements Bounds.
Definition at line 24 of file RectangularPlaneBounds.h.
References halfWidth.
Referenced by VisRPCDigiTwig::update().
00024 { return 2*halfWidth;}
float RectangularPlaneBounds::halfLength [private] |
float RectangularPlaneBounds::halfThickness [private] |
float RectangularPlaneBounds::halfWidth [private] |