diff options
| author | Sheikh Dawood <[email protected]> | 2018-05-25 09:54:38 -0500 |
|---|---|---|
| committer | Sheikh Dawood <[email protected]> | 2018-05-25 09:54:38 -0500 |
| commit | b99b3783cd7e3fb1bb0a07dc472b2fc000c4cdc1 (patch) | |
| tree | de67d7adc7cc66d44c3e0a399d94d1db6bcebd0c /PhysX_3.4/Source/PhysXMetaData/core | |
| parent | PhysX 3.4, APEX 1.4 patch release @23933511 (diff) | |
| download | physx-3.4-b99b3783cd7e3fb1bb0a07dc472b2fc000c4cdc1.tar.xz physx-3.4-b99b3783cd7e3fb1bb0a07dc472b2fc000c4cdc1.zip | |
PhysX 3.4, APEX 1.4 patch release @24214033v3.4.2
Diffstat (limited to 'PhysX_3.4/Source/PhysXMetaData/core')
11 files changed, 67 insertions, 40 deletions
diff --git a/PhysX_3.4/Source/PhysXMetaData/core/include/PvdMetaDataDefineProperties.h b/PhysX_3.4/Source/PhysXMetaData/core/include/PvdMetaDataDefineProperties.h index 5409adf9..d63b37eb 100644 --- a/PhysX_3.4/Source/PhysXMetaData/core/include/PvdMetaDataDefineProperties.h +++ b/PhysX_3.4/Source/PhysXMetaData/core/include/PvdMetaDataDefineProperties.h @@ -23,7 +23,7 @@ // components in life support devices or systems without express written approval of // NVIDIA Corporation. // -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/PhysX_3.4/Source/PhysXMetaData/core/include/PvdMetaDataExtensions.h b/PhysX_3.4/Source/PhysXMetaData/core/include/PvdMetaDataExtensions.h index 1200ef0c..5abcc928 100644 --- a/PhysX_3.4/Source/PhysXMetaData/core/include/PvdMetaDataExtensions.h +++ b/PhysX_3.4/Source/PhysXMetaData/core/include/PvdMetaDataExtensions.h @@ -23,7 +23,7 @@ // components in life support devices or systems without express written approval of // NVIDIA Corporation. // -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/PhysX_3.4/Source/PhysXMetaData/core/include/PvdMetaDataPropertyVisitor.h b/PhysX_3.4/Source/PhysXMetaData/core/include/PvdMetaDataPropertyVisitor.h index bdf037dd..b97000f7 100644 --- a/PhysX_3.4/Source/PhysXMetaData/core/include/PvdMetaDataPropertyVisitor.h +++ b/PhysX_3.4/Source/PhysXMetaData/core/include/PvdMetaDataPropertyVisitor.h @@ -23,7 +23,7 @@ // components in life support devices or systems without express written approval of // NVIDIA Corporation. // -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/PhysX_3.4/Source/PhysXMetaData/core/include/PxAutoGeneratedMetaDataObjectNames.h b/PhysX_3.4/Source/PhysXMetaData/core/include/PxAutoGeneratedMetaDataObjectNames.h index 9cabccef..88758fb8 100644 --- a/PhysX_3.4/Source/PhysXMetaData/core/include/PxAutoGeneratedMetaDataObjectNames.h +++ b/PhysX_3.4/Source/PhysXMetaData/core/include/PxAutoGeneratedMetaDataObjectNames.h @@ -23,7 +23,7 @@ // components in life support devices or systems without express written approval of // NVIDIA Corporation. // -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. @@ -376,6 +376,8 @@ PxSceneDesc_FilterShaderData, PxSceneDesc_FilterShaderDataSize, PxSceneDesc_FilterShader, PxSceneDesc_FilterCallback, +PxSceneDesc_KineKineFilteringMode, +PxSceneDesc_StaticKineFilteringMode, PxSceneDesc_BroadPhaseType, PxSceneDesc_BroadPhaseCallback, PxSceneDesc_Limits, diff --git a/PhysX_3.4/Source/PhysXMetaData/core/include/PxAutoGeneratedMetaDataObjects.h b/PhysX_3.4/Source/PhysXMetaData/core/include/PxAutoGeneratedMetaDataObjects.h index 7c11f9c6..7e8f94cb 100644 --- a/PhysX_3.4/Source/PhysXMetaData/core/include/PxAutoGeneratedMetaDataObjects.h +++ b/PhysX_3.4/Source/PhysXMetaData/core/include/PxAutoGeneratedMetaDataObjects.h @@ -23,7 +23,7 @@ // components in life support devices or systems without express written approval of // NVIDIA Corporation. // -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. @@ -2966,6 +2966,15 @@ template<> struct PxEnumTraits< physx::PxBroadPhaseType::Enum > { PxEnumTraits() const PxgDynamicsMemoryConfigGeneratedInfo* getInfo() { return &Info; } }; + static PxU32ToName g_physx__PxPairFilteringMode__EnumConversion[] = { + { "eKEEP", static_cast<PxU32>( physx::PxPairFilteringMode::eKEEP ) }, + { "eSUPPRESS", static_cast<PxU32>( physx::PxPairFilteringMode::eSUPPRESS ) }, + { "eKILL", static_cast<PxU32>( physx::PxPairFilteringMode::eKILL ) }, + { "eDEFAULT", static_cast<PxU32>( physx::PxPairFilteringMode::eDEFAULT ) }, + { NULL, 0 } + }; + +template<> struct PxEnumTraits< physx::PxPairFilteringMode::Enum > { PxEnumTraits() : NameConversion( g_physx__PxPairFilteringMode__EnumConversion ) {} const PxU32ToName* NameConversion; }; class PxSceneDesc; struct PxSceneDescGeneratedValues { @@ -2977,6 +2986,8 @@ template<> struct PxEnumTraits< physx::PxBroadPhaseType::Enum > { PxEnumTraits() PxU32 FilterShaderDataSize; PxSimulationFilterShader FilterShader; PxSimulationFilterCallback * FilterCallback; + PxPairFilteringMode::Enum KineKineFilteringMode; + PxPairFilteringMode::Enum StaticKineFilteringMode; PxBroadPhaseType::Enum BroadPhaseType; PxBroadPhaseCallback * BroadPhaseCallback; PxSceneLimits Limits; @@ -3014,6 +3025,8 @@ template<> struct PxEnumTraits< physx::PxBroadPhaseType::Enum > { PxEnumTraits() DEFINE_PROPERTY_TO_VALUE_STRUCT_MAP( PxSceneDesc, FilterShaderDataSize, PxSceneDescGeneratedValues) DEFINE_PROPERTY_TO_VALUE_STRUCT_MAP( PxSceneDesc, FilterShader, PxSceneDescGeneratedValues) DEFINE_PROPERTY_TO_VALUE_STRUCT_MAP( PxSceneDesc, FilterCallback, PxSceneDescGeneratedValues) + DEFINE_PROPERTY_TO_VALUE_STRUCT_MAP( PxSceneDesc, KineKineFilteringMode, PxSceneDescGeneratedValues) + DEFINE_PROPERTY_TO_VALUE_STRUCT_MAP( PxSceneDesc, StaticKineFilteringMode, PxSceneDescGeneratedValues) DEFINE_PROPERTY_TO_VALUE_STRUCT_MAP( PxSceneDesc, BroadPhaseType, PxSceneDescGeneratedValues) DEFINE_PROPERTY_TO_VALUE_STRUCT_MAP( PxSceneDesc, BroadPhaseCallback, PxSceneDescGeneratedValues) DEFINE_PROPERTY_TO_VALUE_STRUCT_MAP( PxSceneDesc, Limits, PxSceneDescGeneratedValues) @@ -3054,6 +3067,8 @@ template<> struct PxEnumTraits< physx::PxBroadPhaseType::Enum > { PxEnumTraits() PxPropertyInfo<PX_PROPERTY_INFO_NAME::PxSceneDesc_FilterShaderDataSize, PxSceneDesc, PxU32, PxU32 > FilterShaderDataSize; PxPropertyInfo<PX_PROPERTY_INFO_NAME::PxSceneDesc_FilterShader, PxSceneDesc, PxSimulationFilterShader, PxSimulationFilterShader > FilterShader; PxPropertyInfo<PX_PROPERTY_INFO_NAME::PxSceneDesc_FilterCallback, PxSceneDesc, PxSimulationFilterCallback *, PxSimulationFilterCallback * > FilterCallback; + PxPropertyInfo<PX_PROPERTY_INFO_NAME::PxSceneDesc_KineKineFilteringMode, PxSceneDesc, PxPairFilteringMode::Enum, PxPairFilteringMode::Enum > KineKineFilteringMode; + PxPropertyInfo<PX_PROPERTY_INFO_NAME::PxSceneDesc_StaticKineFilteringMode, PxSceneDesc, PxPairFilteringMode::Enum, PxPairFilteringMode::Enum > StaticKineFilteringMode; PxPropertyInfo<PX_PROPERTY_INFO_NAME::PxSceneDesc_BroadPhaseType, PxSceneDesc, PxBroadPhaseType::Enum, PxBroadPhaseType::Enum > BroadPhaseType; PxPropertyInfo<PX_PROPERTY_INFO_NAME::PxSceneDesc_BroadPhaseCallback, PxSceneDesc, PxBroadPhaseCallback *, PxBroadPhaseCallback * > BroadPhaseCallback; PxPropertyInfo<PX_PROPERTY_INFO_NAME::PxSceneDesc_Limits, PxSceneDesc, PxSceneLimits, PxSceneLimits > Limits; @@ -3100,7 +3115,7 @@ template<> struct PxEnumTraits< physx::PxBroadPhaseType::Enum > { PxEnumTraits() PX_UNUSED(inStartIndex); return inStartIndex; } - static PxU32 instancePropertyCount() { return 36; } + static PxU32 instancePropertyCount() { return 38; } static PxU32 totalPropertyCount() { return instancePropertyCount(); } template<typename TOperator> PxU32 visitInstanceProperties( TOperator inOperator, PxU32 inStartIndex = 0 ) const @@ -3116,34 +3131,36 @@ template<> struct PxEnumTraits< physx::PxBroadPhaseType::Enum > { PxEnumTraits() inOperator( FilterShaderDataSize, inStartIndex + 6 );; inOperator( FilterShader, inStartIndex + 7 );; inOperator( FilterCallback, inStartIndex + 8 );; - inOperator( BroadPhaseType, inStartIndex + 9 );; - inOperator( BroadPhaseCallback, inStartIndex + 10 );; - inOperator( Limits, inStartIndex + 11 );; - inOperator( FrictionType, inStartIndex + 12 );; - inOperator( BounceThresholdVelocity, inStartIndex + 13 );; - inOperator( FrictionOffsetThreshold, inStartIndex + 14 );; - inOperator( CcdMaxSeparation, inStartIndex + 15 );; - inOperator( SolverOffsetSlop, inStartIndex + 16 );; - inOperator( Flags, inStartIndex + 17 );; - inOperator( CpuDispatcher, inStartIndex + 18 );; - inOperator( GpuDispatcher, inStartIndex + 19 );; - inOperator( StaticStructure, inStartIndex + 20 );; - inOperator( DynamicStructure, inStartIndex + 21 );; - inOperator( DynamicTreeRebuildRateHint, inStartIndex + 22 );; - inOperator( SceneQueryUpdateMode, inStartIndex + 23 );; - inOperator( UserData, inStartIndex + 24 );; - inOperator( SolverBatchSize, inStartIndex + 25 );; - inOperator( NbContactDataBlocks, inStartIndex + 26 );; - inOperator( MaxNbContactDataBlocks, inStartIndex + 27 );; - inOperator( MaxBiasCoefficient, inStartIndex + 28 );; - inOperator( ContactReportStreamBufferSize, inStartIndex + 29 );; - inOperator( CcdMaxPasses, inStartIndex + 30 );; - inOperator( WakeCounterResetValue, inStartIndex + 31 );; - inOperator( SanityBounds, inStartIndex + 32 );; - inOperator( GpuDynamicsConfig, inStartIndex + 33 );; - inOperator( GpuMaxNumPartitions, inStartIndex + 34 );; - inOperator( GpuComputeVersion, inStartIndex + 35 );; - return 36 + inStartIndex; + inOperator( KineKineFilteringMode, inStartIndex + 9 );; + inOperator( StaticKineFilteringMode, inStartIndex + 10 );; + inOperator( BroadPhaseType, inStartIndex + 11 );; + inOperator( BroadPhaseCallback, inStartIndex + 12 );; + inOperator( Limits, inStartIndex + 13 );; + inOperator( FrictionType, inStartIndex + 14 );; + inOperator( BounceThresholdVelocity, inStartIndex + 15 );; + inOperator( FrictionOffsetThreshold, inStartIndex + 16 );; + inOperator( CcdMaxSeparation, inStartIndex + 17 );; + inOperator( SolverOffsetSlop, inStartIndex + 18 );; + inOperator( Flags, inStartIndex + 19 );; + inOperator( CpuDispatcher, inStartIndex + 20 );; + inOperator( GpuDispatcher, inStartIndex + 21 );; + inOperator( StaticStructure, inStartIndex + 22 );; + inOperator( DynamicStructure, inStartIndex + 23 );; + inOperator( DynamicTreeRebuildRateHint, inStartIndex + 24 );; + inOperator( SceneQueryUpdateMode, inStartIndex + 25 );; + inOperator( UserData, inStartIndex + 26 );; + inOperator( SolverBatchSize, inStartIndex + 27 );; + inOperator( NbContactDataBlocks, inStartIndex + 28 );; + inOperator( MaxNbContactDataBlocks, inStartIndex + 29 );; + inOperator( MaxBiasCoefficient, inStartIndex + 30 );; + inOperator( ContactReportStreamBufferSize, inStartIndex + 31 );; + inOperator( CcdMaxPasses, inStartIndex + 32 );; + inOperator( WakeCounterResetValue, inStartIndex + 33 );; + inOperator( SanityBounds, inStartIndex + 34 );; + inOperator( GpuDynamicsConfig, inStartIndex + 35 );; + inOperator( GpuMaxNumPartitions, inStartIndex + 36 );; + inOperator( GpuComputeVersion, inStartIndex + 37 );; + return 38 + inStartIndex; } }; template<> struct PxClassInfoTraits<PxSceneDesc> diff --git a/PhysX_3.4/Source/PhysXMetaData/core/include/PxMetaDataCompare.h b/PhysX_3.4/Source/PhysXMetaData/core/include/PxMetaDataCompare.h index 2ac4839d..869db43c 100644 --- a/PhysX_3.4/Source/PhysXMetaData/core/include/PxMetaDataCompare.h +++ b/PhysX_3.4/Source/PhysXMetaData/core/include/PxMetaDataCompare.h @@ -23,7 +23,7 @@ // components in life support devices or systems without express written approval of // NVIDIA Corporation. // -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/PhysX_3.4/Source/PhysXMetaData/core/include/PxMetaDataCppPrefix.h b/PhysX_3.4/Source/PhysXMetaData/core/include/PxMetaDataCppPrefix.h index 92c7280c..f188bf82 100644 --- a/PhysX_3.4/Source/PhysXMetaData/core/include/PxMetaDataCppPrefix.h +++ b/PhysX_3.4/Source/PhysXMetaData/core/include/PxMetaDataCppPrefix.h @@ -23,7 +23,7 @@ // components in life support devices or systems without express written approval of // NVIDIA Corporation. // -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/PhysX_3.4/Source/PhysXMetaData/core/include/PxMetaDataObjects.h b/PhysX_3.4/Source/PhysXMetaData/core/include/PxMetaDataObjects.h index 939aad92..2c871cc9 100644 --- a/PhysX_3.4/Source/PhysXMetaData/core/include/PxMetaDataObjects.h +++ b/PhysX_3.4/Source/PhysXMetaData/core/include/PxMetaDataObjects.h @@ -23,7 +23,7 @@ // components in life support devices or systems without express written approval of // NVIDIA Corporation. // -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/PhysX_3.4/Source/PhysXMetaData/core/include/RepXMetaDataPropertyVisitor.h b/PhysX_3.4/Source/PhysXMetaData/core/include/RepXMetaDataPropertyVisitor.h index 3fbb2255..50c86f18 100644 --- a/PhysX_3.4/Source/PhysXMetaData/core/include/RepXMetaDataPropertyVisitor.h +++ b/PhysX_3.4/Source/PhysXMetaData/core/include/RepXMetaDataPropertyVisitor.h @@ -23,7 +23,7 @@ // components in life support devices or systems without express written approval of // NVIDIA Corporation. // -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/PhysX_3.4/Source/PhysXMetaData/core/src/PxAutoGeneratedMetaDataObjects.cpp b/PhysX_3.4/Source/PhysXMetaData/core/src/PxAutoGeneratedMetaDataObjects.cpp index 6cc87329..57d100bc 100644 --- a/PhysX_3.4/Source/PhysXMetaData/core/src/PxAutoGeneratedMetaDataObjects.cpp +++ b/PhysX_3.4/Source/PhysXMetaData/core/src/PxAutoGeneratedMetaDataObjects.cpp @@ -23,7 +23,7 @@ // components in life support devices or systems without express written approval of // NVIDIA Corporation. // -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. @@ -1235,6 +1235,10 @@ inline PxSimulationFilterShader getPxSceneDescFilterShader( const PxSceneDesc* i inline void setPxSceneDescFilterShader( PxSceneDesc* inOwner, PxSimulationFilterShader inData) { inOwner->filterShader = inData; } inline PxSimulationFilterCallback * getPxSceneDescFilterCallback( const PxSceneDesc* inOwner ) { return inOwner->filterCallback; } inline void setPxSceneDescFilterCallback( PxSceneDesc* inOwner, PxSimulationFilterCallback * inData) { inOwner->filterCallback = inData; } +inline PxPairFilteringMode::Enum getPxSceneDescKineKineFilteringMode( const PxSceneDesc* inOwner ) { return inOwner->kineKineFilteringMode; } +inline void setPxSceneDescKineKineFilteringMode( PxSceneDesc* inOwner, PxPairFilteringMode::Enum inData) { inOwner->kineKineFilteringMode = inData; } +inline PxPairFilteringMode::Enum getPxSceneDescStaticKineFilteringMode( const PxSceneDesc* inOwner ) { return inOwner->staticKineFilteringMode; } +inline void setPxSceneDescStaticKineFilteringMode( PxSceneDesc* inOwner, PxPairFilteringMode::Enum inData) { inOwner->staticKineFilteringMode = inData; } inline PxBroadPhaseType::Enum getPxSceneDescBroadPhaseType( const PxSceneDesc* inOwner ) { return inOwner->broadPhaseType; } inline void setPxSceneDescBroadPhaseType( PxSceneDesc* inOwner, PxBroadPhaseType::Enum inData) { inOwner->broadPhaseType = inData; } inline PxBroadPhaseCallback * getPxSceneDescBroadPhaseCallback( const PxSceneDesc* inOwner ) { return inOwner->broadPhaseCallback; } @@ -1299,6 +1303,8 @@ PX_PHYSX_CORE_API PxSceneDescGeneratedInfo::PxSceneDescGeneratedInfo() , FilterShaderDataSize( "FilterShaderDataSize", setPxSceneDescFilterShaderDataSize, getPxSceneDescFilterShaderDataSize ) , FilterShader( "FilterShader", setPxSceneDescFilterShader, getPxSceneDescFilterShader ) , FilterCallback( "FilterCallback", setPxSceneDescFilterCallback, getPxSceneDescFilterCallback ) + , KineKineFilteringMode( "KineKineFilteringMode", setPxSceneDescKineKineFilteringMode, getPxSceneDescKineKineFilteringMode ) + , StaticKineFilteringMode( "StaticKineFilteringMode", setPxSceneDescStaticKineFilteringMode, getPxSceneDescStaticKineFilteringMode ) , BroadPhaseType( "BroadPhaseType", setPxSceneDescBroadPhaseType, getPxSceneDescBroadPhaseType ) , BroadPhaseCallback( "BroadPhaseCallback", setPxSceneDescBroadPhaseCallback, getPxSceneDescBroadPhaseCallback ) , Limits( "Limits", setPxSceneDescLimits, getPxSceneDescLimits ) @@ -1336,6 +1342,8 @@ PX_PHYSX_CORE_API PxSceneDescGeneratedValues::PxSceneDescGeneratedValues( const ,FilterShaderDataSize( inSource->filterShaderDataSize ) ,FilterShader( inSource->filterShader ) ,FilterCallback( inSource->filterCallback ) + ,KineKineFilteringMode( inSource->kineKineFilteringMode ) + ,StaticKineFilteringMode( inSource->staticKineFilteringMode ) ,BroadPhaseType( inSource->broadPhaseType ) ,BroadPhaseCallback( inSource->broadPhaseCallback ) ,Limits( inSource->limits ) diff --git a/PhysX_3.4/Source/PhysXMetaData/core/src/PxMetaDataObjects.cpp b/PhysX_3.4/Source/PhysXMetaData/core/src/PxMetaDataObjects.cpp index 366ad060..df8b5df4 100644 --- a/PhysX_3.4/Source/PhysXMetaData/core/src/PxMetaDataObjects.cpp +++ b/PhysX_3.4/Source/PhysXMetaData/core/src/PxMetaDataObjects.cpp @@ -23,7 +23,7 @@ // components in life support devices or systems without express written approval of // NVIDIA Corporation. // -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. |