/foundation/graphic/graphic_3d/lume/scenewidgetplugin/plugin/src/ |
H A D | postprocess_effect_impl.cpp | 29 using SCENE_NS::MakeTask; 30 using SCENE_NS::IBitmap; 105 class BloomImpl : public META_NS::ObjectFwd<BloomImpl, SCENE_NS::ClassId::Bloom, META_NS::ClassId::Object, 106 SCENE_NS::IBloom, IPostProcessEffectPrivate, SCENE_NS::IProxyObject> { 108 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::IPostProcessEffect, bool, Enabled) 110 SCENE_NS::IBloom, SCENE_NS::IBloom::BloomType, Type, SCENE_NS::IBloom::BloomType::NORMAL) 111 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS [all...] |
H A D | component_dll.cpp | 55 SCENE_NS::IPendingRequest<T>, SCENE_NS::IPendingRequestData<T>> { 105 class SceneBitmap : public META_NS::ObjectFwd<SceneBitmap, SCENE_NS::ClassId::Bitmap, META_NS::ClassId::Object, 106 SCENE_NS::IBitmap, META_NS::INamed> { 110 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::IBitmap, BASE_NS::string, Uri, {}) 112 META_IMPLEMENT_INTERFACE_READONLY_PROPERTY(SCENE_NS::IBitmap, BASE_NS::Math::UVec2, Size, 114 META_IMPLEMENT_INTERFACE_EVENT(SCENE_NS::IBitmap, META_NS::IOnChanged, ResourceChanged) 115 META_IMPLEMENT_INTERFACE_READONLY_PROPERTY(SCENE_NS::IBitmap, SCENE_NS::IBitmap::BitmapStatus, Status, 116 SCENE_NS [all...] |
H A D | node_impl.h | 27 class NodeImpl : public META_NS::ObjectContainerFwd<NodeImpl, SCENE_NS::ClassId::Node, SCENE_NS::INode, 29 SCENE_NS::IEcsObject, SCENE_NS::IProxyObject/*, UI_NS::Input::IInputFilter*/> { 30 using Super = META_NS::ObjectContainerFwd<NodeImpl, SCENE_NS::ClassId::Node, SCENE_NS::INode, META_NS::IContainable, 31 META_NS::IMutableContainable, INodeEcsInterfacePrivate, SCENE_NS::IEcsObject, SCENE_NS::IProxyObject/*, 36 META_IMPLEMENT_INTERFACE_READONLY_PROPERTY(SCENE_NS::INode, BASE_NS::string, Path, {}, META_NS::ObjectFlagBits::INTERNAL) 37 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS [all...] |
H A D | render_configuration_impl.cpp | 25 using namespace SCENE_NS; 30 : public META_NS::ObjectFwd<RenderConfigurationImpl, SCENE_NS::ClassId::RenderConfiguration, 31 META_NS::ClassId::Object, SCENE_NS::IRenderConfiguration, IResourcePrivate, SCENE_NS::IProxyObject> { 32 using Fwd = META_NS::ObjectFwd<RenderConfigurationImpl, SCENE_NS::ClassId::RenderConfiguration, 33 META_NS::ClassId::Object, SCENE_NS::IRenderConfiguration, IResourcePrivate, SCENE_NS::IProxyObject>; 36 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::IRenderConfiguration, SCENE_NS::IEnvironment::Ptr, Environment) 51 ecsObject_ = META_NS::GetObjectRegistry().Create<SCENE_NS [all...] |
H A D | scene_impl.cpp | 52 using SCENE_NS::MakeTask; 67 class SceneImpl final : public META_NS::ObjectContainerFwd<SceneImpl, SCENE_NS::ClassId::Scene, SCENE_NS::IScene, 68 SCENE_NS::IEcsScene, META_NS::IContent, META_NS::IAnimationController> { 83 SCENE_NS::IScene, BASE_NS::string, SystemGraphUri, "project://assets/config/system_graph.json") 85 SCENE_NS::IScene, uint32_t, Status, SCENE_STATUS_UNINITIALIZED, META_NS::DEFAULT_PROPERTY_FLAGS_NO_SER) 86 META_IMPLEMENT_INTERFACE_READONLY_PROPERTY(SCENE_NS::IScene, SCENE_NS::INode::Ptr, RootNode, {}) 87 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::IScene, SCENE_NS [all...] |
H A D | camera_impl.cpp | 25 using SCENE_NS::MakeTask; 29 : public META_NS::ConcreteBaseMetaObjectFwd<CameraImpl, NodeImpl, SCENE_NS::ClassId::Camera, SCENE_NS::ICamera> { 30 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::ICamera, float, FoV, 60.f * BASE_NS::Math::DEG2RAD) 31 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::ICamera, float, AspectRatio, -1.f) 32 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::ICamera, float, NearPlane, 0.3f) 33 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::ICamera, float, FarPlane, 1000.f) 34 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::ICamera, float, XMagnification, 0.f) 35 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::ICamera, float, YMagnification, 0.f) 36 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS [all...] |
H A D | postprocess_impl.cpp | 28 using SCENE_NS::MakeTask; 33 : public META_NS::ObjectFwd<PostProcessImpl, SCENE_NS::ClassId::PostProcess, META_NS::ClassId::Object, 34 SCENE_NS::IPostProcess, IPostProcessPrivate, SCENE_NS::IProxyObject> { 36 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::IPostProcess, SCENE_NS::IBloom::Ptr, Bloom) 37 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::IPostProcess, SCENE_NS::IBlur::Ptr, Blur) 38 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::IPostProcess, SCENE_NS [all...] |
H A D | mesh_impl.cpp | 28 using SCENE_NS::MakeTask; 33 : public META_NS::ConcreteBaseMetaObjectFwd<MeshImpl, NodeImpl, SCENE_NS::ClassId::Mesh, SCENE_NS::IMesh> { 53 SCENE_NS::IMesh, SCENE_NS::IMaterial::Ptr, MaterialOverride, {}, ) 54 META_IMPLEMENT_INTERFACE_READONLY_PROPERTY(SCENE_NS::IMesh, BASE_NS::string, MaterialOverrideUri, {}, 58 SCENE_NS::IMesh, SCENE_NS::ISubMesh::Ptr, SubMeshes, {}, ) 59 META_IMPLEMENT_INTERFACE_READONLY_PROPERTY(SCENE_NS::IMesh, BASE_NS::Math::Vec3, AABBMin, 61 META_IMPLEMENT_INTERFACE_READONLY_PROPERTY(SCENE_NS [all...] |
H A D | material_impl.cpp | 33 using SCENE_NS::MakeTask; 34 #define GET_HOLDER(info) interface_pointer_cast<SCENE_NS::IProxyObjectHolder>(info)->Holder() 92 class MaterialImpl : public META_NS::ConcreteBaseMetaObjectFwd<MaterialImpl, NodeImpl, SCENE_NS::ClassId::Material, 93 SCENE_NS::IMaterial, ITextureStorage> { 112 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::IMaterial, uint8_t, Type, 0) 114 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::IMaterial, float, AlphaCutoff, 1.f) 115 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::IMaterial, uint32_t, LightingFlags, 120 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::IMaterial, SCENE_NS::IShader::Ptr, MaterialShader, {}) 121 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS [all...] |
H A D | submesh_impl.cpp | 26 using SCENE_NS::MakeTask; 29 class SubMeshImpl : public META_NS::ObjectFwd<SubMeshImpl, SCENE_NS::ClassId::SubMesh, META_NS::ClassId::Object, 30 SCENE_NS::ISubMesh, SCENE_NS::ISubMeshPrivate> { 33 SCENE_NS::ISubMesh, SCENE_NS::IMaterial::Ptr, Material, {}) 34 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::ISubMesh, uint64_t, Handle, {}, META_NS::ObjectFlagBits::INTERNAL) 35 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::ISubMesh, BASE_NS::Math::Vec3, AABBMin, 37 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::ISubMesh, BASE_NS::Math::Vec3, AABBMax, 40 SCENE_NS [all...] |
H A D | node_impl.cpp | 19 using SCENE_NS::MakeTask; 46 size_t GetChildIndex(SCENE_NS::INode& parent, SCENE_NS::INode& child) in GetChildIndex() 69 if (META_NS::TypeId(uid) == SCENE_NS::InterfaceId::IEnvironment.Id()) { in GetInterface() 78 if (META_NS::TypeId(uid) == SCENE_NS::InterfaceId::IEnvironment.Id()) { in GetInterface() 85 SCENE_NS::NodeState NodeImpl::GetAttachedState() const in GetAttachedState() 92 if (Status()->GetValue() == SCENE_NS::INode::NODE_STATUS_CONNECTED || in IsConnected() 93 Status()->GetValue() == SCENE_NS::INode::NODE_STATUS_FULLY_CONNECTED) in IsConnected() 116 if (auto sceneInterface = interface_pointer_cast<SCENE_NS::IEcsScene>(sceneObject)) { in Connect() 198 attachedState_ = SCENE_NS in AttachToHierarchy() [all...] |
H A D | light_impl.cpp | 24 : public META_NS::ConcreteBaseMetaObjectFwd<LightImpl, NodeImpl, SCENE_NS::ClassId::Light, SCENE_NS::ILight> { 62 SCENE_NS::ILight, SCENE_NS::Color, Color, SCENE_NS::Colors::WHITE) 63 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::ILight, float, Intensity, 1.f) 64 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::ILight, float, NearPlane, 0.5f) 66 SCENE_NS::ILight, bool, ShadowEnabled, true) 68 SCENE_NS::ILight, float, ShadowStrength, 1.0f) 70 SCENE_NS [all...] |
H A D | graphicsstate_impl.cpp | 23 class GraphicsStateImpl : public META_NS::ObjectFwd<GraphicsStateImpl, SCENE_NS::ClassId::GraphicsState, 24 META_NS::ClassId::Object, SCENE_NS::IGraphicsState, ISceneHolderRef> { 25 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::IGraphicsState, BASE_NS::string, Uri, "") 26 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::IGraphicsState, BASE_NS::string, Variant, "") 54 void SetGraphicsState(const RENDER_NS::GraphicsState& state, SCENE_NS::IMaterial::Ptr mat) override 60 if (auto mat = interface_cast<SCENE_NS::IEcsObject>(material.lock())) { 71 SCENE_NS::IShaderGraphicsState::Ptr GetGraphicsState(SCENE_NS::IMaterial::Ptr mat) override 74 META_NS::GetObjectRegistry().Create<SCENE_NS::IShaderGraphicsState>(SCENE_NS [all...] |
H A D | submeshhandler.cpp | 27 using SCENE_NS::MakeTask; 30 class SubMeshHandler : public META_NS::ObjectFwd<SubMeshHandler, SCENE_NS::ClassId::SubMeshHandler, 31 META_NS::ClassId::Object, SCENE_NS::IEcsProxyObject, SCENE_NS::ISubMeshBridge> { 40 submeshes_ = META_NS::ArrayProperty<SCENE_NS::ISubMesh::Ptr>(submeshes); 61 listener_->RemoveEntity(entity_, GetSelf<SCENE_NS::IEcsProxyObject>(), 68 void SetCommonListener(BASE_NS::shared_ptr<SCENE_NS::EcsListener> listener) override 71 listener_->RemoveEntity(entity_, GetSelf<SCENE_NS::IEcsProxyObject>(), 76 listener_->AddEntity(entity_, GetSelf<SCENE_NS::IEcsProxyObject>(), 83 SCENE_NS [all...] |
H A D | scene_holder.h | 125 const SCENE_NS::ICamera::Ptr& camera, BASE_NS::Math::UVec2 size, RENDER_NS::RenderHandleReference ref); 133 void ChangeCamera(SCENE_NS::ICamera::Ptr camera); 183 SCENE_NS::IEntityCollection* GetEntityCollection() in GetEntityCollection() 188 SCENE_NS::IAssetManager* GetAssetManager() in GetAssetManager() 236 CORE_NS::EntityReference BindUIBitmap(SCENE_NS::IBitmap::Ptr bitmap, bool createNew); 264 void SetShader(CORE_NS::Entity materialEntity, ShaderType type, SCENE_NS::IShader::Ptr shader); 265 void SetGraphicsState(CORE_NS::Entity materialEntity, ShaderType type, SCENE_NS::IGraphicsState::Ptr state); 266 SCENE_NS::IShader::Ptr GetShader(CORE_NS::Entity materialEntity, ShaderType type); 267 SCENE_NS::IGraphicsState::Ptr GetGraphicsState(CORE_NS::Entity materialEntity, ShaderType type); 272 CORE_NS::Entity materialEntity, ShaderType type, const SCENE_NS [all...] |
H A D | multimesh_impl.cpp | 25 using SCENE_NS::MakeTask; 28 class MultiMeshImpl : public META_NS::ObjectFwd<MultiMeshImpl, SCENE_NS::ClassId::MultiMeshProxy, 29 META_NS::ClassId::Object, SCENE_NS::IMultiMeshProxy, IMultimeshInitilization> { 31 SCENE_NS::IMultiMeshProxy, SCENE_NS::IMaterial::Ptr, MaterialOverride, {}, META_NS::DEFAULT_PROPERTY_FLAGS_NO_SER) 33 // SCENE_NS::IMultiMeshProxy, BASE_NS::string, MaterialOverrideUri, {}, META_NS::DEFAULT_PROPERTY_FLAGS_NO_SER) 35 SCENE_NS::IMultiMeshProxy, SCENE_NS::IMesh::Ptr, Mesh, {}, META_NS::DEFAULT_PROPERTY_FLAGS_NO_SER) 36 META_IMPLEMENT_INTERFACE_PROPERTY(SCENE_NS::IMultiMeshProxy, size_t, VisibleInstanceCount, 0u) 37 META_IMPLEMENT_INTERFACE_ARRAY_PROPERTY(SCENE_NS [all...] |
/foundation/graphic/graphic_3d/lume/scenewidgetplugin/plugin/include/scene_plugin/interface/ |
H A D | intf_postprocess.h | 49 META_TYPE(SCENE_NS::SharpnessType); 50 META_TYPE(SCENE_NS::QualityType); 93 META_TYPE(SCENE_NS::ITonemap::TonemapType) 94 META_TYPE(SCENE_NS::ITonemap::WeakPtr); 95 META_TYPE(SCENE_NS::ITonemap::Ptr); 164 META_TYPE(SCENE_NS::IBloom::BloomType) 165 META_TYPE(SCENE_NS::IBloom::WeakPtr); 166 META_TYPE(SCENE_NS::IBloom::Ptr); 188 META_TYPE(SCENE_NS::IVignette::WeakPtr); 189 META_TYPE(SCENE_NS [all...] |
H A D | intf_mesh.h | 30 // Implemented by SCENE_NS::ClassId::SubMesh 35 META_PROPERTY(SCENE_NS::IMaterial::Ptr, Material) 45 virtual void SetMaterial(SCENE_NS::IMaterial::Ptr) = 0; 50 META_TYPE(SCENE_NS::ISubMesh::WeakPtr); 51 META_TYPE(SCENE_NS::ISubMesh::Ptr); 55 // Implemented by SCENE_NS::ClassId::Mesh 64 META_PROPERTY(SCENE_NS::IMaterial::Ptr, MaterialOverride) 157 META_TYPE(SCENE_NS::IMesh::WeakPtr); 158 META_TYPE(SCENE_NS::IMesh::Ptr); 162 // Implemented by SCENE_NS [all...] |
H A D | intf_material.h | 47 META_PROPERTY(SCENE_NS::IBitmap::Ptr, Image) 114 META_TYPE(SCENE_NS::ITextureInfo::WeakPtr); 115 META_TYPE(SCENE_NS::ITextureInfo::Ptr); 134 META_TYPE(SCENE_NS::IShader::WeakPtr); 135 META_TYPE(SCENE_NS::IShader::Ptr); 162 const RENDER_NS::GraphicsState& state, BASE_NS::shared_ptr<SCENE_NS::IMaterial> mat) = 0; 163 virtual IShaderGraphicsState::Ptr GetGraphicsState(BASE_NS::shared_ptr<SCENE_NS::IMaterial> mat) = 0; 168 META_TYPE(SCENE_NS::IGraphicsState::WeakPtr); 169 META_TYPE(SCENE_NS::IGraphicsState::Ptr); 173 // Implemented by SCENE_NS [all...] |
/foundation/graphic/graphic_3d/kits/js/src/ |
H A D | ToneMapJS.cpp | 33 using namespace SCENE_NS; 34 SCENE_NS::ITonemap::TonemapType ConvertTo(ToneMapJS::ToneMappingType typeI) in ConvertTo() 36 SCENE_NS::ITonemap::TonemapType type; in ConvertTo() 39 type = SCENE_NS::ITonemap::TonemapType::ACES; in ConvertTo() 42 type = SCENE_NS::ITonemap::TonemapType::ACES_2020; in ConvertTo() 45 type = SCENE_NS::ITonemap::TonemapType::FILMIC; in ConvertTo() 54 ToneMapJS::ToneMappingType ConvertFrom(SCENE_NS::ITonemap::TonemapType typeI) in ConvertFrom() 58 case SCENE_NS::ITonemap::TonemapType::ACES: in ConvertFrom() 61 case SCENE_NS::ITonemap::TonemapType::ACES_2020: in ConvertFrom() 64 case SCENE_NS in ConvertFrom() [all...] |
H A D | NodeImpl.cpp | 117 if (auto node = interface_pointer_cast<SCENE_NS::INode>(GetThisNativeObject(ctx))) { in GetLayerMaskEnabled() 130 if (auto node = interface_pointer_cast<SCENE_NS::INode>(GetThisNativeObject(ctx))) { in SetLayerMaskEnabled() 147 if (auto node = interface_cast<SCENE_NS::INode>(GetThisNativeObject(ctx))) { in GetNodeType() 157 if (auto node = interface_cast<SCENE_NS::INode>(GetThisNativeObject(ctx))) { in GetLayerMask() 165 auto node = interface_pointer_cast<SCENE_NS::INode>(GetThisNativeObject(ctx)); in GetPath() 182 auto node = interface_pointer_cast<SCENE_NS::INode>(GetThisNativeObject(ctx)); in GetVisible() 196 auto node = interface_pointer_cast<SCENE_NS::INode>(GetThisNativeObject(ctx)); in SetVisible() 208 auto node = interface_pointer_cast<SCENE_NS::INode>(GetThisNativeObject(ctx)); in GetPosition() 220 auto node = interface_pointer_cast<SCENE_NS::INode>(GetThisNativeObject(ctx)); in SetPosition() 233 auto node = interface_pointer_cast<SCENE_NS in GetScale() [all...] |
H A D | LightJS.cpp | 53 if (!GetNativeMeta<SCENE_NS::IScene>(scene_.GetObject())) { in Create() 57 auto scn = GetNativeMeta<SCENE_NS::IScene>(scene); in Create() 88 SCENE_NS::ILight::Ptr node; in Create() 90 node = scn->CreateNode<SCENE_NS::ILight>(nodePath, true); in Create() 144 if (auto light = interface_pointer_cast<SCENE_NS::ILight>(tro->GetNativeObject())) { in DisposeNative() 150 auto node = interface_pointer_cast<SCENE_NS::INode>(light); in DisposeNative() 167 if (auto node = interface_cast<SCENE_NS::ILight>(GetThisNativeObject(ctx))) { in GetlightType() 178 auto node = interface_pointer_cast<SCENE_NS::INode>(GetThisNativeObject(ctx)); in GetEnabled() 193 auto node = interface_pointer_cast<SCENE_NS::INode>(GetThisNativeObject(ctx)); in SetEnabled() 204 auto node = interface_pointer_cast<SCENE_NS in GetColor() [all...] |
H A D | EnvironmentJS.cpp | 30 using namespace SCENE_NS; 123 auto en = interface_pointer_cast<SCENE_NS::INode>(e); in DisposeNative() 159 if (!GetNativeMeta<SCENE_NS::IScene>(scene_.GetObject())) { in EnvironmentJS() 187 env = scene->CreateNode<SCENE_NS::IEnvironment>(nameS); in EnvironmentJS() 256 if (auto environment = interface_cast<SCENE_NS::IEnvironment>(GetNativeObject())) { in GetEnvironmentImage() 257 SCENE_NS::IBitmap::Ptr image; in GetEnvironmentImage() 277 SCENE_NS::IBitmap::Ptr image; in SetEnvironmentImage() 279 image = interface_pointer_cast<SCENE_NS::IBitmap>(nat->GetNativeObject()); in SetEnvironmentImage() 281 if (auto environment = interface_cast<SCENE_NS::IEnvironment>(GetNativeObject())) { in SetEnvironmentImage() 291 if (auto environment = interface_cast<SCENE_NS in GetRadianceImage() [all...] |
H A D | CameraJS.cpp | 59 if (auto camera = interface_pointer_cast<SCENE_NS::ICamera>(GetNativeObject())) { in DisposeNative() 72 auto camnode = interface_pointer_cast<SCENE_NS::INode>(cam); in DisposeNative() 124 auto scn = GetNativeMeta<SCENE_NS::IScene>(scene); in CameraJS() 156 uint32_t pipeline = SCENE_NS::ICamera::SceneCameraPipeline::SCENE_CAM_PIPELINE_LIGHT_FORWARD; in CameraJS() 174 SCENE_NS::ICamera::Ptr node; in CameraJS() 176 node = scn->CreateNode<SCENE_NS::ICamera>(nodePath, true); in CameraJS() 195 if (auto camera = interface_pointer_cast<SCENE_NS::ICamera>(GetNativeObject())) { in Finalize() 197 if (auto scene = interface_cast<SCENE_NS::INode>(camera)->GetScene()) { in Finalize() 212 if (auto camera = interface_cast<SCENE_NS::ICamera>(GetNativeObject())) { in GetFov() 230 if (auto camera = interface_cast<SCENE_NS in SetFov() [all...] |
H A D | PostProcJS.cpp | 33 using namespace SCENE_NS;
127 auto postproc = interface_pointer_cast<SCENE_NS::IPostProcess>(
in PostProcJS() 128 ((CameraJS*)(rootobject))->CreateObject(SCENE_NS::ClassId::PostProcess));
in PostProcJS() 145 SCENE_NS::ITonemap::Ptr tone;
in PostProcJS() 156 SCENE_NS::IBloom::Ptr bloom = postproc->Bloom()->GetValue();
in PostProcJS() 175 auto postproc = interface_cast<SCENE_NS::IPostProcess>(GetNativeObject());
in SetToneMapping() 196 SCENE_NS::ITonemap::Ptr tonemap;
in SetToneMapping() 209 tonemap = interface_pointer_cast<SCENE_NS::ITonemap>(native->GetNativeObject());
in SetToneMapping() 220 if (auto postproc = interface_cast<SCENE_NS::IPostProcess>(GetNativeObject())) {
in GetToneMapping() 221 SCENE_NS in GetToneMapping() [all...] |