Files
oapy/design/oaModVectorInstDef.html

678 lines
51 KiB
HTML
Raw Normal View History

2026-06-02 14:14:41 +08:00
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>oaModVectorInstDef</title>
<style>
body {
margin: 0;
background: #0d0b0b;
color: #f5f1ec;
font-family: Arial, Helvetica, sans-serif;
line-height: 1.5;
}
a {
color: #f2d6c2;
text-decoration: none;
}
a:hover {
text-decoration: underline;
color: #fff4ea;
}
.topbar {
border-bottom: 1px solid #6f3d2d;
background: #120f0f;
}
.topbar-inner {
max-width: 1440px;
margin: 0 auto;
padding: 14px 20px 10px;
}
.brand {
font-size: 28px;
font-weight: 700;
color: #fff8f2;
margin: 0 0 10px;
}
.tabs {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.tab {
display: inline-block;
padding: 6px 12px;
border: 1px solid #6f3d2d;
background: #151111;
color: #f2d6c2;
font-size: 13px;
}
.tab.active {
background: #4b2317;
font-weight: 700;
color: #fff8f2;
}
.layout {
max-width: 1440px;
margin: 0 auto;
display: grid;
grid-template-columns: 280px minmax(0, 1fr);
gap: 28px;
padding: 24px 24px 40px;
}
.sidebar {
font-size: 13px;
}
.sidebar-panel {
border: 1px solid #6f3d2d;
margin-bottom: 16px;
background: #151111;
}
.sidebar-title {
background: #2a1713;
border-bottom: 1px solid #6f3d2d;
padding: 8px 10px;
font-weight: 700;
color: #fff1e8;
}
.sidebar-body {
padding: 8px 10px;
}
.sidebar-search {
width: 100%;
box-sizing: border-box;
padding: 6px 8px;
border: 1px solid #6f3d2d;
background: #0d0b0b;
color: #f5f1ec;
font-size: 13px;
margin-bottom: 8px;
}
.sidebar-search::placeholder {
color: #c8a995;
}
.sidebar-body ul {
list-style: none;
padding: 0;
margin: 0;
}
.sidebar-body li.hidden {
display: none;
}
.active-link {
font-weight: 700;
color: #fff8f2;
}
.sidebar-body li + li {
margin-top: 6px;
}
.content {
min-width: 0;
}
.content-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 0;
align-items: start;
}
.doc {
border: 1px solid #6f3d2d;
background: #120f0f;
padding: 24px 28px 32px;
min-width: 0;
}
.toc-panel {
border: 1px solid #6f3d2d;
background: #151111;
padding: 0;
position: sticky;
top: 16px;
margin-bottom: 16px;
}
.toc-toggle {
width: 100%;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 12px 14px;
border: 0;
background: #2a1713;
color: #fff1e8;
cursor: pointer;
font-size: 14px;
font-weight: 700;
}
.toc-toggle:hover {
background: #3a1d16;
}
.toc-toggle-indicator {
font-size: 12px;
color: #d6ac96;
}
.toc-body {
display: none;
padding: 14px 16px;
}
.toc-panel.open .toc-body {
display: block;
}
.toc-panel h2 {
margin: 0 0 10px;
padding: 0;
border: 0;
font-size: 18px;
color: #fff1e8;
}
.toc-panel ul {
list-style: none;
padding: 0;
margin: 0;
}
.toc-panel li + li {
margin-top: 8px;
}
.toc-panel a {
font-size: 13px;
line-height: 1.35;
color: #f2d6c2;
}
.crumbs {
color: #c8a995;
font-size: 13px;
margin-bottom: 14px;
}
.meta {
border: 1px solid #6f3d2d;
background: #151111;
padding: 10px 12px;
margin: 16px 0 20px;
font-size: 13px;
}
.meta div + div {
margin-top: 4px;
}
.doc h1 {
margin: 0 0 8px;
font-size: 34px;
color: #fff8f2;
}
.doc h2 {
margin: 28px 0 12px;
padding-bottom: 4px;
border-bottom: 1px solid #6f3d2d;
font-size: 22px;
color: #fff1e8;
}
.doc h3 {
margin: 22px 0 10px;
font-size: 18px;
color: #f7e1d5;
}
.doc p, .doc li {
font-size: 14px;
}
.doc pre {
overflow-x: auto;
background: #0d0b0b;
border: 1px solid #6f3d2d;
padding: 12px 14px;
}
.doc code {
font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
font-size: 12px;
overflow-wrap: anywhere;
word-break: break-word;
color: #f7e1d5;
}
.doc table {
width: 100%;
border-collapse: collapse;
margin: 12px 0 18px;
font-size: 13px;
table-layout: fixed;
}
.doc th, .doc td {
border: 1px solid #6f3d2d;
padding: 7px 9px;
vertical-align: top;
text-align: left;
overflow-wrap: anywhere;
word-break: break-word;
}
.doc th {
background: #2a1713;
color: #fff1e8;
}
.doc blockquote {
margin: 14px 0;
padding: 8px 12px;
border-left: 4px solid #8a4a36;
background: #151111;
color: #f2d6c2;
}
.search-panel {
border: 1px solid #6f3d2d;
background: #151111;
padding: 16px 18px;
margin-bottom: 20px;
}
.search-panel input {
width: 100%;
box-sizing: border-box;
padding: 8px 10px;
border: 1px solid #6f3d2d;
background: #0d0b0b;
color: #f5f1ec;
font-size: 14px;
}
.search-panel input::placeholder {
color: #c8a995;
}
.search-results {
list-style: none;
padding: 0;
margin: 16px 0 0;
}
.search-results li {
border-top: 1px solid #4b2317;
padding: 10px 0;
}
.search-results li.hidden {
display: none;
}
.search-results a {
font-weight: 700;
}
.search-results .module-tag {
display: inline-block;
margin-left: 8px;
padding: 2px 6px;
border: 1px solid #8a4a36;
background: #2a1713;
color: #f2d6c2;
font-size: 12px;
}
.search-results .result-path {
margin-top: 4px;
color: #c8a995;
font-size: 12px;
}
.footer {
max-width: 1440px;
margin: 0 auto;
padding: 0 20px 28px;
color: #b89481;
font-size: 12px;
}
.doc > * {
min-width: 0;
}
@media (max-width: 960px) {
.layout {
grid-template-columns: 1fr;
}
.content-grid {
grid-template-columns: 1fr;
}
.toc-panel {
position: static;
}
}
</style>
</head>
<body>
<div class="topbar">
<div class="topbar-inner">
<div class="brand"><a href="../index.html">AIVI / oapy API 中文文档</a></div>
<div class="tabs"><a class="tab" href="../base/index.html">base</a><a class="tab" href="../common/index.html">common</a><a class="tab" href="../cms/index.html">cms</a><a class="tab" href="../dm/index.html">dm</a><a class="tab active" href="../design/index.html">design</a><a class="tab" href="../tech/index.html">tech</a><a class="tab" href="../wafer/index.html">wafer</a></div>
</div>
</div>
<div class="layout">
<aside class="sidebar"><div class="sidebar-panel"><div class="sidebar-title">模块</div><div class="sidebar-body"><ul><li><a href="../classes.html">全部类</a></li><li><a href="../base/index.html">base</a></li><li><a href="../common/index.html">common</a></li><li><a href="../cms/index.html">cms</a></li><li><a href="../dm/index.html">dm</a></li><li><a class="active-link" href="../design/index.html">design</a></li><li><a href="../tech/index.html">tech</a></li><li><a href="../wafer/index.html">wafer</a></li></ul></div></div><div class="sidebar-panel"><div class="sidebar-title">design 类</div><div class="sidebar-body"><input class="sidebar-search" type="search" placeholder="筛选类" data-class-filter><ul><li data-class-item data-class-name="iregionqueryplugmgr"><a href="IRegionQueryPlugMgr.html">IRegionQueryPlugMgr</a></li><li data-class-item data-class-name="oaanalysisoppoint"><a href="oaAnalysisOpPoint.html">oaAnalysisOpPoint</a></li><li data-class-item data-class-name="oaanalysispoint"><a href="oaAnalysisPoint.html">oaAnalysisPoint</a></li><li data-class-item data-class-name="oaanalysispointarray"><a href="oaAnalysisPointArray.html">oaAnalysisPointArray</a></li><li data-class-item data-class-name="oaarc"><a href="oaArc.html">oaArc</a></li><li data-class-item data-class-name="oaareablockage"><a href="oaAreaBlockage.html">oaAreaBlockage</a></li><li data-class-item data-class-name="oaareaboundary"><a href="oaAreaBoundary.html">oaAreaBoundary</a></li><li data-class-item data-class-name="oaareahalo"><a href="oaAreaHalo.html">oaAreaHalo</a></li><li data-class-item data-class-name="oaarrayinst"><a href="oaArrayInst.html">oaArrayInst</a></li><li data-class-item data-class-name="oaassignassignment"><a href="oaAssignAssignment.html">oaAssignAssignment</a></li><li data-class-item data-class-name="oaassignvalue"><a href="oaAssignValue.html">oaAssignValue</a></li><li data-class-item data-class-name="oaassignednetspec"><a href="oaAssignedNetSpec.html">oaAssignedNetSpec</a></li><li data-class-item data-class-name="oaassignment"><a href="oaAssignment.html">oaAssignment</a></li><li data-class-item data-class-name="oaassignmentattrtype"><a href="oaAssignmentAttrType.html">oaAssignmentAttrType</a></li><li data-class-item data-class-name="oaassignmentdef"><a href="oaAssignmentDef.html">oaAssignmentDef</a></li><li data-class-item data-class-name="oaattrdisplay"><a href="oaAttrDisplay.html">oaAttrDisplay</a></li><li data-class-item data-class-name="oaattrtype"><a href="oaAttrType.html">oaAttrType</a></li><li data-class-item data-class-name="oabasememnetcollection"><a href="oaBaseMemNetCollection.html">oaBaseMemNetCollection</a></li><li data-class-item data-class-name="oabasememnetiter"><a href="oaBaseMemNetIter.html">oaBaseMemNetIter</a></li><li data-class-item data-class-name="oabitinst"><a href="oaBitInst.html">oaBitInst</a></li><li data-class-item data-class-name="oabitnet"><a href="oaBitNet.html">oaBitNet</a></li><li data-class-item data-class-name="oabitorder"><a href="oaBitOrder.html">oaBitOrder</a></li><li data-class-item data-class-name="oabitterm"><a href="oaBitTerm.html">oaBitTerm</a></li><li data-class-item data-class-name="oablock"><a href="oaBlock.html">oaBlock</a></li><li data-class-item data-class-name="oablockdomainvisibility"><a href="oaBlockDomainVisibility.html">oaBlockDomainVisibility</a></li><li data-class-item data-class-name="oablockobject"><a href="oaBlockObject.html">oaBlockObject</a></li><li data-class-item data-class-name="oablockage"><a href="oaBlockage.html">oaBlockage</a></li><li data-class-item data-class-name="oablockagequery"><a href="oaBlockageQuery.html">oaBlockageQuery</a></li><li data-class-item data-class-name="oablockagetype"><a href="oaBlockageType.html">oaBlockageType</a></li><li data-class-item data-class-name="oaboundary"><a href="oaBoundary.html">oaBoundary</a></li><li data-class-item data-class-name="oaboundaryquery"><a href="oaBoundaryQuery.html">oaBoundaryQuery</a></li><li data-class-item data-class-name="oabundlenet"><a href="oaBundleNet.html">oaBundleNet</a></li><li data-class-item da
<main class="content">
<div class="content-grid">
<div class="doc">
<div class="crumbs"><a href="../index.html">首页</a> / <a href="index.html">design</a> / oaModVectorInstDef</div>
<h1 id="oamodvectorinstdef">oaModVectorInstDef</h1>
<p><strong>模块</strong>: <code>oapy._oa._design</code>
<strong>导入</strong>: <code>from oapy._oa import _design</code></p>
<h2 id="_1">概览</h2>
<p><code>oaModVectorInstDef</code><code>oapy</code> 中可用,可通过 <code>_design</code> 模块访问。</p>
<p>本页汇总 <code>oaModVectorInstDef</code> 当前在 <code>oapy</code> 中可用的 Python 接口。</p>
<h2 id="_2">详细说明</h2>
<p>The oaModVectorInstDef class implements the definition of a module vectorInst, including its base name and bit-range。 All vectorInsts in a module with the same base name are managed by the same vectorInst definition。 The oaModvectorInstDef class tracks the minimum and maximum indices referred to by all of its corresponding vectorInst objects。 A vectorInstDef can be 'sparse' (have missing bits)。 Vectors do not have to start or end at zero。 For example, a[22:25] is a legal vectorInst name。 Vector indexes must be non-negative。 An vectorInstDef is automatically created if necessary whenever applications create vectorInsts。 Implicitly created vectorInst definitions have no bitOrder。 Applications may explicitly create a vectorInst definition in order to specify that it has a specific bitOrder。 The bit order of an explicit oaModVectorInstDef is independent of the order within individual oaModVectorInsts with the same base name。 Verilog requires a single wire declaration for a given base name, and the range of that declaration covers all of the bit indices used by the sub-ranges that correspond to oaModVectorInsts。 Implicitly created vectorInst definitions are automatically destroyed when the last vectorInst with the same base name is destroyed。 Explicitly created vectorInst definitions must be explicitly destroyed。 The oaModVectorInstDef class can be observed by deriving from oaObserver<oaModVectorInstDef></p>
<h2 id="_3">方法总览</h2>
<table>
<thead>
<tr>
<th>状态</th>
<th>Python 调用</th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td><code>obj.destroy()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.getMinIndex()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.getMaxIndex()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.getNumBits()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.getName(name)</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.getName(ns, name)</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.getBitOrder()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.isImplicit()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.setBitOrder(order)</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.getVectorInsts()</code></td>
</tr>
<tr>
<td></td>
<td><code>obj.getVectorInstBits()</code></td>
</tr>
<tr>
<td></td>
<td><code>_design.oaModVectorInstDef.create(module, name, order)</code></td>
</tr>
<tr>
<td></td>
<td><code>_design.oaModVectorInstDef.find(module, name)</code></td>
</tr>
</tbody>
</table>
<h2 id="_4">方法说明</h2>
<h3 id="objdestroy"><code>obj.destroy()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.destroy()</code></p>
<p>This function destroys this oaModVectorInstDef, removing it from the database。 An exception is thrown if the oaModVectorInstDef is implicit or if there are still oaModVectorInsts associated with it。</p>
<p><strong>异常</strong></p>
<ul>
<li><code>oacCannotDestroyImplicitVectorInstDef</code></li>
<li><code>oacCannotDestroyVectorInstDefWithInsts</code></li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaModVectorInstDef
obj.destroy()
</code></pre>
<h3 id="objgetminindex"><code>obj.getMinIndex()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.getMinIndex()</code></p>
<p>This function returns the smallest bit number in use for this oaModVectorInstDef object。 This is the smallest index used across all vectorInsts associated with this oaModVectorInstDef object。</p>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaModVectorInstDef
obj.getMinIndex()
</code></pre>
<h3 id="objgetmaxindex"><code>obj.getMaxIndex()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.getMaxIndex()</code></p>
<p>This function returns the largest bit number in use for this oaModVectorInstDef object。 This is the largest index used across all vectorInsts associated with this oaModVectorInstDef object。</p>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaModVectorInstDef
obj.getMaxIndex()
</code></pre>
<h3 id="objgetnumbits"><code>obj.getNumBits()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.getNumBits()</code></p>
<p>This function returns the number of bits covered by the vectorInsts in this oaModVectorInstDef。 The number of bits is equal to abs(maxIndex - minIndex) + 1。</p>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaModVectorInstDef
obj.getNumBits()
</code></pre>
<h3 id="objgetnamename"><code>obj.getName(name)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.getName(name)</code></p>
<p>This function returns the name string of this oaModVectorInstDef object in the specified nameSpace。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>ns</code>: The nameSpace to use when getting the name string。</li>
<li><code>name</code>: Returns the string name of this oaModVectorInstDef。</li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaModVectorInstDef
obj.getName(name)
</code></pre>
<h3 id="objgetnamens-name"><code>obj.getName(ns, name)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.getName(ns, name)</code></p>
<p>This function returns the name of this oaModVectorInstDef object。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>name</code>: The scalar name in which to return the oaModVectorInstDef object name。</li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaModVectorInstDef
obj.getName(ns, name)
</code></pre>
<h3 id="objgetbitorder"><code>obj.getBitOrder()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.getBitOrder()</code></p>
<p>This function returns the bitOrder associated with this oaModVectorInstDef object。</p>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaModVectorInstDef
obj.getBitOrder()
</code></pre>
<h3 id="objisimplicit"><code>obj.isImplicit()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.isImplicit()</code></p>
<p>This function returns a boolean indicating whether this oaModVectorInstDef was implicitly created or not。</p>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaModVectorInstDef
obj.isImplicit()
</code></pre>
<h3 id="objsetbitorderorder"><code>obj.setBitOrder(order)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.setBitOrder(order)</code></p>
<p>This function changes the bitOrder value associated with the oaModVectorInstDef。 An exception is thrown if this vectorInstDef was implicitly created。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>order</code>: The new bitOrder value for this vectorInstDef。</li>
</ul>
<p><strong>异常</strong></p>
<ul>
<li><code>oacBitOrderVectorInstDefImplicit</code></li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaModVectorInstDef
obj.setBitOrder(order)
</code></pre>
<h3 id="objgetvectorinsts"><code>obj.getVectorInsts()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.getVectorInsts()</code></p>
<p>This function returns a collection of oaModVectorInst and oaModModuleVectorInst objects associated with this oaModVectorInstDef object。</p>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaModVectorInstDef
obj.getVectorInsts()
</code></pre>
<h3 id="objgetvectorinstbits"><code>obj.getVectorInstBits()</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>obj.getVectorInstBits()</code></p>
<p>This function returns a collection of oaModVectorInstBit and oaModModuleVectorInstBit objects associated with this oaModVectorInstDef object。</p>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
# assume obj is a oaModVectorInstDef
obj.getVectorInstBits()
</code></pre>
<h3 id="_designoamodvectorinstdefcreatemodule-name-order"><code>_design.oaModVectorInstDef.create(module, name, order)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>_design.oaModVectorInstDef.create(module, name, order)</code></p>
<p>This function creates an oaModVectorInstDef in the specified module with the given base name and bit order。 An exception is thrown if an oaModVectorInstDef already exists with the specified name。 Explicitly creating an oaModVectorInstDef also means that the vectorInst definition must be explicitly destroyed。</p>
<p><strong>参数</strong></p>
<ul>
<li><code>module</code>: The module to create the oaModVectorInstDef object in。</li>
<li><code>name</code>: The base name for the oaModVectorInstDef。</li>
<li><code>order</code>: The bit order for the oaModVectorInstDef。</li>
</ul>
<p><strong>异常</strong></p>
<ul>
<li><code>oacVectorInstDefAlreadyExists</code></li>
</ul>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
_design.oaModVectorInstDef.create(module, name, order)
</code></pre>
<h3 id="_designoamodvectorinstdeffindmodule-name"><code>_design.oaModVectorInstDef.find(module, name)</code></h3>
<p><strong>绑定状态</strong>: 已绑定</p>
<p><strong>Python 调用</strong>: <code>_design.oaModVectorInstDef.find(module, name)</code></p>
<p>This function searches the specified module for a vectorInstDef with the specified name。 The function returns the vectorInstDef if it finds it。 Otherwise, NULL is returned。</p>
<p><strong>Python 示例</strong></p>
<pre><code class="language-python">from oapy._oa import _design
_design.oaModVectorInstDef.find(module, name)
</code></pre>
</div>
<aside class="toc-panel"><button class="toc-toggle" type="button" data-toc-toggle aria-expanded="false"><span>方法</span><span class="toc-toggle-indicator">展开</span></button><div class="toc-body"><h2>方法</h2><ul><li><a href="#obj-destroy"><code>obj.destroy()</code></a></li><li><a href="#obj-getminindex"><code>obj.getMinIndex()</code></a></li><li><a href="#obj-getmaxindex"><code>obj.getMaxIndex()</code></a></li><li><a href="#obj-getnumbits"><code>obj.getNumBits()</code></a></li><li><a href="#obj-getname-name"><code>obj.getName(name)</code></a></li><li><a href="#obj-getname-ns-name"><code>obj.getName(ns, name)</code></a></li><li><a href="#obj-getbitorder"><code>obj.getBitOrder()</code></a></li><li><a href="#obj-isimplicit"><code>obj.isImplicit()</code></a></li><li><a href="#obj-setbitorder-order"><code>obj.setBitOrder(order)</code></a></li><li><a href="#obj-getvectorinsts"><code>obj.getVectorInsts()</code></a></li><li><a href="#obj-getvectorinstbits"><code>obj.getVectorInstBits()</code></a></li><li><a href="#design-oamodvectorinstdef-create-module-name-order"><code>_design.oaModVectorInstDef.create(module, name, order)</code></a></li><li><a href="#design-oamodvectorinstdef-find-module-name"><code>_design.oaModVectorInstDef.find(module, name)</code></a></li></ul></div></aside>
</div>
</main>
</div>
<div class="footer">oapy 是 AIVI 项目的一部分。此站点提供当前 oapy Python API 的中文文档。</div>
<script>
document.addEventListener("DOMContentLoaded", () => {
const input = document.querySelector("[data-class-filter]");
if (input) {
input.addEventListener("input", () => {
const term = input.value.trim().toLowerCase();
document.querySelectorAll("[data-class-item]").forEach((item) => {
const name = item.getAttribute("data-class-name") || "";
item.classList.toggle("hidden", term && !name.includes(term));
});
});
}
const globalInput = document.querySelector("[data-global-search]");
if (globalInput) {
globalInput.addEventListener("input", () => {
const term = globalInput.value.trim().toLowerCase();
document.querySelectorAll("[data-search-item]").forEach((item) => {
const name = item.getAttribute("data-search-name") || "";
const module = item.getAttribute("data-search-module") || "";
const visible = !term || name.includes(term) || module.includes(term);
item.classList.toggle("hidden", !visible);
});
});
}
document.querySelectorAll("[data-toc-toggle]").forEach((button) => {
button.addEventListener("click", () => {
const panel = button.closest(".toc-panel");
if (!panel) return;
const isOpen = panel.classList.toggle("open");
button.setAttribute("aria-expanded", isOpen ? "true" : "false");
const indicator = button.querySelector(".toc-toggle-indicator");
if (indicator) {
indicator.textContent = isOpen ? "Hide" : "Show";
}
});
});
});
</script>
</body>
</html>