Skip to content

空间画布对象

createCanvas3D

创建 Canvas3D 对象。

样例:

定义:

ts
interface GradientTextureOptions {
  colors: IColor[];
  stops?: number[];
  size?: number;
}

interface PointInfo extends BaseMeshInfo {
  radius?: number;
  color?: IColor;
  opacity?: number;
  gradient?: GradientTextureOptions;
}

interface LineInfo extends BaseMeshInfo {
  points: Position[];
  width?: number;
  color?: IColor;
  opacity?: number;
  gradient?: GradientTextureOptions;
}

interface PolygonInfo extends BaseObjectInfo {
  yHeight: number;
  points: PlaneIVector2[];
  depth?: number;
  color?: IColor;
  opacity?: number;
  gradient?: GradientTextureOptions;
}

interface CircleInfo extends BaseMeshInfo {
  radius?: number;
  color?: IColor;
  opacity?: number;
  gradient?: GradientTextureOptions;
}

interface Canvas3DInfo extends BaseObject3DInfo {
  points?: PointInfo[];
  lines?: LineInfo[];
  polygons?: PolygonInfo[];
  circles?: CircleInfo[];
}

function createCanvas3D(canvas3DInfo: Canvas3DInfo): Canvas3D;

用法:

js
ssp.createCanvas3D({
  id: 'xx',
  name: 'xx',
  level: {
    max: 1000,
    min: null,
  },
  points: [],
  lines: [],
  polygons: [],
  circles: [],
  position: { x: 0, y: 0, z: 0 },
  rotation: { x: 0, y: 0, z: 0 },
  scale: { x: 2, y: 2, z: 2 },
  userData: {},
});

参数:

canvas3DInfo

  • 描述: 动画到达目标
  • 类型: Canvas3DInfo
  • 必填: ss
Canvas3DInfo
属性描述类型必填默认值
id唯一IDstring | number
name名称string
level显示层级范围Level{ max: null, min: null }
visible是否可见booleantrue
points点信息集合PointInfo[][]
lines线信息集合LineInfo[][]
polygons面信息集合Polygons[][]
circles圆信息集合CircleInfo[][]
position位置坐标Position{ x: 0, y: 0, z: 0 }
rotation旋转弧度Rotation{ x: 0, y: 0, z: 0 }
scale缩放比例Scale{ x: 1, y: 1, z: 1 }
userData用户数据any{}
PointInfo
属性描述类型必填默认值
id点唯一IDstring | number
name点名称string
radius点半径number10
color点颜色IColor0xffffff
gradient点颜色渐变GradientTextureOptions
opacity点不透明度number1
level显示层级范围Level{ max: null, min: null }
position位置坐标Position{ x: 0, y: 0, z: 0 }
rotation旋转弧度Rotation{ x: 0, y: 0, z: 0 }
scale缩放比例Scale{ x: 1, y: 1, z: 1 }
userData用户数据any{}
LineInfo
属性描述类型必填默认值
id线唯一IDstring | number
name线名称string
points组成面的点坐标集合Position[]
width线宽number20
color线颜色IColor0xffffff
gradient线颜色渐变GradientTextureOptions
opacity线不透明度number1
level显示层级范围Level{ max: null, min: null }
position位置坐标Position{ x: 0, y: 0, z: 0 }
rotation旋转弧度Rotation{ x: 0, y: 0, z: 0 }
scale缩放比例Scale{ x: 1, y: 1, z: 1 }
userData用户数据any{}
PolygonInfo
属性描述类型必填默认值
id面唯一IDstring | number
name面名称string
yHeight面空间高度number1
points组成面的点坐标集合PlaneIVector2[]
depth凸起的深度number0
color面颜色IColor0xffffff
gradient面颜色渐变GradientTextureOptions
opacity面不透明度number1
level显示层级范围Level{ max: null, min: null }
position位置坐标Position{ x: 0, y: 0, z: 0 }
rotation旋转弧度Rotation{ x: 0, y: 0, z: 0 }
scale缩放比例Scale{ x: 1, y: 1, z: 1 }
userData用户数据any{}
CircleInfo
属性描述类型必填默认值
id圆唯一IDstring | number
name圆名称string
radius圆半径number10
color圆颜色IColor0xffffff
gradient圆颜色渐变GradientTextureOptions
opacity圆不透明度number1
level显示层级范围Level{ max: null, min: null }
position位置坐标Position{ x: 0, y: 0, z: 0 }
rotation旋转弧度Rotation{ x: 0, y: 0, z: 0 }
scale缩放比例Scale{ x: 1, y: 1, z: 1 }
userData用户数据any{}
GradientTextureOptions
属性描述类型必填默认值
colors渐变色列表IColor[]
stops渐变色偏移,与 color 对应,值为0 ~ 1之间number[]根据 colors 均匀分布
size渐变贴图的大小numbert1024

getCanvas3DById

通过 id 查找

定义:

ts
function getCanvas3DById(id: Canvas3DInfo['id']): Canvas3D | null;

用法:

js
const Canvas3D = ssp.getCanvas3DById('xxx');

弃用警告

请使用 getObjectById 替代

getCanvas3DByName

通过 name 查找

定义:

ts
function getCanvas3DByName(name: string): Canvas3D[];

用法:

js
const Canvas3DList = ssp.getCanvas3DByName('xxx');

弃用警告

请使用 getObjectByName 替代

getAllCanvas3D

获取所有 Canvas3D 对象

定义:

ts
function getAllCanvas3D(): Canvas3D[];

用法:

js
const allCanvas3DList = ssp.getAllCanvas3D();

getCanvas3DByUserDataProperty

通过 userData 属性查找

定义:

ts
function getCanvas3DByUserDataProperty(propNameOrFindFunc: string | UserDataPropertyFindFunc, value?: any): Canvas3D[];

用法:

js
const Canvas3DList = ssp.getCanvas3DByUserDataProperty('propKey''propVal')
// or
const Canvas3DList = ssp.getCanvas3DByUserDataProperty(item => item['itemPropKey'] === 'itemPropVal')

参数:

propNameOrFindFunc

  • 描述: userData 内属性名 或 find 函数
  • 类型: string | function
  • 必填:

propValue

  • 描述: userData 内属性值。
  • 类型: any
  • 必填:

find 函数使用场景

js
Canvas3D.userData = {
  people: {
    name: 'xiaoming',
    age: 18,
  },
};
const Canvas3DList = ssp.getCanvas3DByUserDataProperty((userData) => userData?.people?.name === 'xiaoming');

弃用警告

请使用 getObjectByUserDataProperty 替代

removeCanvas3DById

通过 id 移除

定义:

ts
function removeCanvas3DById(id: Canvas3DInfo['id']): boolean;

用法:

js
ssp.removeCanvas3DById('xxx');

弃用警告

请使用 removeObjectById 替代

createCanvas3DToGroup

创建 Canvas3D 到一个组内。

定义:

ts
function createCanvas3DToGroup(groupInfo: GroupInfo, canvas3DInfoList: Canvas3DInfo[]): Group;

用法:

js
ssp
  .createCanvas3DToGroup(
    // groupInfo
    {
      id: 'firstCanvas3DGroup',
      name: 'name_firstCanvas3DGroup',
      // ...
    },
    // canvas3DInfoList
    [Canvas3DInfo1, Canvas3DInfo2, Canvas3DInfo3]
  )
  .then((group) => console.log(group));

参数

groupInfo

  • 描述: 实例组对象所需信息
  • 类型: GroupInfo
  • 必填:

canvas3DInfoList

createGroupForCanvas3D

Canvas3D 提前创建一个空组。

使用场景

createCanvas3DToGroup 不同,有些时候可能你还没有具体的 Canvas3DInfo 数据,但你想提前创建一个批量管理的空组,当有数据时再使用 addCanvas3DForGroup 插入。

定义:

ts
function createGroupForCanvas3D(groupInfo: GroupInfo): Group;

用法:

js
ssp.createGroupForCanvas3D({
  id: 'firstCanvas3DGroup',
  name: 'name_firstCanvas3DGroup',
  // ...
});

参数

groupInfo

  • 描述: 实例组对象所需信息
  • 类型: GroupInfo
  • 必填:

弃用警告

请使用 createGroup 替代

addCanvas3DForGroup

向一个已经存在的组内添加 Canvas3D 对象。

定义:

ts
function addCanvas3DForGroup(groupId: GroupInfo['id'], canvas3DInfoList: Canvas3DInfo[]): Group | null;

用法:

js
ssp
  .addCanvas3DForGroup(
    // groupId
    'firstCanvas3DGroup',
    // canvas3DInfoList
    [Canvas3DInfo4, Canvas3DInfo5]
  )
  .then((group) => console.log(group));

参数

groupId

  • 描述:id
  • 类型: groupId[‘id’]
  • 必填:

canvas3DInfoList

getCanvas3DGroupById

通过 id 查找 Canvas3D

定义:

ts
function getCanvas3DGroupById(id: GroupInfo['id']): Group | null;

用法:

js
const group = ssp.getCanvas3DGroupById('firstCanvas3DGroup');

弃用警告

请使用 getObjectById 替代

getCanvas3DGroupByName

通过 name 查找 Canvas3D

定义:

ts
function getCanvas3DGroupByName(name: string): Group[];

用法:

js
const groupList = ssp.getCanvas3DGroupByName('name_firstCanvas3DGroup');

弃用警告

请使用 getObjectByName 替代

getAllCanvas3DGroup

获取所有 Canvas3D 对象组

定义:

ts
function getAllCanvas3DGroup(): Group[];

用法:

js
const allCanvas3DGroupList = ssp.getAllCanvas3DGroup();

弃用警告

请使用 getAllGroup 替代

removeCanvas3DGroupById

通过 id 移除 Canvas3D

定义:

ts
function removeCanvas3DGroupById(id: GroupInfo['id']): boolean;

用法:

js
const isRemoveSuccess = ssp.removeCanvas3DGroupById('firstCanvas3DGroup');

弃用警告

请使用 removeObjectById 替代

clearCanvas3D

清除当前场景内所有 Canvas3D 对象。

定义:

ts
function clearCanvas3D(): void;

用法:

js
ssp.clearCanvas3D();

showAllCanvas3D

显示当前场景内所有 Canvas3D 对象。

定义:

ts
function showAllCanvas3D(): void;

用法:

js
ssp.showAllCanvas3D();

hideAllCanvas3D

隐藏当前场景内所有 Canvas3D 对象。

定义:

ts
function hideAllCanvas3D(): void;

用法:

js
ssp.hideAllCanvas3D();

浙ICP备16043491号