|
static double | AreaOfIntersection (double existingConeRadius, double potentialConeRadius, double sqrDistance) |
| find the area of intersection of the potential circle with the existing circle, given square of distance between their centers More...
|
|
static double | RectRectIntersection (double centralExtentX, double centralExtentY, double minX, double maxX, double minY, double maxY) |
|
static double | sA (double r, double x, double y) |
|
static double OcclusionData.AreaOfIntersection |
( |
double |
existingConeRadius, |
|
|
double |
potentialConeRadius, |
|
|
double |
sqrDistance |
|
) |
| |
|
inlinestaticprotected |
find the area of intersection of the potential circle with the existing circle, given square of distance between their centers
- Parameters
-
existingConeRadius | the circle that will do the occluding |
potentialConeRadius | the circle to be occluded |
sqrDistance | square of the distance between their centers |
- Returns
- the overlap (0-1)
< distance is greater than sum of the radii - no intersection
< 0% overlap
< if the old circle is zero size, there's no intersection
< One fits within the other
< case 1: new circle fits entirely within old circle? full intersection
< case 2: old circle fits entirely within new circle?
< some % overlap
Just does a compareto on maximumDot (but without the call overhead of two calls)
- Parameters
-
- Returns
void OcclusionData.CreateCornerArray |
( |
| ) |
|
|
inlineprotected |
double OcclusionData.GetConvectionMultVerts |
( |
OcclusionCone |
cone | ) |
|
|
inline |
Returns the overlap area (of this part vs the passed cone) times the occlusion at that depth times the overall occlusion of the cone Uses circle-circle intersection method
- Parameters
-
cone | the cone to test against |
- Returns
- the convection multiplier based on overlap area
< cylinder radius doesn't change based on displacement
< test vs cylinder
< cylinder radius doesn't change based on displacement
< test vs cylinder
double OcclusionData.GetShockStats |
( |
OcclusionCone |
cone, |
|
|
ref double |
newTempMult, |
|
|
ref double |
newCoeffMult |
|
) |
| |
|
inline |
Returns the overlap area (of this part vs the passed cone) times the occlusion at that depth times the overall occlusion of the cone Uses circle-circle intersection method
- Parameters
-
cone | the cone to test against |
- Returns
- the convection multiplier based on overlap area
< catch the stack part where top is fully cube-occluded case
static double OcclusionData.RectRectIntersection |
( |
double |
centralExtentX, |
|
|
double |
centralExtentY, |
|
|
double |
minX, |
|
|
double |
maxX, |
|
|
double |
minY, |
|
|
double |
maxY |
|
) |
| |
|
inlinestaticprotected |
< FIXME should divisor being 0 mean we return 1 instead, since it is of no size so will be occluded?
static double OcclusionData.sA |
( |
double |
r, |
|
|
double |
x, |
|
|
double |
y |
|
) |
| |
|
inlinestaticprotected |
void OcclusionData.Update |
( |
Vector3 |
velocity, |
|
|
bool |
useDragArea = true |
|
) |
| |
|
inline |
< create the bounds based on the current weighted dragcubes
< calculate projected bounds center
< calculate center and extents in the plane of the normal
< displacement along the vector
< project vertex onto velocity plane
< test vertex ditance with velocity dot
< area calcs
Vector3 OcclusionData.boundsCenter |
Vector3 [] OcclusionData.boundsVertices = new Vector3[8] |
positions in projection-space (i.e. on a plane defined by the projection vector)
Vector2 OcclusionData.center |
double OcclusionData.centroidDot |
double OcclusionData.invFineness |
the Cd at the given angle (0-1); asin(invFineness) = halfangle of taper
double OcclusionData.maximumDot |
maximum, i.e. forward-most, extent of part on projection axis
double OcclusionData.maxWidthDepth |
Set by taking the displacement behind the forward-most-bit (on the projection axis)
Vector2 OcclusionData.minExtents |
double OcclusionData.minimumDot |
the part's minimum on the projection axis
double OcclusionData.projectedArea |
the cross-sectional area, from dragcubes
Vector3 OcclusionData.projectedCenter |
float [] OcclusionData.projectedDots = new float[8] |
double OcclusionData.projectedRadius |
the radius of (that area taken as a circle)
Vector3 [] OcclusionData.projectedVertices = new Vector3[8] |
The documentation for this class was generated from the following file: