CGA Lite 函数库参考
完整列出 qajs.com 支持的所有 CGA 操作与内置函数。
完成 已实现并测试
部分完成 基础可用,有简化或限制
未完成 仅 stub,待实现
Shape 操作
| 函数/操作 | 签名 | 状态 |
| extrude | extrude(distance) | 完成 |
| comp | comp(f) { front:... | side:... } | 完成 |
| split | split(axis) { size1:... | size2:... }* | 完成 |
| roofHip [示例] | roofHip(height) | 完成 |
| roofGable [示例] | roofGable(height) | 完成 |
| roofPyramid [示例] | roofPyramid(height) | 完成 |
| roofRidge [示例] | roofRidge(height) | 完成 |
| roofShed [示例] | roofShed(height, index) | 完成 |
| roofRadial | roofRadial(height) | 完成 |
| roofDutch | roofDutch(height) | 完成 |
| offset [示例] | offset(distance) | 部分完成 |
| taper [示例] | taper(height) | 完成 |
| envelope [示例] | envelope(height, frontAngle, sideAngle) | 部分完成 |
| setback [示例] | setback(distance) | 部分完成 |
| setbackPerEdge | setbackPerEdge(distance) { edge:... | remainder:... } | 完成 |
| splitAndSetbackPerimeter [示例] | splitAndSetbackPerimeter(splitOffset, firstEdgeIndex, selectedEdgesMask) { length:depth:ops | ... } { remainder:ops } | 完成 |
| shapeL [示例] | shapeL(frontWidth, leftWidth) | 部分完成 |
| shapeU [示例] | shapeU(frontWidth, rightWidth, leftWidth) | 部分完成 |
| shapeO [示例] | shapeO(frontW, rightW, backW, leftW) | 部分完成 |
| center | center(axes) | 完成 |
| mirror [示例] | mirror(xFlip, yFlip, zFlip) | 完成 |
| mirrorScope | mirrorScope(xFlip, yFlip, zFlip) | 完成 |
| reverseNormals | reverseNormals() | 完成 |
| setNormals [示例] | setNormals(mode) | 完成 |
| softenNormals [示例] | softenNormals(angle) | 完成 |
| cleanupGeometry [示例] | cleanupGeometry(tolerance) | 部分完成 |
| deleteHoles [示例] | deleteHoles() | 部分完成 |
| convexify [示例] | convexify() | 部分完成 |
| resetGeometry [示例] | resetGeometry() | 完成 |
| reduceGeometry [示例] | reduceGeometry(tolerance) | 完成 |
| rectify [示例] | rectify(angle) | 完成 |
| footprint [示例] | footprint() | 完成 |
| tag | tag("name") | 完成 |
| deleteTags | deleteTags("name") | 完成 |
| NIL | NIL | 完成 |
Scope 操作
| 函数/操作 | 签名 | 状态 |
| alignScopeToAxes [示例] | alignScopeToAxes() | 完成 |
| alignScopeToGeometry [示例] | alignScopeToGeometry(faceIndex) | 部分完成 |
| alignScopeToGeometryBBox [示例] | alignScopeToGeometryBBox(axes) | 部分完成 |
| setPivot | setPivot(ix, iy, iz) | 完成 |
材质与贴图
| 函数/操作 | 签名 | 状态 |
| color [示例] | color("#RRGGBB") / color(r, g, b) | 完成 |
| texture [示例] | texture(url) | 完成 |
| setMaterial [示例] | setMaterial("key", "val", ...) | 完成 |
| resetMaterial [示例] | resetMaterial() | 完成 |
UV 操作
| 函数/操作 | 签名 | 状态 |
| setupProjection [示例] | setupProjection(uvSet, axes, texW, texH) | 完成 |
| projectUV [示例] | projectUV(uvSet) | 完成 |
| translateUV [示例] | translateUV(uvSet, uOffset, vOffset) | 完成 |
| scaleUV [示例] | scaleUV(uvSet, uFactor, vFactor) | 完成 |
| rotateUV [示例] | rotateUV(uvSet, angle) | 完成 |
| tileUV [示例] | tileUV(uvSet, texW, texH) | 完成 |
| normalizeUV [示例] | normalizeUV(uvSet) | 完成 |
| deleteUV [示例] | deleteUV(uvSet) | 完成 |
| copyUV [示例] | copyUV(src, dst) | 完成 |
几何体
| 函数/操作 | 签名 | 状态 |
| primitiveCube [示例] | primitiveCube(w, h, d) | 完成 |
| primitiveSphere [示例] | primitiveSphere(radius, subdivisions) | 完成 |
| primitiveCylinder [示例] | primitiveCylinder(sides, radius, height) | 完成 |
| primitiveCone [示例] | primitiveCone(sides, radius, height) | 完成 |
| primitiveDisk [示例] | primitiveDisk(sides, radius) | 完成 |
| primitiveQuad [示例] | primitiveQuad(w, h) | 完成 |
| primitivePyramid [示例] | primitivePyramid() | 完成 |
高级操作
| 函数/操作 | 签名 | 状态 |
| union [示例] | union { A | B } | 部分完成 |
| subtract [示例] | subtract { A | B } | 部分完成 |
| intersect [示例] | intersect { A | B } | 部分完成 |
| insert | insert(filePath) / i(filePath) | 未完成 |
| insertAlongUV | insertAlongUV(uvSet, filePath, height) | 未完成 |
| scatter [示例] | scatter(domain, count) | 部分完成 |
| innerRectangle [示例] | innerRectangle() | 部分完成 |
| splitArea | splitArea(axis) { area1:... }* | 部分完成 |
| trim | trim() | 完成 |
| modify | modify(component) { ... } | 未完成 |
几何查询
| 函数/操作 | 签名 | 状态 |
| geometry.area | geometry.area | 部分完成 |
| geometry.volume | geometry.volume | 部分完成 |
| geometry.height | geometry.height | 完成 |
| geometry.boundaryLength | geometry.boundaryLength | 部分完成 |
| geometry.nFaces | geometry.nFaces | 完成 |
| geometry.nEdges | geometry.nEdges | 完成 |
| geometry.nVertices | geometry.nVertices | 完成 |
| geometry.nHoles | geometry.nHoles | 部分完成 |
| geometry.isPlanar | geometry.isPlanar | 部分完成 |
| geometry.isRectangular | geometry.isRectangular | 部分完成 |
| geometry.isConcave | geometry.isConcave | 部分完成 |
| geometry.isClosedSurface | geometry.isClosedSurface | 部分完成 |
| geometry.isOriented | geometry.isOriented | 部分完成 |
| geometry.isInstanced | geometry.isInstanced | 未完成 |
| geometry.hasTags | geometry.hasTags | 完成 |
| geometry.hasUVs | geometry.hasUVs | 完成 |
| geometry.angle | geometry.angle | 未完成 |
| geometry.du | geometry.du | 未完成 |
| geometry.dv | geometry.dv | 未完成 |
| geometry.groups | geometry.groups | 未完成 |
| geometry.materials | geometry.materials | 未完成 |
| geometry.tags | geometry.tags | 未完成 |
| geometry.uMin | geometry.uMin | 完成 |
| geometry.uMax | geometry.uMax | 完成 |
| geometry.vMin | geometry.vMin | 完成 |
| geometry.vMax | geometry.vMax | 完成 |
数学函数
| 函数/操作 | 签名 | 状态 |
| abs [示例] | abs(x) | 完成 |
| acos | acos(x) | 完成 |
| asin | asin(x) | 完成 |
| atan | atan(x) | 完成 |
| atan2 | atan2(y, x) | 完成 |
| ceil | ceil(x) | 完成 |
| clamp [示例] | clamp(v, min, max) | 完成 |
| cos | cos(deg) | 完成 |
| exp | exp(x) | 完成 |
| floor | floor(x) | 完成 |
| isinf | isinf(x) | 完成 |
| isnan | isnan(x) | 完成 |
| ln | ln(x) | 完成 |
| log10 | log10(x) | 完成 |
| max [示例] | max(a, b, ...) | 完成 |
| min | min(a, b, ...) | 完成 |
| pow | pow(x, y) | 完成 |
| rint | rint(x) | 完成 |
| sin [示例] | sin(deg) | 完成 |
| sqrt [示例] | sqrt(x) | 完成 |
| sum | sum(array) | 完成 |
| tan | tan(deg) | 完成 |
| sign | sign(x) | 完成 |
| frac | frac(x) | 完成 |
| trunc | trunc(x) | 完成 |
| hypot | hypot(a, b) | 完成 |
| normalize | normalize(x, y, z) | 完成 |
| dot | dot(x1,y1,z1, x2,y2,z2) | 完成 |
| cross | cross(x1,y1,z1, x2,y2,z2) | 完成 |
字符串函数
| 函数/操作 | 签名 | 状态 |
| len [示例] | len(str) | 完成 |
| count | count(str, match) | 完成 |
| find | find(str, match, n) | 完成 |
| splitString | splitString(str, delim) | 完成 |
| substring | substring(str, start, end) | 完成 |
| strreplace | strreplace(str, old, new) | 完成 |
| replace | replace(str, pattern, replacement) | 完成 |
| toupper [示例] | toupper(str) | 完成 |
| tolower | tolower(str) | 完成 |
| findLast | findLast(str, pattern) | 完成 |
| getPrefix | getPrefix(str, sep) | 完成 |
| getSuffix | getSuffix(str, sep) | 完成 |
| getRange | getRange(str, start, end) | 完成 |
| trim | trim(str) | 完成 |
| startsWith | startsWith(str, prefix) | 完成 |
| endsWith | endsWith(str, suffix) | 完成 |
| includes | includes(str, substr) | 完成 |
| format | format(fmt, ...args) | 完成 |
数组函数
| 函数/操作 | 签名 | 状态 |
| size | size(array) | 完成 |
| nRows | nRows(array) | 完成 |
| nColumns | nColumns(array) | 完成 |
| transpose | transpose(array) | 完成 |
| findFirst | findFirst(array, value, eps) | 完成 |
| findAll | findAll(array, value, eps) | 完成 |
| setElems | setElems(array, indices, values) | 完成 |
| sortIndices [示例] | sortIndices(array) | 完成 |
| sortRowIndices | sortRowIndices(array, col) | 完成 |
| reverse | reverse(array) | 完成 |
| append | append(array, item) | 完成 |
| pop | pop(array) | 完成 |
| slice | slice(array, start, end) | 完成 |
| mean | mean(array) | 完成 |
| median | median(array) | 完成 |
| std | std(array) | 完成 |
颜色函数
| 函数/操作 | 签名 | 状态 |
| colorHSVToHex | colorHSVToHex(h, s, v) | 完成 |
| colorRGBToHex [示例] | colorRGBToHex(r, g, b) | 完成 |
| colorHexToR | colorHexToR(hex) | 完成 |
| colorHexToG | colorHexToG(hex) | 完成 |
| colorHexToB | colorHexToB(hex) | 完成 |
| colorRamp [示例] | colorRamp(t, c1, c2, ...) | 完成 |
| colorHSVOToHex | colorHSVOToHex(h, s, v, o) | 完成 |
| colorRGBOToHex | colorRGBOToHex(r, g, b, o) | 完成 |
| colorHexToH | colorHexToH(hex) | 完成 |
| colorHexToS | colorHexToS(hex) | 完成 |
| colorHexToV | colorHexToV(hex) | 完成 |
概率与随机
| 函数/操作 | 签名 | 状态 |
| p [示例] | p(probability) | 完成 |
| rand [示例] | rand() / rand(max) / rand(min, max) | 完成 |
| rand.int | rand.int(min, max) | 完成 |
| rand.gaussian | rand.gaussian(mean, stddev) | 完成 |
文件函数
| 函数/操作 | 签名 | 状态 |
| fileBasename [示例] | fileBasename(path) | 完成 |
| fileDirectory | fileDirectory(path) | 完成 |
| fileExtension [示例] | fileExtension(path) | 完成 |
| fileName | fileName(path) | 完成 |
| fileRandom | fileRandom(path) | 完成 |
| fileExists | fileExists(path) | 部分完成 |
| fileSearch | fileSearch(pattern) | 部分完成 |
| filesSearch | filesSearch(pattern) | 部分完成 |
| readFloatTable | readFloatTable(content) | 部分完成 |
| readStringTable | readStringTable(content) | 部分完成 |
| readTextFile | readTextFile(content) | 部分完成 |
资产函数
| 函数/操作 | 签名 | 状态 |
| assetInfo | assetInfo(path, attr) | 部分完成 |
| assetMetadata | assetMetadata(path, key) | 未完成 |
| assetNamingInfo | assetNamingInfo(path, key) | 未完成 |
| assetNamingInfos | assetNamingInfos(paths, key) | 未完成 |
| assetsSortRatio | assetsSortRatio(paths, ...) | 部分完成 |
| assetsSortSize | assetsSortSize(paths, ...) | 部分完成 |
| imageInfo | imageInfo(path, attr) | 部分完成 |
| imagesSortRatio | imagesSortRatio(paths, ...) | 部分完成 |
| assetApproxRatio | assetApproxRatio(paths, ...) | 部分完成 |
| assetApproxSize | assetApproxSize(paths, ...) | 部分完成 |
| assetBestRatio | assetBestRatio(paths, ...) | 部分完成 |
| assetBestSize | assetBestSize(paths, ...) | 部分完成 |
| assetFitSize | assetFitSize(paths, ...) | 部分完成 |
| imageApproxRatio | imageApproxRatio(paths, ...) | 部分完成 |
| imageBestRatio | imageBestRatio(paths, ...) | 部分完成 |
上下文函数
| 函数/操作 | 签名 | 状态 |
| inside | inside() / inside(target, label) | 完成 |
| overlaps | overlaps() / overlaps(target, label) | 完成 |
| touches | touches() / touches(target, label) | 完成 |
| minimumDistance | minimumDistance(target, label) | 完成 |
| contextCompare | contextCompare(target, label, type) | 完成 |
| contextCount | contextCount(target, label) | 完成 |
边属性函数
| 函数/操作 | 签名 | 状态 |
| edgeAttr.getBool | edgeAttr.getBool(name) | 未完成 |
| edgeAttr.getFloat | edgeAttr.getFloat(name) | 未完成 |
| edgeAttr.getString | edgeAttr.getString(name) | 未完成 |
其他函数
| 函数/操作 | 签名 | 状态 |
| convert | convert(...) | 部分完成 |
| getTreeKey | getTreeKey() | 完成 |
| print | print(value) | 完成 |