41 lines
947 B
Markdown
41 lines
947 B
Markdown
# Bounds::Encapsulate
|
||
|
||
```cpp
|
||
void Encapsulate(const Vector3& point)
|
||
void Encapsulate(const Bounds& bounds)
|
||
```
|
||
|
||
扩展包围盒以包含指定的点或另一个 Bounds。调用后,包围盒的 min/max 将被更新以确保目标被完全包含。
|
||
|
||
**参数:**
|
||
- `point` - 要包含的点
|
||
- `bounds` - 要包含的 Bounds
|
||
|
||
**返回:** `void`
|
||
|
||
**线程安全:** ✅
|
||
|
||
**复杂度:** O(1)
|
||
|
||
**示例:**
|
||
|
||
```cpp
|
||
#include <XCEngine/Math/Bounds.h>
|
||
#include <XCEngine/Math/Vector3.h>
|
||
|
||
using namespace XCEngine::Math;
|
||
|
||
Bounds bounds(Vector3(0.0f, 0.0f, 0.0f), Vector3(2.0f, 2.0f, 2.0f));
|
||
bounds.Encapsulate(Vector3(10.0f, 0.0f, 0.0f));
|
||
// bounds now spans from (-1,-1,-1) to (10,1,1)
|
||
|
||
Bounds other(Vector3(5.0f, 5.0f, 5.0f), Vector3(1.0f, 1.0f, 1.0f));
|
||
bounds.Encapsulate(other);
|
||
// bounds now contains both original bounds and 'other'
|
||
```
|
||
|
||
## 相关文档
|
||
|
||
- [Bounds](bounds.md) - 返回类总览
|
||
- [Expand](expand.md) - 均匀扩展包围盒
|