Doodle3D-Transform/ADD_OBJECT.md

2.2 KiB

actions.sketcher.addObject(objectData);

objectData

Only type is required

const objectData = {
  type: String:isRequired,
  height: Number,
  transform: CAL.Matrix,
  z: Number,
  sculpt: [
    ...{ pos: Number, scale: Number }
  ],
  twist: Number,
  color: HexNumber,
  space: 'String',
  fill : Bool
}

Defining Sculpt

Sculp has to have at least 2 entries. The first entry has to have a position of 0.0, and the last one has to have a position of 1.0. There can be added additional sculpt steps with increasing positions.

The scale property defines the scale factor on that position

sculpt = [
  { pos: 0.0, scale: 1.0 },
  { pos: 1.0, scale: 1.0 }
]

Defining a Matrix

new CAL.Matrix({
  x: Number,
  y: Number
  sx: Number,
  sy: Number,
  rotation: Number
})

objectData.type = CIRCLE

{
  ...objectData,
  type: 'CIRCLE'
  circle: {
    radius: Number,
    segment: Number(rad)
  }
}

actions.sketcher.addObject({ type: 'CIRCLE', circle: { radius: 10, segment: Math.PI * 2 } });

objectData.type = RECT

{
  ...objectData,
  type: 'RECT'
  rectSize: CAL.Vector
}

actions.sketcher.addObject({ type: 'CIRCLE', rectSize: new CAL.Vector(10, 10) });

objectData.type = TRIANGLE

{
  ...objectData,
  type: 'TRIANGLE'
  triangleSize: CAL.Vector
}

actions.sketcher.addObject({ type: 'CIRCLE', rectSize: new CAL.Vector(10, 10) });

objectData.type = STAR

{
  ...objectData,
  type: 'STAR'
  star: { innerRadius: Number, outerRadius: Number, rays: Int }
}

actions.sketcher.addObject({ type: 'STAR', star: { innerRadius: 10, outerRadius: 15, rays: 5 } });

objectData.type = TEXT

{
  ...objectData,
  type: 'TEXT'
  text: { text: String, family: String, weight: String, style: String }
}

actions.sketcher.addObject({ type: 'TEXT', text: { text: 'ABC', family: 'Arial', weight: 'normal', style: 'normal' } });

objectData.type = FREE_HAND

{
  ...objectData,
  type: 'FREE_HAND'
  points: [...CAL.Vector]
}

actions.sketcher.addObject({ type: 'FREE_HAND', points: [new CAL.Vector(0, 0), new CAL.Vector(100, 0), new CAL.Vector(100, 100)] });