opencascade AIS_InteractiveContext源码学习1
AIS_InteractiveContext
前言
交互上下文(Interactive Context)允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是,对于已经被交互上下文识别的交互对象,必须使用上下文方法进行修改。如果交互对象尚未加载到交互上下文中,您才能直接调用交互对象的方法。
每个可选择的对象必须指定负责整体选择对象的选择模式(全局选择模式)。交互上下文本身支持使用选择过滤器进行分解对象的选择。默认情况下,全局选择模式等于0,但如果需要,可以重新定义。
方法:object display management 对象显示管理
1:AIS_InteractiveContext()
AIS_InteractiveContext::AIS_InteractiveContext (const Handle< V3d_Viewer > & MainViewer)
构造由主视图器 MainViewer 定义的交互上下文对象。
###:2:~AIS_InteractiveContext()
virtual AIS_InteractiveContext::~AIS_InteractiveContext ()
虚析构函数。
3:DisplayStatus()
PrsMgr_DisplayStatus AIS_InteractiveContext::DisplayStatus (const Handle< AIS_InteractiveObject > & anIobj) const
返回实体 anIobj
的显示状态。显示状态可以是以下几种之一:
- AIS_DS_Displayed:在主视图器中显示。
- AIS_DS_Erased:在主视图器中隐藏。
- AIS_DS_Temporary:临时显示。
- AIS_DS_None:未显示在任何地方。
4:Status()
void AIS_InteractiveContext::Status (const Handle< AIS_InteractiveObject > & anObj, TCollection_ExtendedString & astatus) const
返回交互对象 anObj
在交互上下文中的视图状态。
这意味着该方法将获取指定交互对象在当前上下文中的状态,并将状态信息存储在 astatus
参数中。
5:IsDisplayed() [1/2]
Standard_Boolean AIS_InteractiveContext::IsDisplayed (const Handle< AIS_InteractiveObject > & anIobj) const
如果对象在交互上下文中显示,返回 true
。
6:IsDisplayed() [2/2]
Standard_Boolean AIS_InteractiveContext::IsDisplayed (const Handle< AIS_InteractiveObject > & anIobj, const Standard_Integer aMode) const
如果对象在交互上下文中以特定模式显示,返回 true
。
7:SetAutoActivateSelection()
void AIS_InteractiveContext::SetAutoActivateSelection (const Standard_Boolean theIsAuto) inline
启用或禁用在显示对象时自动激活默认选择模式。
8:GetAutoActivateSelection()
Standard_Boolean AIS_InteractiveContext::GetAutoActivateSelection () const inline
管理是否在显示新对象时自动激活默认选择模式;默认值为 TRUE。
9:Display() 方法翻译
9.1:Display() [1/3]
void AIS_InteractiveContext::Display (const Handle<AIS_InteractiveObject>& theIObj, const Standard_Boolean theToUpdateViewer)
使用默认显示模式在此上下文中显示对象。这将是对象的默认显示模式(如果有的话)。否则,将使用上下文模式。如果 GetAutoActivateSelection()
为 TRUE,则激活交互对象的默认选择模式。通常情况下,这是 0。
9.2:Display() [2/3]
void AIS_InteractiveContext::Display (const Handle<AIS_InteractiveObject>& theIObj, const Standard_Integer theDispMode, const Standard_Integer theSelectionMode, const Standard_Boolean theToUpdateViewer, const PrsMgr_DisplayStatus theDispStatus = PrsMgr_DisplayStatus_None)
设置指定对象的状态、显示模式和选择模式。如果 theSelectionMode
等于 -1,theIObj
将不会被激活:它将被显示,但不会是可选择的。
9.3:Display() [3/3]
void AIS_InteractiveContext::Display (const Handle<AIS_InteractiveObject>& theIObj, const Standard_Integer theDispMode, const Standard_Integer theSelectionMode, const Standard_Boolean theToUpdateViewer, const Standard_Boolean theToAllowDecomposition, const PrsMgr_DisplayStatus theDispStatus = PrsMgr_DisplayStatus_None)
inline
已弃用:
使用过时参数 theToAllowDecomposition
的 Display()
方法已弃用。
10:Load() 方法翻译
10.1:Load() [1/2]
void AIS_InteractiveContext::Load (const Handle<AIS_InteractiveObject>& theObj, const Standard_Integer theSelectionMode = -1)
允许使用给定的选择模式和/或所需的分解选项加载交互对象,无论对象是否可视化。加载的对象将是可选择的,但仅在被选择器检测到时才以高亮显示。
10.2:Load() [2/2]
void AIS_InteractiveContext::Load (const Handle<AIS_InteractiveObject>& theObj, Standard_Integer theSelectionMode, Standard_Boolean)
inline
已弃用:
使用过时参数 theToAllowDecomposition
的 Load()
方法已弃用。
11:Erase()
- 功能: 隐藏对象。
- 参数:
theIObj
:要隐藏的对象。theToUpdateViewer
:是否更新视图以反映更改。
- 描述: 对象的表示仅标记为不可见,因此将被排除在重绘之外。要显示隐藏的对象,请使用
Display()
方法。
12:EraseAll()
- 功能: 隐藏所有对象。
- 参数:
theToUpdateViewer
:是否更新视图以反映更改。
- 描述: 对象的表示仅标记为不可见,因此将被排除在重绘之外。要显示所有隐藏的对象,请使用
DisplayAll()
方法。
13:DisplayAll()
- 功能: 显示所有隐藏的对象。
- 参数:
theToUpdateViewer
:是否更新视图以反映更改。
- 描述: 该方法用于显示所有之前隐藏的对象,使它们再次可见。
14:EraseSelected()
- 功能: 隐藏选定的对象。
- 参数:
theToUpdateViewer
:是否更新视图以反映更改。
- 描述: 该方法用于隐藏选定的对象,使其不再可见。对象的显示状态将被标记为隐藏,因此在重绘时将被排除。要显示隐藏的对象,请使用
Display()
方法。
15:DisplaySelected()
- 功能: 显示当前选定的对象。
- 参数:
theToUpdateViewer
:是否更新视图以反映更改。 - 描述: 该方法用于显示当前选定的对象,使其可见。如果对象已被隐藏,则会显示出来。
16:ClearPrs
清空由 theMode 索引的模式的图形呈现。注意!会移除 theIObj。如果 theIObj 之前被激活,它仍然是激活状态。
17:Remove
从每个视图中移除对象。
18:RemoveAll
从上下文中移除所有对象
19:Redisplay
重载1: 重新计算给定类型和给定签名的已显示对象的 Prs/选择。如果签名 = -1,则不考虑签名标准。
20:Redisplay
重载2: 重新计算对象的可见部分的呈现。如果 theAllModes 为 true,即使是不可见的,所有呈现也都存在于对象中。
21:RecomputePrsOnly
重新计算已显示的呈现,并标记其他呈现。但不更新这些呈现。
22: RecomputeSelectionOnly
重新计算活动选择,并标记其他选择。但不更新这些呈现。
23:Update
通过检查和重新计算标记为“需要重新计算”的呈现和选择结构来更新显示的交互对象。此方法不会强制任何重新计算。该方法即使在特定选择器中加载而未激活,也会重新计算选择。
highlighting management
24:Update
HighlightStyle() [1/4]
inline const Handle< Prs3d_Drawer >& AIS_InteractiveContext::HighlightStyle() const
返回当前动态突出显示样式设置,对应于 Prs3d_TypeOfHighlight_Dynamic。这只是一个指向 HighlightStyle(Prs3d_TypeOfHighlight_Dynamic) 的快捷方式。
HighlightStyle() [2/4]
Standard_Boolean AIS_InteractiveContext::HighlightStyle(const Handle< AIS_InteractiveObject >& theObj, Handle< Prs3d_Drawer >& theStyle) const
如果对象标记为通过全局状态进行突出显示,则返回对象的突出显示样式。
参数
- theObj [in] 要检查的对象
HighlightStyle() [3/4]
Standard_Boolean AIS_InteractiveContext::HighlightStyle(const Handle< SelectMgr_EntityOwner >& theOwner, Handle< Prs3d_Drawer >& theStyle) const
如果选择了所有者,则返回所有者的突出显示样式。
参数
- theOwner [in] 要检查的所有者
HighlightStyle() [4/4]
inline const Handle< Prs3d_Drawer >& AIS_InteractiveContext::HighlightStyle(const Prs3d_TypeOfHighlight theStyleType) const
返回默认的突出显示样式设置(可以被 PrsMgr_PresentableObject 覆盖)。
提示:尽管突出显示样式由 Prs3d_Drawer 定义,但在大多数情况下,实际上只会使用从其基类 Graphic3d_PresentationAttributes 派生的一小组属性。
所有类型的默认突出显示样式为 Aspect_TOHM_COLOR。其他默认值:
- Prs3d_TypeOfHighlight_Dynamic
- 颜色:Quantity_NOC_CYAN1;
- 图层:Graphic3d_ZLayerId_Top,对象突出显示绘制在立即层内的主场景顶部,因此 V3d_View::RedrawImmediate() 将足以看到更新;
- Prs3d_TypeOfHighlight_LocalDynamic
- 颜色:Quantity_NOC_CYAN1;
- 图层:Graphic3d_ZLayerId_Topmost,对象部分突出显示绘制在立即层内的主场景顶部,并清除深度(即使重叠的几何体也将被显示);
- Prs3d_TypeOfHighlight_Selected
- 颜色:Quantity_NOC_GRAY80;
- 图层:Graphic3d_ZLayerId_UNKNOWN,对象突出显示绘制在与对象本身相同的层内(例如,默认情况下为 Graphic3d_ZLayerId_Default)并增加了优先级。
参数
- [in] theStyleType 要修改的突出显示样式
返回
与指定突出显示类型相关联的绘图器
另请参阅
- 使用 Prs3d_TypeOfHighlight_Dynamic 和 Prs3d_TypeOfHighlight_LocalDynamic 类型的 MoveTo()
- 使用 Prs3d_TypeOfHighlight_Selected 和 Prs3d_TypeOfHighlight_LocalSelected 类型的 SelectDetected()
- PrsMgr_PresentableObject::DynamicHilightAttributes() 在对象级别上覆盖 Prs3d_TypeOfHighlight_Dynamic 和 Prs3d_TypeOfHighlight_LocalDynamic 的默认值
- PrsMgr_PresentableObject::HilightAttributes() 在对象级别上覆盖 Prs3d_TypeOfHighlight_Selected 和 Prs3d_TypeOfHighlight_LocalSelected 的默认值
25:SetHighlightStyle() [1/2]
设置与 Prs3d_TypeOfHighlight_Selected 对应的动态突出显示样式。这只是一个指向 SetHighlightStyle(Prs3d_TypeOfHighlight_Dynamic, theStyle) 的快捷方式。
SetHighlightStyle() [2/2]
设置突出显示样式设置。提示:最好修改由方法 HighlightStyle() 返回的现有样式,而不是创建新的 Prs3d_Drawer,以避免由于错误配置而导致意外结果。
如果创建了新的突出显示样式,请务必检查其演示 Z 层,否则突出显示可能无法按预期工作。
26:SelectionStyle
返回当前选择样式设置,对应于 Prs3d_TypeOfHighlight_Selected。这只是一个指向 HighlightStyle(Prs3d_TypeOfHighlight_Selected) 的快捷方式。
27:SetSelectionStyle
设置选择突出显示的样式。这只是一个指向 SetHighlightStyle(Prs3d_TypeOfHighlight_Selected, theStyle) 的快捷方式。
28:HilightWithColor
更改视图中对象的所有线条的颜色。
29:Unhilight
从对象中移除突出显示。
30:DisplayPriority
返回对象的显示优先级。
31:SetDisplayPriority
重载1:设置对象可见部分呈现的显示优先级。
重载2:(“从 OCCT7.7 开始已弃用,应该传递 Graphic3d_DisplayPriority 而不是整数到 SetDisplayPriority() 函数”)
32:GetZLayer
获取设置为显示的交互对象的 Z 层 ID。
33:SetZLayer
为交互对象设置 Z 层 ID。Z 层可以用于在场景中的其他对象前临时显示某个对象的呈现。Z 层的 ID 由 V3d_Viewer 生成。
34:SetViewAffinity
设置在指定视图中的对象可见性。如果对象在此上下文中未显示,则没有效果。
Display Mode management
35:DisplayMode
返回默认使用的显示模式设置。
36:SetDisplayMode
重载1:设置可见交互对象的显示模式。theMode 提供实体 theIObj 的显示模式索引。
重载2:设置可见交互对象(没有重写显示模式的对象)的显示模式。
37:UnsetDisplayMode
取消设置可见交互对象的显示模式。
object local transformation management
38:SetLocation
将位置放在对象的初始图形表示和选择上。
39:ResetLocation
将对象放回其初始位置。
40:HasLocation
如果对象有位置,则返回 true。
41:Location
返回对象的位置。
42:SetTransformPersistence
设置变换持久性。
mouse picking logic (detection and dynamic highlighting of entities under cursor)鼠标选择逻辑(检测和动态突出显示光标下的实体)。
43:SetPixelTolerance
设置 MoveTo() 操作的像素容差。
44:PixelTolerance
返回像素容差,默认为 2。像素容差扩展了 MoveTo() 操作中的灵敏度(通过点拾取),可以根据用户输入精度(例如屏幕像素密度、输入设备精度等)由应用程序进行调整。
45:SetSelectionSensitivity
允许管理交互对象 theObject 的特定选择的灵敏度,并将选择中以 theMode 为前提的所有敏感实体的先前灵敏度值更改为给定的 theNewSensitivity。
46:LastActiveView
返回上一个活动视图(MoveTo()/Select() 方法的参数)。
47:MoveTo
重载1:将轴 theAxis 传递给交互上下文选择器。这是由视图 theView 通过将该轴传递给主观察者并更新来完成的。如果将 ToRedrawOnUpdate 设置为 false,则被调用者应该调用 RedrawImmediate() 来突出显示检测到的对象。
重载2:突出显示检测到的对象。如果将 ToRedrawOnUpdate 设置为 false,则被调用者应该调用 RedrawImmediate() 来更新视图。
重载3:将以像素为单位的鼠标位置 theXPix 和 theYPix 转发给交互上下文选择器。这是通过视图 theView 将该位置传递给主观察者并更新来完成的。如果将 ToRedrawOnUpdate 设置为 false,则被调用者应该调用 RedrawImmediate() 来突出显示检测到的对象。
另请参阅
- PickingStrategy()
- HighlightStyle() 定义检测到的所有者的默认动态突出显示样式(Prs3d_TypeOfHighlight_Dynamic 和 Prs3d_TypeOfHighlight_LocalDynamic)
- PrsMgr_PresentableObject::DynamicHilightAttributes() 定义检测到的所有者的每个对象动态突出显示样式(覆盖默认值)
48:ClearDetected
清除由 MoveTo() 检测到的实体列表,并重置动态突出显示。
参数
- theToRedrawImmediate:如果为 TRUE,则主 Viewer 将在更新时重绘
返回值
- 如果视图需要更新(例如,实际上存在动态突出显示的实体),则返回 TRUE
49:HasDetected
如果上下文中有鼠标检测到的实体,则返回 true。
另请参阅
- DetectedOwner()
- HasNextDetected()
- HilightPreviousDetected()
- HilightNextDetected()
50:DetectedOwner
返回当前动态突出显示的检测到的敏感原始物的所有者。警告!此方法与 InitDetected()/MoreDetected()/NextDetected() 无关。
另请参阅
- HasDetected()
- HasNextDetected()
- HilightPreviousDetected()
- HilightNextDetected()
51:DetectedInteractive
返回上下文中最后检测到的交互对象。通常,这只是 DetectedOwner()->Selectable() 的 Handle(AIS_InteractiveObject)::DownCast() 包装。
另请参阅
- DetectedOwner()
52:HasDetectedShape
如果本地上下文中存在检测到的形状,则返回 true。
另请参阅
- HasDetected()
- DetectedShape()
已弃用:
(“本地上下文已弃用 - 应该使用无本地上下文的本地选择”)
53:DetectedShape
返回本地上下文中检测到的形状。
另请参阅
- DetectedOwner()
已弃用:
(“本地上下文已弃用 - 应该使用无本地上下文的本地选择”)
54:HasNextDetected
如果在上次鼠标检测中检测到了其他实体,则返回 True。
另请参阅
- HilightPreviousDetected()
- HilightNextDetected()
56:HilightNextDetected
如果选择器检测到多个对象,则只有“最佳”所有者会在鼠标位置突出显示。该方法允许用户依次突出显示其他检测到的实体。如果调用 select 方法,则所选实体将成为突出显示的实体!警告:循环方法。当所有检测到的实体都已突出显示时,下一次调用将再次突出显示第一个实体。
返回值:
突出显示实体的排名
另请参阅:
- HasNextDetected()
- HilightPreviousDetected()
57:HilightPreviousDetected
与前面的方法相同,但是在相反的方向上。
另请参阅:
- HasNextDetected()
- HilightNextDetected()
iteration through detected entities 迭代检测到的实体
58:InitDetected
初始化迭代器,以便在交互上下文中或本地上下文中(如果已打开)迭代鼠标检测到的对象。
另请参阅:
- DetectedCurrentOwner()
- MoreDetected()
- NextDetected()
60:MoreDetected
如果在迭代鼠标检测到的交互对象期间,当前对象之后还有更多鼠标检测到的对象,则返回 TRUE。
另请参阅:
- DetectedCurrentOwner()
- InitDetected()
- NextDetected()
61:NextDetected
在迭代鼠标检测到的交互对象期间获取下一个当前对象。
另请参阅:
- DetectedCurrentOwner()
- InitDetected()
- MoreDetected()
62:DetectedCurrentOwner
返回由当前迭代器位置指向的检测到列表中的所有者。警告!此方法与 DetectedOwner() 无关,后者返回最后选择的所有者,而不管迭代器位置如何!
另请参阅:
- InitDetected()
- MoreDetected()
- NextDetected()
Selection management
续看篇章2
相关文章:
opencascade AIS_InteractiveContext源码学习1
AIS_InteractiveContext 前言 交互上下文(Interactive Context)允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是,对于已经被交互上下文识别的交互对象,必须使用上下文方法进行…...

TIA博途 WinCC下载到面板时,提示错误消息:“装载过程终止由于传输错误:8020AB001A06FFF4!”的解决办法
TIA博途 WinCC下载到面板时,提示错误消息:“装载过程终止由于传输错误:8020AB001A06FFF4!”的解决办法 这个错误信息是由于缺少设备镜像无法下载到操作面板而导致的。 当使用 TIA V15.1 Update 4 和 Update 5 组态 TP1000F Mobile 时,请遵守特别注意事项。 问题 在编译一个…...

【MySQL】聊聊数据库是如何保证数据不丢的
对于一个存储系统来说,其中比较关键的核心组件包含,网络、存储模型、持久化、数据结构等。而数据如何保证不丢失,对于不同的存储系统来说,比如Redis采用AOF和RDB的方式进行混合使用,而MySQL采用日志进行保证。也就是re…...

GitLab教程(四):分支(branch)和合并(merge)
文章目录 1.分支(branch)(1)分支的概念(2)branch命令 2.合并(merge)(1)三个命令pullfetchmergegit fetchgit mergegit pull (2)合并冲…...

2021数学建模A题目–“FAST”主动反射面的形状调节
A 题——“FAST”主动反射面的形状调节 思路:该题主要是通过利用伸缩杆调整FAST反射面,给出合适的调整方案 程序获取 第一题问题思路与结果: 当待观测天体S位于基准球面正上方,结合考虑反射面板调节因素,确定理想抛物…...

华为---- RIP路由协议基本配置
08、RIP 8.1 RIP路由协议基本配置 8.1.1 原理概述 RIP(Routing Information Protocol,路由协议)作为最早的距离矢量IP路由协议,也是最先得到广泛使用的一种路由协议,采用了Bellman-Ford算法,其最大的特点就是配置简单。 RIP协议要求网络中…...

Android studio在Ubuntu桌面上 创建桌面图标,以及导航栏图标
Android studio在Ubuntu桌面上 创建桌面图标,以及导航栏图标 1. 下载Android studio for Lunux 免安装版本之后,解压 2. 通过控制台运行 ~/Documents/android-studio-2024.1.1.2-linux/android-studio/bin$ ./studio.sh 3. 选择菜单,Tools…...

JAVA云HIS医院管理系统源码 云HIS系统的应用场景
JAVA云HIS医院管理系统源码 云HIS系统的应用场景 云HIS是针对中小医疗健康机构推出的一套基于云端的诊所云HIS服务平台,包括内部管理系统、临床辅助决策系统、体检系统、客户管理与服务系统、健康管理系统、知识管理系统、医患沟通系统、线上营销系统、其他外部系…...

Handler机制
目录 一、简介二、相关概念解释2.1 Message(消息)2.2 Handler(处理器)2.2.1 Handler的构造方法2.2.2 Handler sendMessage()相关的方法2.2.3 Handler dispatchMessage()方法 2.3 Mes…...

鸿蒙实现金刚区效果
前言: DevEco Studio版本:4.0.0.600 所谓“金刚区"是位于APP功能入口的导航区域,通常以“图标文字”的宫格导航的形式出现。之所以叫“金刚区”,是因为该区域会随着业务目标的改变,展示不同的功能图标ÿ…...
Ubuntu 查看设备温度
要在Ubuntu中查看设备的温度,可以使用一些命令行工具来获取系统硬件的温度信息。下面列出了几种常用的方法: 方法 1: 使用 sensors 命令 sensors 命令用于读取和显示系统中的传感器数据,包括CPU温度和其他硬件传感器的信息。首先需要安装 l…...

大型网站优化指南:打造流畅的在线体验
大型网站 大型网站是指具有高并发、大流量、高可用性、海量数据处理能力,并能提供7*24小时不间断服务的网站。 这些网站通常面临用户分布广泛、网络情况复杂、安全环境恶劣等挑战。 同时需要快速适应市场变化和用户需求,通过渐进式的发展策略运营成大型…...

Redis变慢了?
Redis变慢了? 什么是Redis?测定Redis变慢?最大响应延迟平均响应延迟设置Redis慢日志 分析Redis变慢bigkeysbigkey的危害bigkey优化 写在最后 什么是Redis? 作为一个技术人员来说,大家用的最多的可能就是Redis了&#…...

11.6.k8s实战-节点扩缩容
目录 一,需求描述 二、集群缩容-节点下线 1,节点下线案例说明 2,查看现有节点 3,查看所有名称空间下的pod 编辑4,驱逐下线节点的pod 5,驱逐后再次查看pod 6,驱逐pod后再次查看节点信息…...

相亲交友APP系统|婚恋交友社交软件|语音聊天平台定制开发
在现代社会,婚恋交友已经成为了人们日常生活中的一项重要任务。为了方便用户进行相亲交友活动,各种相亲交友APP系统和婚恋交友社交软件应运而生。本文将介绍相亲交友APP系统、婚恋交友社交软件的开发以及语音聊天平台的定制开发的相关知识和指导。 一、…...

2005-2022年款福特福克斯维修手册和电路图线路图接线图资料更新
经过整理,2005-2022年款福特福克斯全系列已经更新至汽修帮手资料库内,覆盖市面上99%车型,包括维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针脚定义、模块传感器、保险丝盒图解对…...

nodejs爬取小红书图片
昨天的文章已经描述了可以抓取评论区内容, 抓取图片内容和抓取评论区的内容基本一致 我们可以看到接口信息中含有图片链接,我们要做的就是爬取图片链接然后下载 这边要用到的模块为const downloadrequire(download) 将爬到的图片链接存放到images数组…...

MySQL从5.7升级到8.0步骤及其问题
MySQL从5.7升级到8.0步骤及其问题 前言 本文源自微博客,且以获得授权,请尊重版权。 一、需求背景 Docker环境下,MySQL5.7升级到8.0,数据迁移时使用的是mysqldump方式迁移。 二、迁移步骤 数据备份: docker exec -i 1…...

中年帕金森:守护健康,从容面对生活挑战
在快节奏的现代生活中,中年人群面临着越来越多的健康挑战。其中,帕金森病作为一种常见的神经系统疾病,逐渐引起了人们的关注。帕金森病不仅影响患者的身体健康,还对其日常生活造成极大的困扰。那么,我们该如何应对中年…...
oracle块跟踪
1.查询块跟踪 select status,filename,bytes from v$block_change_tracking;2.打开块跟踪 ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE /home/oracle/block_change_tracking.log;3.关闭块跟踪 ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;4.解释 Oracle数据…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

什么是VR全景技术
VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...