Main Page Class List Class Members

# Nv::Blast::BooleanEvaluator Class Reference

`#include <NvBlastExtAuthoringBooleanTool.h>`

List of all members.

## Public Member Functions
| BooleanEvaluator ()
Mesh * | createNewMesh ()
int32_t | isPointContainedInMesh (const Mesh *mesh, SpatialAccelerator *spAccel, const NvcVec3 &point)
int32_t | isPointContainedInMesh (const Mesh *mesh, const NvcVec3 &point)
void | performBoolean (const Mesh *meshA, const Mesh *meshB, BooleanConf mode)
void | performBoolean (const Mesh *meshA, const Mesh *meshB, SpatialAccelerator *spAccelA, SpatialAccelerator *spAccelB, BooleanConf mode)
void | performFastCutting (const Mesh *meshA, const Mesh *meshB, BooleanConf mode)
void | performFastCutting (const Mesh *meshA, const Mesh *meshB, SpatialAccelerator *spAccelA, SpatialAccelerator *spAccelB, BooleanConf mode)
void | reset ()
| ~BooleanEvaluator ()

## Detailed Description

Tool for performing boolean operations on polygonal meshes. Tool supports only closed meshes. Performing boolean on meshes with holes can lead to unexpected behavior, e.g. holes in result geometry.

## Constructor & Destructor Documentation

Nv::Blast::BooleanEvaluator::BooleanEvaluator | ( |  | ) |

Nv::Blast::BooleanEvaluator::~BooleanEvaluator | ( |  | ) |

## Member Function Documentation

Mesh* Nv::Blast::BooleanEvaluator::createNewMesh | ( |  | ) |

Generates result polygon mesh after performing boolean operation.

Returns:
  If not nullptr - result mesh geometry.

int32_t Nv::Blast::BooleanEvaluator::isPointContainedInMesh | ( | const Mesh * | mesh,
|  | SpatialAccelerator * | spAccel,
|  | const NvcVec3 & | point |
| ) |  |  |

Test whether point contained in mesh.

Parameters:

  `[in]` | mesh | Mesh geometry
  `[in]` | spAccel | Acceleration structure for mesh
  `[in]` | point | Point which should be tested

Returns:
  not 0 if point is inside of mesh

int32_t Nv::Blast::BooleanEvaluator::isPointContainedInMesh | ( | const Mesh * | mesh,
|  | const NvcVec3 & | point |
| ) |  |  |

Test whether point contained in mesh.

Parameters:

  `[in]` | mesh | Mesh geometry
  `[in]` | point | Point which should be tested

Returns:
  not 0 if point is inside of mesh

void Nv::Blast::BooleanEvaluator::performBoolean | ( | const Mesh * | meshA,
|  | const Mesh * | meshB,
|  | BooleanConf | mode |
| ) |  |  |

Perform boolean operation on two polygonal meshes (A and B).

Parameters:

  `[in]` | meshA | Mesh A
  `[in]` | meshB | Mesh B
  `[in]` | mode | Boolean operation type

void Nv::Blast::BooleanEvaluator::performBoolean | ( | const Mesh * | meshA,
|  | const Mesh * | meshB,
|  | SpatialAccelerator * | spAccelA,
|  | SpatialAccelerator * | spAccelB,
|  | BooleanConf | mode |
| ) |  |  |

Perform boolean operation on two polygonal meshes (A and B).

Parameters:

  `[in]` | meshA | Mesh A
  `[in]` | meshB | Mesh B
  `[in]` | spAccelA | Acceleration structure for mesh A
  `[in]` | spAccelB | Acceleration structure for mesh B
  `[in]` | mode | Boolean operation type

void Nv::Blast::BooleanEvaluator::performFastCutting | ( | const Mesh * | meshA,
|  | const Mesh * | meshB,
|  | BooleanConf | mode |
| ) |  |  |

Perform cutting of mesh with some large box, which represents cutting plane. This method skips part of intersetion computations, so should be used ONLY with cutting box, received from getBigBox(...) method from NvBlastExtAuthoringMesh.h. For cutting use only BOOLEAN_INTERSECTION or BOOLEAN_DIFFERENCE mode.

Parameters:

  `[in]` | meshA | Mesh A
  `[in]` | meshB | Cutting box
  `[in]` | mode | Boolean operation type

void Nv::Blast::BooleanEvaluator::performFastCutting | ( | const Mesh * | meshA,
|  | const Mesh * | meshB,
|  | SpatialAccelerator * | spAccelA,
|  | SpatialAccelerator * | spAccelB,
|  | BooleanConf | mode |
| ) |  |  |

Perform cutting of mesh with some large box, which represents cutting plane. This method skips part of intersetion computations, so should be used ONLY with cutting box, received from getBigBox(...) method from NvBlastExtAuthoringMesh.h. For cutting use only BOOLEAN_INTERSECTION or BOOLEAN_DIFFERENCE mode.

Parameters:

  `[in]` | meshA | Mesh A
  `[in]` | meshB | Cutting box
  `[in]` | spAccelA | Acceleration structure for mesh A
  `[in]` | spAccelB | Acceleration structure for cutting box
  `[in]` | mode | Boolean operation type

void Nv::Blast::BooleanEvaluator::reset | ( |  | ) |

Reset tool state.

The documentation for this class was generated from the following file:

- sdk/extensions/authoring/source/NvBlastExtAuthoringBooleanTool.h