Doodle3D-Transform/ADD_OBJECT.md

124 lines
2.2 KiB
Markdown
Raw Permalink Normal View History

```javascript
actions.sketcher.addObject(objectData);
```
**objectData**
Only type is required
```javascript
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
```javascript
sculpt = [
{ pos: 0.0, scale: 1.0 },
{ pos: 1.0, scale: 1.0 }
]
```
**Defining a Matrix**
```javascript
new CAL.Matrix({
x: Number,
y: Number
sx: Number,
sy: Number,
rotation: Number
})
```
**objectData.type = CIRCLE**
```javascript
{
...objectData,
type: 'CIRCLE'
circle: {
radius: Number,
segment: Number(rad)
}
}
actions.sketcher.addObject({ type: 'CIRCLE', circle: { radius: 10, segment: Math.PI * 2 } });
```
**objectData.type = RECT**
```javascript
{
...objectData,
type: 'RECT'
rectSize: CAL.Vector
}
actions.sketcher.addObject({ type: 'CIRCLE', rectSize: new CAL.Vector(10, 10) });
```
**objectData.type = TRIANGLE**
```javascript
{
...objectData,
type: 'TRIANGLE'
triangleSize: CAL.Vector
}
actions.sketcher.addObject({ type: 'CIRCLE', rectSize: new CAL.Vector(10, 10) });
```
**objectData.type = STAR**
```javascript
{
...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**
```javascript
{
...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**
```javascript
{
...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)] });
```