Move the size parameter to the renderer control

This commit is contained in:
2022-04-09 16:04:46 +08:00
parent ed8269ff50
commit a31bb73faa
10 changed files with 81 additions and 26 deletions
+6 -1
View File
@@ -1,5 +1,5 @@
import { LabelObject } from "@Model/Label"
import type { Model } from "@Model/Model";
import type { IAnyObject, Model } from "@Model/Model";
import type { ObjectID } from "@Model/Model";
/**
@@ -37,6 +37,11 @@ class CtrlObject extends LabelObject {
*/
protected model: Model;
/**
* 渲染数据
*/
public renderParameter: IAnyObject = {};
/**
* 构造器
*/
+10 -4
View File
@@ -3,6 +3,8 @@ import { CtrlObject } from "@Model/CtrlObject";
import type { Behavior } from "@Model/Behavior";
import { Label } from "@Model/Label";
import { Range } from "@Model/Range";
import { Model, ObjectID } from "@Model/Model";
import { getDefaultValue } from "@Model/Parameter";
enum GenMod {
Point = "p",
@@ -380,11 +382,15 @@ class Group extends CtrlObject {
});
return dataBuffer;
}
public constructor(model: Model, id: ObjectID) {
/**
* 绘制大小
*/
public size: number = 60;
super(model, id);
if (model.renderer) {
this.renderParameter = getDefaultValue(model.renderer.pointsParameterOption);
}
}
}
export default Group;
+3 -7
View File
@@ -362,16 +362,12 @@ class Model extends Emitter<ModelEvent> {
// 渲染
for (let i = 0; i < this.objectPool.length; i++) {
let object = this.objectPool[i];
object.renderParameter.color = object.color;
if (object.display && object instanceof Group) {
this.renderer.points(object.id, object.exportPositionData(), {
color: object.color,
size: object.size
} as any);
this.renderer.points(object.id, object.exportPositionData(), object.renderParameter);
}
if (object.display && object instanceof Range) {
this.renderer.cube(object.id, object.position, object.radius, {
color: object.color
} as any);
this.renderer.cube(object.id, object.position, object.radius, object.renderParameter);
}
}
}
+11
View File
@@ -1,4 +1,6 @@
import { CtrlObject } from "@Model/CtrlObject";
import { Model, ObjectID } from "@Model/Model";
import { getDefaultValue } from "@Model/Parameter";
/**
* 范围
@@ -15,6 +17,15 @@ class Range extends CtrlObject {
*/
public radius: number[] = [1, 1, 1];
public constructor(model: Model, id: ObjectID) {
super(model, id);
if (model.renderer) {
this.renderParameter = getDefaultValue(model.renderer.cubeParameterOption);
}
}
}
export default Range;