#include <FractureToolsStructs.h>
Public Types | |
enum | Directions { UserDefined = 0, NegativeX = 1 << 0, PositiveX = 1 << 1, NegativeY = 1 << 2, PositiveY = 1 << 3, NegativeZ = 1 << 4, PositiveZ = 1 << 5, DirectionCount = 6 } |
enum | InstancingMode { DoNotInstance, InstanceCongruentChunks, InstanceAllChunks, InstanceModeCount } |
enum | CutoutChunkFracturingMethod { DoNotFractureCutoutChunks, SliceFractureCutoutChunks, VoronoiFractureCutoutChunks, CutoutChunkFracturingMethodCount } |
Public Member Functions | |
FractureCutoutDesc () | |
void | setToDefault () |
Public Attributes | |
unsigned | directions |
unsigned | directionOrder [DirectionCount] |
CutoutParameters | cutoutParameters [DirectionCount] |
physx::PxVec3 | userDefinedDirection |
physx::PxMat33 | userUVMapping |
CutoutParameters | userDefinedCutoutParameters |
unsigned | instancingMode |
bool | tileFractureMap |
physx::PxVec2 | uvTileSize |
bool | splitNonconvexRegions |
unsigned | chunkFracturingMethod |
bool | trimFaceCollisionHulls |
float | cutoutWidthScale [DirectionCount] |
float | cutoutHeightScale [DirectionCount] |
float | cutoutWidthOffset [DirectionCount] |
float | cutoutHeightOffset [DirectionCount] |
bool | cutoutWidthInvert [DirectionCount] |
bool | cutoutHeightInvert [DirectionCount] |
float | cutoutSizeX |
float | cutoutSizeY |
float | facetNormalMergeThresholdAngle |
Detailed Description
Descriptor for cutout-mode (chippable) fracturing.
Member Enumeration Documentation
Fracturing to apply to cutout chunks (if any), to break them down further. Current options include none, slice fracturing, and voronoi fracturing.
Enum describing the directions to apply cutout fracturing.
Enum describing the instancing mode.
Constructor & Destructor Documentation
FractureTools::FractureCutoutDesc::FractureCutoutDesc | ( | ) | [inline] |
Constructor sets defaults
Member Function Documentation
void FractureTools::FractureCutoutDesc::setToDefault | ( | ) | [inline] |
Set default values:
directions = 0; directionOrder[0..5] = {NegativeX, .., PositiveZ}; cutoutParameters[0..5].setToDefault(); userDefinedDirection= physx::PxVec3(0.0f); userUVMapping = physx::PxMat33(physx::PxIdentity); userDefinedCutoutParameters.setToDefault(); instancingMode = DoNotInstance; tileFractureMap = false; uvTileSize = (0.0f,0.0f) cutoutParameters[0..5].setToDefault(); cutoutWidthScale[0..5] = 1.0f; cutoutHeightScale[0..5] = 1.0f; cutoutWidthOffset[0..5] = 0.0f; cutoutHeightOffset[0..5] = 0.0f; cutoutWidthInvert[0..5] = false; cutoutHeightInvert[0..5] = false; cutoutSizeX = 1.0f; cutoutSizeY = 1.0f; facetNormalMergeThresholdAngle = 60.0f; splitNonconvexRegions = false; chunkFracturingMethod = DoNotFractureCutoutChunks; trimFaceCollisionHulls = true;
Member Data Documentation
If true, slice-mode fracturing will be applied to each cutout piece. The cutout function must be provided with a FractureSliceDesc as well to describe the slice parameters. These parameters, however, must be interpreted from the point of view of the cutout direction. That is, X and Y slice parameters will be used to slice along the cutout faces. The Z slice parameters will be used to slice into the cutout faces.
bool FractureTools::FractureCutoutDesc::cutoutHeightInvert[DirectionCount] |
If true, the cutout map will be flipped in the Y direction (along the various cutout directions).
float FractureTools::FractureCutoutDesc::cutoutHeightOffset[DirectionCount] |
Offset to apply to the Y coordinates of the cutout set (along the various cutout directions).
float FractureTools::FractureCutoutDesc::cutoutHeightScale[DirectionCount] |
Scale to apply to the Y coordinates of the cutout set (along the various cutout directions).
CutoutParameters FractureTools::FractureCutoutDesc::cutoutParameters[DirectionCount] |
Cutout parameters used for the various pre-defined cutout directions.
The interpreted size of the cutout map in the X direction
The interpreted size of the cutout map in the Y direction
bool FractureTools::FractureCutoutDesc::cutoutWidthInvert[DirectionCount] |
If true, the cutout map will be flipped in the X direction (along the various cutout directions).
float FractureTools::FractureCutoutDesc::cutoutWidthOffset[DirectionCount] |
Offset to apply to the X coordinates of the cutout set (along the various cutout directions).
float FractureTools::FractureCutoutDesc::cutoutWidthScale[DirectionCount] |
Scale to apply to the X coordinates of the cutout set (along the various cutout directions).
unsigned FractureTools::FractureCutoutDesc::directionOrder[DirectionCount] |
The order in which to apply each cutout direction. The direction in directionOrder[0] is applied first, in directionOrder[1], second, and so on.
The directions to apply cutout fracturing. (See the Directions enum.)
Threshold angle to merge (smoothe) vertex normals around cutout, in degrees. If the exterior angle between two facets of a cutout region no more than this, the vertex normals and tangents will be averaged at the facet interface. A value of 0 effectively disables smoothing. Default value = 60 degrees.
The instancing mode.
If true, non-convex cutouts will be split into convex ones.
If tileFractureMap is true, the map will be tiled across the destructible.
If true, the backface and cutouts will be trimmed if (a) backface noise is non-zero or (b) the collision hull is something other than the mesh convex hull ("Wrap Graphics Mesh"). Trimming is done by intersecting the face slice plane (without added noise) with the backface and cutouts. Default is true.
Cutout parameters used if user-defined (UV-based) cutout fracturing is selected by setting directions = 0
physx::PxVec3 FractureTools::FractureCutoutDesc::userDefinedDirection |
The cutout direction if directions = 0. When this is used, it must be have non-zero length (it will be normalized internally), and userUVMapping must be set (this may be done with AssetAuthoring::calculateCutoutUVMapping).
physx::PxMat33 FractureTools::FractureCutoutDesc::userUVMapping |
The UV mapping used if directons = 0 (along with userDefinedDirection).
physx::PxVec2 FractureTools::FractureCutoutDesc::uvTileSize |
The U,V width of the fracture map when instancing chunks
The documentation for this struct was generated from the following file:
Generated on Fri Dec 15 2017 13:58:36
Copyright © 2012-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved.