Open 3D Engine LmbrCentral Gem API Reference
24.09
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
|
Namespaces | |
PolygonPrismUtil | |
Small set of util functions for PolygonPrism. | |
Typedefs | |
using | AttachmentComponentRequestBus = AZ::EBus< AttachmentComponentRequests > |
using | AttachmentComponentNotificationBus = AZ::EBus< AttachmentComponentNotifications > |
using | SkeletalHierarchyRequestBus = AZ::EBus< SkeletalHierarchyRequests > |
using | AudioEnvironmentComponentRequestBus = AZ::EBus< AudioEnvironmentComponentRequests > |
using | AudioListenerComponentRequestBus = AZ::EBus< AudioListenerComponentRequests > |
using | AudioMultiPositionComponentRequestBus = AZ::EBus< AudioMultiPositionComponentRequests > |
using | AudioPreloadComponentRequestBus = AZ::EBus< AudioPreloadComponentRequests > |
using | AudioProxyComponentRequestBus = AZ::EBus< AudioProxyComponentRequests > |
using | AudioRtpcComponentRequestBus = AZ::EBus< AudioRtpcComponentRequests > |
using | AudioSwitchComponentRequestBus = AZ::EBus< AudioSwitchComponentRequests > |
using | AudioSystemComponentRequestBus = AZ::EBus< AudioSystemComponentRequests > |
using | AudioSystemComponentNotificationBus = AZ::EBus< AudioSystemComponentNotifications > |
using | AudioTriggerComponentRequestBus = AZ::EBus< AudioTriggerComponentRequests > |
using | BundlingSystemRequestBus = AZ::EBus< BundlingSystemRequests > |
typedef AZ::EBus< DependencyNotifications > | DependencyNotificationBus |
using | CapsuleGeometrySystemRequestBus = AZ::EBus< CapsuleGeometrySystemRequests > |
using | EditorTags = AZStd::vector< AZStd::string > |
using | EditorTagComponentRequestBus = AZ::EBus< EditorTagComponentRequests > |
using | RandomTimedSpawnerComponentRequestBus = AZ::EBus< RandomTimedSpawnerComponentRequests > |
using | SimpleStateComponentRequestBus = AZ::EBus< SimpleStateComponentRequests > |
using | SimpleStateComponentNotificationBus = AZ::EBus< SimpleStateComponentNotifications > |
using | SpawnerComponentRequestBus = AZ::EBus< SpawnerComponentRequests > |
using | SpawnerComponentNotificationBus = AZ::EBus< SpawnerComponentNotifications > |
using | Tag = AZ::Crc32 |
using | Tags = AZStd::unordered_set< Tag > |
using | TagGlobalRequestBus = AZ::EBus< TagGlobalRequests > |
using | TagGlobalNotificationBus = AZ::EBus< TagGlobalNotifications > |
using | TagComponentRequestBus = AZ::EBus< TagComponentRequests > |
using | TagComponentNotificationsBus = AZ::EBus< TagComponentNotifications > |
using | BoxShapeComponentRequestsBus = AZ::EBus< BoxShapeComponentRequests > |
using | CapsuleShapeComponentRequestsBus = AZ::EBus< CapsuleShapeComponentRequests > |
using | CompoundShapeComponentRequestsBus = AZ::EBus< CompoundShapeComponentRequests > |
using | CompoundShapeComponentHierarchyRequestsBus = AZ::EBus< CompoundShapeComponentHierarchyRequests > |
using | CylinderShapeComponentRequestsBus = AZ::EBus< CylinderShapeComponentRequests > |
using | DiskShapeComponentRequestBus = AZ::EBus< DiskShapeComponentRequests > |
using | EditorPolygonPrismShapeComponentRequestsBus = AZ::EBus< EditorPolygonPrismShapeComponentRequests > |
Type to inherit to provide EditorPolygonPrismShapeComponentRequests. | |
using | EditorShapeComponentRequestsBus = AZ::EBus< EditorShapeComponentRequests > |
using | EditorSplineComponentNotificationBus = AZ::EBus< EditorSplineComponentNotifications > |
Type to inherit to provide EditorPolygonPrismShapeComponentRequests. | |
using | EditorTubeShapeComponentRequestBus = AZ::EBus< EditorTubeShapeComponentRequests > |
Type to inherit to provide EditorTubeShapeComponentRequests. | |
using | EditorTubeShapeComponentModeRequestBus = AZ::EBus< EditorTubeShapeComponentModeRequests > |
Type to inherit to provide EditorTubeShapeComponentRequests. | |
using | PolygonPrismShapeComponentRequestBus = AZ::EBus< PolygonPrismShapeComponentRequests, AZ::ComponentBus > |
Bus to service the Polygon Prism Shape component event group. | |
using | PolygonPrismShapeComponentNotificationBus = AZ::EBus< PolygonPrismShapeComponentNotification > |
Bus to service the polygon prism shape component notification group. | |
using | QuadShapeComponentRequestBus = AZ::EBus< QuadShapeComponentRequests > |
using | ReferenceShapeRequestBus = AZ::EBus< ReferenceShapeRequests > |
using | ShapeComponentRequestsBus = AZ::EBus< ShapeComponentRequests > |
using | ShapeComponentNotificationsBus = AZ::EBus< ShapeComponentNotifications > |
using | SphereShapeConfiguration = SphereShapeConfig |
using | SphereShapeComponentRequestsBus = AZ::EBus< SphereShapeComponentRequests > |
using | SplineAttributeNotificationBus = AZ::EBus< SplineAttributeNotifications > |
using | SplineComponentRequestBus = AZ::EBus< SplineComponentRequests, AZ::ComponentBus > |
Bus to service the Spline component event group. | |
using | SplineComponentNotificationBus = AZ::EBus< SplineComponentNotification > |
Bus to service the spline component notification group. | |
using | TubeShapeComponentRequestsBus = AZ::EBus< TubeShapeComponentRequests > |
Bus to service the TubeShapeComponent event group. | |
using | LookAtComponentRequestBus = AZ::EBus< LookAtComponentRequests > |
using | LookAtComponentNotificationBus = AZ::EBus< LookAtComponentNotifications > |
Enumerations | |
enum class | InvalidateShapeCacheReason { TransformChange , ShapeChange } |
Reason shape cache should be recalculated. More... | |
enum class | SplineType { LINEAR = 0 , BEZIER , CATMULL_ROM } |
Functions | |
template<typename TComponent , typename TConfiguration , int TVersion> | |
bool | EditorWrappedComponentBaseVersionConverter (AZ::SerializeContext &context, AZ::SerializeContext::DataElementNode &classElement) |
template<typename T > | |
void | GetProvidedServicesHelper (AZ::ComponentDescriptor::DependencyArrayType &, const AZStd::false_type &) |
template<typename T > | |
void | GetProvidedServicesHelper (AZ::ComponentDescriptor::DependencyArrayType &services, const AZStd::true_type &) |
template<typename T > | |
void | GetRequiredServicesHelper (AZ::ComponentDescriptor::DependencyArrayType &, const AZStd::false_type &) |
template<typename T > | |
void | GetRequiredServicesHelper (AZ::ComponentDescriptor::DependencyArrayType &services, const AZStd::true_type &) |
template<typename T > | |
void | GetIncompatibleServicesHelper (AZ::ComponentDescriptor::DependencyArrayType &, const AZStd::false_type &) |
template<typename T > | |
void | GetIncompatibleServicesHelper (AZ::ComponentDescriptor::DependencyArrayType &services, const AZStd::true_type &) |
template<typename T > | |
void | GetDependentServicesHelper (AZ::ComponentDescriptor::DependencyArrayType &, const AZStd::false_type &) |
template<typename T > | |
void | GetDependentServicesHelper (AZ::ComponentDescriptor::DependencyArrayType &services, const AZStd::true_type &) |
void | DrawBoxShape (const ShapeDrawParams &shapeDrawParams, const BoxShapeConfig &boxShapeConfig, AzFramework::DebugDisplayRequests &debugDisplay, const AZ::Vector3 &nonUniformScale=AZ::Vector3::CreateOne()) |
void | DrawCylinderShape (const ShapeDrawParams &shapeDrawParams, const CylinderShapeConfig &cylinderShapeConfig, AzFramework::DebugDisplayRequests &debugDisplay) |
void | DrawDiskShape (const ShapeDrawParams &shapeDrawParams, const DiskShapeConfig &diskShapeConfig, AzFramework::DebugDisplayRequests &debugDisplay) |
AZStd::vector< EditorTubeShapeComponentMode::TubeManipulatorState > | GenerateTubeManipulatorStates (const AZ::Spline &spline) |
void | GeneratePolygonPrismMesh (const AZStd::vector< AZ::Vector2 > &vertices, float height, const AZ::Vector3 &nonUniformScale, PolygonPrismMesh &polygonPrismMeshOut) |
Generate mesh used for rendering top and bottom of PolygonPrism shape. | |
void | DrawPolygonPrismShape (const ShapeDrawParams &shapeDrawParams, const PolygonPrismMesh &polygonPrismMesh, AzFramework::DebugDisplayRequests &debugDisplay) |
void | DrawQuadShape (const ShapeDrawParams &shapeDrawParams, const QuadShapeConfig &quadShapeConfig, AzFramework::DebugDisplayRequests &debugDisplay, const AZ::Vector3 &nonUniformScale=AZ::Vector3::CreateOne()) |
template<typename CanDraw , typename DrawShape > | |
void | DisplayShape (AzFramework::DebugDisplayRequests &debugDisplay, CanDraw &&canDraw, DrawShape &&drawShape, const AZ::Transform &worldFromLocal) |
Helper function to be used when drawing debug shapes - called from DisplayEntity on the EntityDebugDisplayEventBus. More... | |
AZ::u32 * | WriteTriangle (AZ::u32 a, AZ::u32 b, AZ::u32 c, AZ::u32 *indices) |
Writes 3 indices (1 tri) to the buffer and returns a pointer to the next index. | |
AZ::Vector3 * | WriteVertex (const AZ::Vector3 &vertex, AZ::Vector3 *vertices) |
Writes a vertex to the buffer and returns a pointer to the next vertex. | |
void | DrawShape (AzFramework::DebugDisplayRequests &debugDisplay, const ShapeDrawParams &shapeDrawParams, const ShapeMesh &shapeMesh, const AZ::Vector3 &shapeOffset=AZ::Vector3::CreateZero()) |
Draw a ShapeMesh (previously generated vertices, indices and lines). | |
AZStd::vector< AZ::Vector3 > | GenerateTriangles (AZStd::vector< AZ::Vector2 > vertices) |
bool | ClockwiseOrder (const AZStd::vector< AZ::Vector2 > &vertices) |
void | DrawSphereShape (const ShapeDrawParams &shapeDrawParams, const SphereShapeConfig &sphereShapeConfig, AzFramework::DebugDisplayRequests &debugDisplay) |
void | GenerateTubeMesh (const AZ::SplinePtr &spline, const SplineAttribute< float > &variableRadius, float radius, AZ::u32 capSegments, AZ::u32 sides, AZStd::vector< AZ::Vector3 > &vertexBufferOut, AZStd::vector< AZ::u32 > &indexBufferOut, AZStd::vector< AZ::Vector3 > &lineBufferOut) |
Generates a Tube mesh with filled surface and outlines. | |
Variables | |
constexpr AZ::TypeId | EditorRandomTimedSpawnerComponentTypeId { "{6D3E32F0-1971-416B-86DE-4B5EB6E2139E}" } |
constexpr AZ::TypeId | RandomTimedSpawnerComponentTypeId { "{8EE9EC2C-1CC9-4F88-968F-CFD20C380694}" } |
constexpr AZ::TypeId | SpawnerComponentTypeId { "{8022A627-DD76-5432-C75A-7234AC2798C1}" } |
constexpr AZ::TypeId | DeprecatedSpawnerComponentTypeId { "{8022A627-FA7D-4516-A155-657A0927A3CA}" } |
constexpr AZ::TypeId | BoxShapeComponentTypeId { "{5EDF4B9E-0D3D-40B8-8C91-5142BCFC30A6}" } |
Type ID for the BoxShapeComponent. | |
constexpr AZ::TypeId | EditorBoxShapeComponentTypeId { "{2ADD9043-48E8-4263-859A-72E0024372BF}" } |
Type ID for the EditorBoxShapeComponent. | |
constexpr AZ::TypeId | BoxShapeConfigTypeId { "{F034FBA2-AC2F-4E66-8152-14DFB90D6283}" } |
Type ID for the BoxShapeConfig. | |
constexpr AZ::TypeId | AxisAlignedBoxShapeComponentTypeId { "{641D817E-1BC6-406A-BBB2-218541808E45}" } |
Type ID for the AxisAlignedBoxShapeComponent. | |
constexpr AZ::TypeId | EditorAxisAlignedBoxShapeComponentTypeId { "{8C027DF6-E157-4159-9BF8-F1B925466F1F}" } |
Type ID for the EditorAxisAlignedBoxShapeComponent. | |
constexpr AZ::TypeId | CapsuleShapeComponentTypeId { "{967EC13D-364D-4696-AB5C-C00CC05A2305}" } |
Type ID for CapsuleShapeComponent. | |
constexpr AZ::TypeId | EditorCapsuleShapeComponentTypeId { "{06B6C9BE-3648-4DA2-9892-755636EF6E19}" } |
Type ID for EditorCapsuleShapeComponent. | |
constexpr AZ::TypeId | EditorCompoundShapeComponentTypeId { "{837AA0DF-9C14-4311-8410-E7983E1F4B8D}" } |
constexpr AZ::TypeId | CylinderShapeComponentTypeId { "{B0C6AA97-E754-4E33-8D32-33E267DB622F}" } |
Type ID of CylinderShapeComponent. | |
constexpr AZ::TypeId | EditorCylinderShapeComponentTypeId { "{D5FC4745-3C75-47D9-8C10-9F89502487DE}" } |
Type ID of EditorCylinderShapeComponent. | |
constexpr AZ::TypeId | DiskShapeComponentTypeId { "{A3E6BE21-29B7-46AA-8B0E-1D8372DADA3F}" } |
Type ID for DiskShapeComponent. | |
constexpr AZ::TypeId | EditorDiskShapeComponentTypeId { "{5CD2459F-9D51-4FA3-9D35-D1A2C65ED272}" } |
Type ID for EditorDiskShapeComponent. | |
constexpr AZ::TypeId | EditorPolygonPrismShapeComponentTypeId { "{5368F204-FE6D-45C0-9A4F-0F933D90A785}" } |
constexpr AZ::TypeId | QuadShapeComponentTypeId { "{A2205305-1087-4D34-A23F-2A68D6CA333A}" } |
Type ID for QuadShapeComponent. | |
constexpr AZ::TypeId | EditorQuadShapeComponentTypeId { "{E8E60770-40E9-426F-B134-3964BF8BDD84}" } |
Type ID for EditorQuadShapeComponent. | |
constexpr AZ::TypeId | EditorReferenceShapeComponentTypeId { "{21BC79CA-C2F4-428F-AF2E-B76E233D4254}" } |
constexpr AZ::TypeId | SphereShapeComponentTypeId { "{E24CBFF0-2531-4F8D-A8AB-47AF4D54BCD2}" } |
Type ID for SphereShapeComponent. | |
constexpr AZ::TypeId | EditorSphereShapeComponentTypeId { "{2EA56CBF-63C8-41D9-84D5-0EC2BECE748E}" } |
Type ID for EditorSphereShapeComponent. | |
constexpr AZ::TypeId | TubeShapeComponentTypeId { "{9C39E3A4-EEE8-4047-ADE2-376A1BFCB3D1}" } |
Type ID for TubeShapeComponent. | |
constexpr AZ::TypeId | EditorTubeShapeComponentTypeId { "{F969BE9D-08E3-4E6B-B16D-E73E1F3C740A}" } |
Type ID for EditorTubeShapeComponent. | |
const AZ::u32 | g_capsuleDebugShapeSides |
const AZ::u32 | g_capsuleDebugShapeCapSegments |
constexpr AZ::TypeId | ReferenceShapeComponentTypeId { "{EB9C6DC1-900F-4CE8-AA00-81361127063A}" } |
const ShapeDrawParams | g_defaultShapeDrawParams |
LmbrCentral ties together systems from CryEngine and systems from the AZ framework.
using LmbrCentral::EditorTags = typedef AZStd::vector<AZStd::string> |
In the editor, the Tag Component consists of strings, and thus if you want to manipulate tags at editor time instead of runtime, you need to use this bus instead (which sets/gets/adds/removes strings) note that the Editor Tag Component will still send the appropriate Tag Added / Tag Removed / other similar messages using the underlying CRC engine system, so you can use that to query tags still.
using LmbrCentral::SphereShapeConfiguration = typedef SphereShapeConfig |
|
strong |
bool LmbrCentral::ClockwiseOrder | ( | const AZStd::vector< AZ::Vector2 > & | vertices | ) |
Determine if a list of ordered vertices have clockwise winding order. http://blog.element84.com/polygon-winding.html
void LmbrCentral::DisplayShape | ( | AzFramework::DebugDisplayRequests & | debugDisplay, |
CanDraw && | canDraw, | ||
DrawShape && | drawShape, | ||
const AZ::Transform & | worldFromLocal | ||
) |
Helper function to be used when drawing debug shapes - called from DisplayEntity on the EntityDebugDisplayEventBus.
handled | Did we display anything. |
canDraw | Functor to decide should the shape be drawn or not. |
drawShape | Functor to draw a specific shape (box/capsule/sphere etc). |
worldFromLocal | Transform of object in world space, push to matrix stack and render shape in local space. |
AZStd::vector<AZ::Vector3> LmbrCentral::GenerateTriangles | ( | AZStd::vector< AZ::Vector2 > | vertices | ) |
Return a vector of vertices representing a list of triangles to render (CCW). This is implemented using the Ear Clipping method: (https://www.gamedev.net/articles/programming/graphics/polygon-triangulation-r3334/)
vertices | List of vertices to process (pass by value as vertices is modified inside the function so must be copied). |
AZStd::vector<EditorTubeShapeComponentMode::TubeManipulatorState> LmbrCentral::GenerateTubeManipulatorStates | ( | const AZ::Spline & | spline | ) |
For a given Tube + Spline combo, generate data required for each manipulator at each vertex required for modifying the tube.
|
inlineconstexpr |
Type ID for the EditorCompoundShapeComponent
|
inlineconstexpr |
Type ID for the EditorPolygonPrismShapeComponent
const ShapeDrawParams LmbrCentral::g_defaultShapeDrawParams |