204
case LS_MODIFIER_ALONG_STROKE:
205
size = sizeof(LineStyleColorModifier_AlongStroke);
207
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
208
size = sizeof(LineStyleColorModifier_DistanceFromCamera);
210
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
211
size = sizeof(LineStyleColorModifier_DistanceFromObject);
213
case LS_MODIFIER_MATERIAL:
214
size = sizeof(LineStyleColorModifier_Material);
217
return NULL; /* unknown modifier type */
205
case LS_MODIFIER_ALONG_STROKE:
206
size = sizeof(LineStyleColorModifier_AlongStroke);
208
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
209
size = sizeof(LineStyleColorModifier_DistanceFromCamera);
211
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
212
size = sizeof(LineStyleColorModifier_DistanceFromObject);
214
case LS_MODIFIER_MATERIAL:
215
size = sizeof(LineStyleColorModifier_Material);
218
return NULL; /* unknown modifier type */
220
221
return new_modifier(type, size);
228
229
m->blend = MA_RAMP_BLEND;
231
case LS_MODIFIER_ALONG_STROKE:
232
((LineStyleColorModifier_AlongStroke *)m)->color_ramp = add_colorband(1);
234
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
235
((LineStyleColorModifier_DistanceFromCamera *)m)->color_ramp = add_colorband(1);
236
((LineStyleColorModifier_DistanceFromCamera *)m)->range_min = 0.0f;
237
((LineStyleColorModifier_DistanceFromCamera *)m)->range_max = 10000.0f;
239
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
240
((LineStyleColorModifier_DistanceFromObject *)m)->target = NULL;
241
((LineStyleColorModifier_DistanceFromObject *)m)->color_ramp = add_colorband(1);
242
((LineStyleColorModifier_DistanceFromObject *)m)->range_min = 0.0f;
243
((LineStyleColorModifier_DistanceFromObject *)m)->range_max = 10000.0f;
245
case LS_MODIFIER_MATERIAL:
246
((LineStyleColorModifier_Material *)m)->color_ramp = add_colorband(1);
247
((LineStyleColorModifier_Material *)m)->mat_attr = LS_MODIFIER_MATERIAL_DIFF;
250
return NULL; /* unknown modifier type */
232
case LS_MODIFIER_ALONG_STROKE:
233
((LineStyleColorModifier_AlongStroke *)m)->color_ramp = add_colorband(1);
235
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
236
((LineStyleColorModifier_DistanceFromCamera *)m)->color_ramp = add_colorband(1);
237
((LineStyleColorModifier_DistanceFromCamera *)m)->range_min = 0.0f;
238
((LineStyleColorModifier_DistanceFromCamera *)m)->range_max = 10000.0f;
240
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
241
((LineStyleColorModifier_DistanceFromObject *)m)->target = NULL;
242
((LineStyleColorModifier_DistanceFromObject *)m)->color_ramp = add_colorband(1);
243
((LineStyleColorModifier_DistanceFromObject *)m)->range_min = 0.0f;
244
((LineStyleColorModifier_DistanceFromObject *)m)->range_max = 10000.0f;
246
case LS_MODIFIER_MATERIAL:
247
((LineStyleColorModifier_Material *)m)->color_ramp = add_colorband(1);
248
((LineStyleColorModifier_Material *)m)->mat_attr = LS_MODIFIER_MATERIAL_DIFF;
251
return NULL; /* unknown modifier type */
252
253
add_to_modifier_list(&linestyle->color_modifiers, m);
264
265
new_m->blend = m->blend;
266
267
switch (m->type) {
267
case LS_MODIFIER_ALONG_STROKE:
268
case LS_MODIFIER_ALONG_STROKE:
269
270
LineStyleColorModifier_AlongStroke *p = (LineStyleColorModifier_AlongStroke *)m;
270
271
LineStyleColorModifier_AlongStroke *q = (LineStyleColorModifier_AlongStroke *)new_m;
271
272
q->color_ramp = MEM_dupallocN(p->color_ramp);
274
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
275
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
276
277
LineStyleColorModifier_DistanceFromCamera *p = (LineStyleColorModifier_DistanceFromCamera *)m;
277
278
LineStyleColorModifier_DistanceFromCamera *q = (LineStyleColorModifier_DistanceFromCamera *)new_m;
278
279
q->color_ramp = MEM_dupallocN(p->color_ramp);
279
280
q->range_min = p->range_min;
280
281
q->range_max = p->range_max;
283
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
284
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
285
286
LineStyleColorModifier_DistanceFromObject *p = (LineStyleColorModifier_DistanceFromObject *)m;
286
287
LineStyleColorModifier_DistanceFromObject *q = (LineStyleColorModifier_DistanceFromObject *)new_m;
290
291
q->color_ramp = MEM_dupallocN(p->color_ramp);
291
292
q->range_min = p->range_min;
292
293
q->range_max = p->range_max;
295
case LS_MODIFIER_MATERIAL:
296
case LS_MODIFIER_MATERIAL:
297
298
LineStyleColorModifier_Material *p = (LineStyleColorModifier_Material *)m;
298
299
LineStyleColorModifier_Material *q = (LineStyleColorModifier_Material *)new_m;
299
300
q->color_ramp = MEM_dupallocN(p->color_ramp);
300
301
q->flags = p->flags;
301
302
q->mat_attr = p->mat_attr;
305
return NULL; /* unknown modifier type */
306
return NULL; /* unknown modifier type */
307
308
add_to_modifier_list(&linestyle->color_modifiers, new_m);
312
313
void BKE_remove_linestyle_color_modifier(FreestyleLineStyle *linestyle, LineStyleModifier *m)
314
315
switch (m->type) {
315
case LS_MODIFIER_ALONG_STROKE:
316
MEM_freeN(((LineStyleColorModifier_AlongStroke *)m)->color_ramp);
318
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
319
MEM_freeN(((LineStyleColorModifier_DistanceFromCamera *)m)->color_ramp);
321
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
322
MEM_freeN(((LineStyleColorModifier_DistanceFromObject *)m)->color_ramp);
324
case LS_MODIFIER_MATERIAL:
325
MEM_freeN(((LineStyleColorModifier_Material *)m)->color_ramp);
316
case LS_MODIFIER_ALONG_STROKE:
317
MEM_freeN(((LineStyleColorModifier_AlongStroke *)m)->color_ramp);
319
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
320
MEM_freeN(((LineStyleColorModifier_DistanceFromCamera *)m)->color_ramp);
322
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
323
MEM_freeN(((LineStyleColorModifier_DistanceFromObject *)m)->color_ramp);
325
case LS_MODIFIER_MATERIAL:
326
MEM_freeN(((LineStyleColorModifier_Material *)m)->color_ramp);
328
329
BLI_freelinkN(&linestyle->color_modifiers, m);
336
case LS_MODIFIER_ALONG_STROKE:
337
size = sizeof(LineStyleAlphaModifier_AlongStroke);
339
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
340
size = sizeof(LineStyleAlphaModifier_DistanceFromCamera);
342
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
343
size = sizeof(LineStyleAlphaModifier_DistanceFromObject);
345
case LS_MODIFIER_MATERIAL:
346
size = sizeof(LineStyleAlphaModifier_Material);
349
return NULL; /* unknown modifier type */
337
case LS_MODIFIER_ALONG_STROKE:
338
size = sizeof(LineStyleAlphaModifier_AlongStroke);
340
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
341
size = sizeof(LineStyleAlphaModifier_DistanceFromCamera);
343
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
344
size = sizeof(LineStyleAlphaModifier_DistanceFromObject);
346
case LS_MODIFIER_MATERIAL:
347
size = sizeof(LineStyleAlphaModifier_Material);
350
return NULL; /* unknown modifier type */
351
352
return new_modifier(type, size);
359
360
m->blend = LS_VALUE_BLEND;
362
case LS_MODIFIER_ALONG_STROKE:
363
case LS_MODIFIER_ALONG_STROKE:
364
365
LineStyleAlphaModifier_AlongStroke *p = (LineStyleAlphaModifier_AlongStroke *)m;
365
366
p->curve = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
368
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
369
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
370
371
LineStyleAlphaModifier_DistanceFromCamera *p = (LineStyleAlphaModifier_DistanceFromCamera *)m;
371
372
p->curve = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
372
373
p->range_min = 0.0f;
373
374
p->range_max = 10000.0f;
376
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
377
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
378
379
LineStyleAlphaModifier_DistanceFromObject *p = (LineStyleAlphaModifier_DistanceFromObject *)m;
379
380
p->target = NULL;
380
381
p->curve = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
381
382
p->range_min = 0.0f;
382
383
p->range_max = 10000.0f;
385
case LS_MODIFIER_MATERIAL:
386
case LS_MODIFIER_MATERIAL:
387
388
LineStyleAlphaModifier_Material *p = (LineStyleAlphaModifier_Material *)m;
388
389
p->curve = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
389
390
p->mat_attr = LS_MODIFIER_MATERIAL_DIFF;
393
return NULL; /* unknown modifier type */
394
return NULL; /* unknown modifier type */
395
396
add_to_modifier_list(&linestyle->alpha_modifiers, m);
407
408
new_m->blend = m->blend;
409
410
switch (m->type) {
410
case LS_MODIFIER_ALONG_STROKE:
411
case LS_MODIFIER_ALONG_STROKE:
412
413
LineStyleAlphaModifier_AlongStroke *p = (LineStyleAlphaModifier_AlongStroke *)m;
413
414
LineStyleAlphaModifier_AlongStroke *q = (LineStyleAlphaModifier_AlongStroke *)new_m;
414
415
q->curve = curvemapping_copy(p->curve);
415
416
q->flags = p->flags;
418
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
419
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
420
421
LineStyleAlphaModifier_DistanceFromCamera *p = (LineStyleAlphaModifier_DistanceFromCamera *)m;
421
422
LineStyleAlphaModifier_DistanceFromCamera *q = (LineStyleAlphaModifier_DistanceFromCamera *)new_m;
436
437
q->flags = p->flags;
437
438
q->range_min = p->range_min;
438
439
q->range_max = p->range_max;
441
case LS_MODIFIER_MATERIAL:
442
case LS_MODIFIER_MATERIAL:
443
444
LineStyleAlphaModifier_Material *p = (LineStyleAlphaModifier_Material *)m;
444
445
LineStyleAlphaModifier_Material *q = (LineStyleAlphaModifier_Material *)new_m;
445
446
q->curve = curvemapping_copy(p->curve);
446
447
q->flags = p->flags;
447
448
q->mat_attr = p->mat_attr;
451
return NULL; /* unknown modifier type */
452
return NULL; /* unknown modifier type */
453
454
add_to_modifier_list(&linestyle->alpha_modifiers, new_m);
458
459
void BKE_remove_linestyle_alpha_modifier(FreestyleLineStyle *linestyle, LineStyleModifier *m)
460
461
switch (m->type) {
461
case LS_MODIFIER_ALONG_STROKE:
462
curvemapping_free(((LineStyleAlphaModifier_AlongStroke *)m)->curve);
464
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
465
curvemapping_free(((LineStyleAlphaModifier_DistanceFromCamera *)m)->curve);
467
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
468
curvemapping_free(((LineStyleAlphaModifier_DistanceFromObject *)m)->curve);
470
case LS_MODIFIER_MATERIAL:
471
curvemapping_free(((LineStyleAlphaModifier_Material *)m)->curve);
462
case LS_MODIFIER_ALONG_STROKE:
463
curvemapping_free(((LineStyleAlphaModifier_AlongStroke *)m)->curve);
465
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
466
curvemapping_free(((LineStyleAlphaModifier_DistanceFromCamera *)m)->curve);
468
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
469
curvemapping_free(((LineStyleAlphaModifier_DistanceFromObject *)m)->curve);
471
case LS_MODIFIER_MATERIAL:
472
curvemapping_free(((LineStyleAlphaModifier_Material *)m)->curve);
474
475
BLI_freelinkN(&linestyle->alpha_modifiers, m);
482
case LS_MODIFIER_ALONG_STROKE:
483
size = sizeof(LineStyleThicknessModifier_AlongStroke);
485
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
486
size = sizeof(LineStyleThicknessModifier_DistanceFromCamera);
488
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
489
size = sizeof(LineStyleThicknessModifier_DistanceFromObject);
491
case LS_MODIFIER_MATERIAL:
492
size = sizeof(LineStyleThicknessModifier_Material);
494
case LS_MODIFIER_CALLIGRAPHY:
495
size = sizeof(LineStyleThicknessModifier_Calligraphy);
498
return NULL; /* unknown modifier type */
483
case LS_MODIFIER_ALONG_STROKE:
484
size = sizeof(LineStyleThicknessModifier_AlongStroke);
486
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
487
size = sizeof(LineStyleThicknessModifier_DistanceFromCamera);
489
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
490
size = sizeof(LineStyleThicknessModifier_DistanceFromObject);
492
case LS_MODIFIER_MATERIAL:
493
size = sizeof(LineStyleThicknessModifier_Material);
495
case LS_MODIFIER_CALLIGRAPHY:
496
size = sizeof(LineStyleThicknessModifier_Calligraphy);
499
return NULL; /* unknown modifier type */
501
502
return new_modifier(type, size);
509
510
m->blend = LS_VALUE_BLEND;
512
case LS_MODIFIER_ALONG_STROKE:
513
case LS_MODIFIER_ALONG_STROKE:
514
515
LineStyleThicknessModifier_AlongStroke *p = (LineStyleThicknessModifier_AlongStroke *)m;
515
516
p->curve = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
516
517
p->value_min = 0.0f;
517
518
p->value_max = 1.0f;
520
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
521
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
522
523
LineStyleThicknessModifier_DistanceFromCamera *p = (LineStyleThicknessModifier_DistanceFromCamera *)m;
523
524
p->curve = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
536
537
p->range_max = 1000.0f;
537
538
p->value_min = 0.0f;
538
539
p->value_max = 1.0f;
541
case LS_MODIFIER_MATERIAL:
542
case LS_MODIFIER_MATERIAL:
543
544
LineStyleThicknessModifier_Material *p = (LineStyleThicknessModifier_Material *)m;
544
545
p->curve = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
545
546
p->mat_attr = LS_MODIFIER_MATERIAL_DIFF;
546
547
p->value_min = 0.0f;
547
548
p->value_max = 1.0f;
550
case LS_MODIFIER_CALLIGRAPHY:
551
case LS_MODIFIER_CALLIGRAPHY:
552
553
LineStyleThicknessModifier_Calligraphy *p = (LineStyleThicknessModifier_Calligraphy *)m;
553
554
p->min_thickness = 1.0f;
554
555
p->max_thickness = 10.0f;
555
556
p->orientation = DEG2RADF(60.0f);
559
return NULL; /* unknown modifier type */
560
return NULL; /* unknown modifier type */
561
562
add_to_modifier_list(&linestyle->thickness_modifiers, m);
621
622
q->mat_attr = p->mat_attr;
622
623
q->value_min = p->value_min;
623
624
q->value_max = p->value_max;
626
case LS_MODIFIER_CALLIGRAPHY:
627
case LS_MODIFIER_CALLIGRAPHY:
628
629
LineStyleThicknessModifier_Calligraphy *p = (LineStyleThicknessModifier_Calligraphy *)m;
629
630
LineStyleThicknessModifier_Calligraphy *q = (LineStyleThicknessModifier_Calligraphy *)new_m;
630
631
q->min_thickness = p->min_thickness;
631
632
q->max_thickness = p->max_thickness;
632
633
q->orientation = p->orientation;
636
return NULL; /* unknown modifier type */
637
return NULL; /* unknown modifier type */
638
639
add_to_modifier_list(&linestyle->thickness_modifiers, new_m);
643
644
void BKE_remove_linestyle_thickness_modifier(FreestyleLineStyle *linestyle, LineStyleModifier *m)
645
646
switch (m->type) {
646
case LS_MODIFIER_ALONG_STROKE:
647
curvemapping_free(((LineStyleThicknessModifier_AlongStroke *)m)->curve);
649
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
650
curvemapping_free(((LineStyleThicknessModifier_DistanceFromCamera *)m)->curve);
652
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
653
curvemapping_free(((LineStyleThicknessModifier_DistanceFromObject *)m)->curve);
655
case LS_MODIFIER_MATERIAL:
656
curvemapping_free(((LineStyleThicknessModifier_Material *)m)->curve);
658
case LS_MODIFIER_CALLIGRAPHY:
647
case LS_MODIFIER_ALONG_STROKE:
648
curvemapping_free(((LineStyleThicknessModifier_AlongStroke *)m)->curve);
650
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
651
curvemapping_free(((LineStyleThicknessModifier_DistanceFromCamera *)m)->curve);
653
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
654
curvemapping_free(((LineStyleThicknessModifier_DistanceFromObject *)m)->curve);
656
case LS_MODIFIER_MATERIAL:
657
curvemapping_free(((LineStyleThicknessModifier_Material *)m)->curve);
659
case LS_MODIFIER_CALLIGRAPHY:
661
662
BLI_freelinkN(&linestyle->thickness_modifiers, m);
669
case LS_MODIFIER_SAMPLING:
670
size = sizeof(LineStyleGeometryModifier_Sampling);
672
case LS_MODIFIER_BEZIER_CURVE:
673
size = sizeof(LineStyleGeometryModifier_BezierCurve);
675
case LS_MODIFIER_SINUS_DISPLACEMENT:
676
size = sizeof(LineStyleGeometryModifier_SinusDisplacement);
678
case LS_MODIFIER_SPATIAL_NOISE:
679
size = sizeof(LineStyleGeometryModifier_SpatialNoise);
681
case LS_MODIFIER_PERLIN_NOISE_1D:
682
size = sizeof(LineStyleGeometryModifier_PerlinNoise1D);
684
case LS_MODIFIER_PERLIN_NOISE_2D:
685
size = sizeof(LineStyleGeometryModifier_PerlinNoise2D);
687
case LS_MODIFIER_BACKBONE_STRETCHER:
688
size = sizeof(LineStyleGeometryModifier_BackboneStretcher);
690
case LS_MODIFIER_TIP_REMOVER:
691
size = sizeof(LineStyleGeometryModifier_TipRemover);
693
case LS_MODIFIER_POLYGONIZATION:
694
size = sizeof(LineStyleGeometryModifier_Polygonalization);
696
case LS_MODIFIER_GUIDING_LINES:
697
size = sizeof(LineStyleGeometryModifier_GuidingLines);
699
case LS_MODIFIER_BLUEPRINT:
700
size = sizeof(LineStyleGeometryModifier_Blueprint);
702
case LS_MODIFIER_2D_OFFSET:
703
size = sizeof(LineStyleGeometryModifier_2DOffset);
705
case LS_MODIFIER_2D_TRANSFORM:
706
size = sizeof(LineStyleGeometryModifier_2DTransform);
709
return NULL; /* unknown modifier type */
670
case LS_MODIFIER_SAMPLING:
671
size = sizeof(LineStyleGeometryModifier_Sampling);
673
case LS_MODIFIER_BEZIER_CURVE:
674
size = sizeof(LineStyleGeometryModifier_BezierCurve);
676
case LS_MODIFIER_SINUS_DISPLACEMENT:
677
size = sizeof(LineStyleGeometryModifier_SinusDisplacement);
679
case LS_MODIFIER_SPATIAL_NOISE:
680
size = sizeof(LineStyleGeometryModifier_SpatialNoise);
682
case LS_MODIFIER_PERLIN_NOISE_1D:
683
size = sizeof(LineStyleGeometryModifier_PerlinNoise1D);
685
case LS_MODIFIER_PERLIN_NOISE_2D:
686
size = sizeof(LineStyleGeometryModifier_PerlinNoise2D);
688
case LS_MODIFIER_BACKBONE_STRETCHER:
689
size = sizeof(LineStyleGeometryModifier_BackboneStretcher);
691
case LS_MODIFIER_TIP_REMOVER:
692
size = sizeof(LineStyleGeometryModifier_TipRemover);
694
case LS_MODIFIER_POLYGONIZATION:
695
size = sizeof(LineStyleGeometryModifier_Polygonalization);
697
case LS_MODIFIER_GUIDING_LINES:
698
size = sizeof(LineStyleGeometryModifier_GuidingLines);
700
case LS_MODIFIER_BLUEPRINT:
701
size = sizeof(LineStyleGeometryModifier_Blueprint);
703
case LS_MODIFIER_2D_OFFSET:
704
size = sizeof(LineStyleGeometryModifier_2DOffset);
706
case LS_MODIFIER_2D_TRANSFORM:
707
size = sizeof(LineStyleGeometryModifier_2DTransform);
710
return NULL; /* unknown modifier type */
712
713
return new_modifier(type, size);
719
720
m = alloc_geometry_modifier(type);
722
case LS_MODIFIER_SAMPLING:
723
case LS_MODIFIER_SAMPLING:
724
725
LineStyleGeometryModifier_Sampling *p = (LineStyleGeometryModifier_Sampling *)m;
725
726
p->sampling = 10.0f;
728
case LS_MODIFIER_BEZIER_CURVE:
729
case LS_MODIFIER_BEZIER_CURVE:
730
731
LineStyleGeometryModifier_BezierCurve *p = (LineStyleGeometryModifier_BezierCurve *)m;
731
732
p->error = 10.0f;
734
case LS_MODIFIER_SINUS_DISPLACEMENT:
735
case LS_MODIFIER_SINUS_DISPLACEMENT:
736
737
LineStyleGeometryModifier_SinusDisplacement *p = (LineStyleGeometryModifier_SinusDisplacement *)m;
737
738
p->wavelength = 20.0f;
738
739
p->amplitude = 5.0f;
742
case LS_MODIFIER_SPATIAL_NOISE:
743
case LS_MODIFIER_SPATIAL_NOISE:
744
745
LineStyleGeometryModifier_SpatialNoise *p = (LineStyleGeometryModifier_SpatialNoise *)m;
745
746
p->amplitude = 5.0f;
746
747
p->scale = 20.0f;
748
749
p->flags = LS_MODIFIER_SPATIAL_NOISE_SMOOTH | LS_MODIFIER_SPATIAL_NOISE_PURERANDOM;
751
case LS_MODIFIER_PERLIN_NOISE_1D:
752
case LS_MODIFIER_PERLIN_NOISE_1D:
753
754
LineStyleGeometryModifier_PerlinNoise1D *p = (LineStyleGeometryModifier_PerlinNoise1D *)m;
754
755
p->frequency = 10.0f;
755
756
p->amplitude = 10.0f;
757
758
p->angle = DEG2RADF(45.0f);
760
case LS_MODIFIER_PERLIN_NOISE_2D:
761
case LS_MODIFIER_PERLIN_NOISE_2D:
762
763
LineStyleGeometryModifier_PerlinNoise2D *p = (LineStyleGeometryModifier_PerlinNoise2D *)m;
763
764
p->frequency = 10.0f;
764
765
p->amplitude = 10.0f;
766
767
p->angle = DEG2RADF(45.0f);
769
case LS_MODIFIER_BACKBONE_STRETCHER:
770
case LS_MODIFIER_BACKBONE_STRETCHER:
771
772
LineStyleGeometryModifier_BackboneStretcher *p = (LineStyleGeometryModifier_BackboneStretcher *)m;
772
773
p->backbone_length = 10.0f;
775
case LS_MODIFIER_TIP_REMOVER:
776
case LS_MODIFIER_TIP_REMOVER:
777
778
LineStyleGeometryModifier_TipRemover *p = (LineStyleGeometryModifier_TipRemover *)m;
778
779
p->tip_length = 10.0f;
781
case LS_MODIFIER_POLYGONIZATION:
782
case LS_MODIFIER_POLYGONIZATION:
783
784
LineStyleGeometryModifier_Polygonalization *p = (LineStyleGeometryModifier_Polygonalization *)m;
784
785
p->error = 10.0f;
787
case LS_MODIFIER_GUIDING_LINES:
788
case LS_MODIFIER_GUIDING_LINES:
789
790
LineStyleGeometryModifier_GuidingLines *p = (LineStyleGeometryModifier_GuidingLines *)m;
790
791
p->offset = 0.0f;
793
case LS_MODIFIER_BLUEPRINT:
794
case LS_MODIFIER_BLUEPRINT:
795
796
LineStyleGeometryModifier_Blueprint *p = (LineStyleGeometryModifier_Blueprint *)m;
796
797
p->flags = LS_MODIFIER_BLUEPRINT_CIRCLES;
838
839
new_m->flags = m->flags;
840
841
switch (m->type) {
841
case LS_MODIFIER_SAMPLING:
842
case LS_MODIFIER_SAMPLING:
843
844
LineStyleGeometryModifier_Sampling *p = (LineStyleGeometryModifier_Sampling *)m;
844
845
LineStyleGeometryModifier_Sampling *q = (LineStyleGeometryModifier_Sampling *)new_m;
845
846
q->sampling = p->sampling;
848
case LS_MODIFIER_BEZIER_CURVE:
849
case LS_MODIFIER_BEZIER_CURVE:
850
851
LineStyleGeometryModifier_BezierCurve *p = (LineStyleGeometryModifier_BezierCurve *)m;
851
852
LineStyleGeometryModifier_BezierCurve *q = (LineStyleGeometryModifier_BezierCurve *)new_m;
852
853
q->error = p->error;
855
case LS_MODIFIER_SINUS_DISPLACEMENT:
856
case LS_MODIFIER_SINUS_DISPLACEMENT:
857
858
LineStyleGeometryModifier_SinusDisplacement *p = (LineStyleGeometryModifier_SinusDisplacement *)m;
858
859
LineStyleGeometryModifier_SinusDisplacement *q = (LineStyleGeometryModifier_SinusDisplacement *)new_m;
859
860
q->wavelength = p->wavelength;
860
861
q->amplitude = p->amplitude;
861
862
q->phase = p->phase;
864
case LS_MODIFIER_SPATIAL_NOISE:
865
case LS_MODIFIER_SPATIAL_NOISE:
866
867
LineStyleGeometryModifier_SpatialNoise *p = (LineStyleGeometryModifier_SpatialNoise *)m;
867
868
LineStyleGeometryModifier_SpatialNoise *q = (LineStyleGeometryModifier_SpatialNoise *)new_m;
891
892
q->angle = p->angle;
892
893
q->octaves = p->octaves;
893
894
q->seed = p->seed;
896
case LS_MODIFIER_BACKBONE_STRETCHER:
897
case LS_MODIFIER_BACKBONE_STRETCHER:
898
899
LineStyleGeometryModifier_BackboneStretcher *p = (LineStyleGeometryModifier_BackboneStretcher *)m;
899
900
LineStyleGeometryModifier_BackboneStretcher *q = (LineStyleGeometryModifier_BackboneStretcher *)new_m;
900
901
q->backbone_length = p->backbone_length;
903
case LS_MODIFIER_TIP_REMOVER:
904
case LS_MODIFIER_TIP_REMOVER:
905
906
LineStyleGeometryModifier_TipRemover *p = (LineStyleGeometryModifier_TipRemover *)m;
906
907
LineStyleGeometryModifier_TipRemover *q = (LineStyleGeometryModifier_TipRemover *)new_m;
907
908
q->tip_length = p->tip_length;
910
case LS_MODIFIER_POLYGONIZATION:
911
case LS_MODIFIER_POLYGONIZATION:
912
913
LineStyleGeometryModifier_Polygonalization *p = (LineStyleGeometryModifier_Polygonalization *)m;
913
914
LineStyleGeometryModifier_Polygonalization *q = (LineStyleGeometryModifier_Polygonalization *)new_m;
914
915
q->error = p->error;
917
case LS_MODIFIER_GUIDING_LINES:
918
case LS_MODIFIER_GUIDING_LINES:
919
920
LineStyleGeometryModifier_GuidingLines *p = (LineStyleGeometryModifier_GuidingLines *)m;
920
921
LineStyleGeometryModifier_GuidingLines *q = (LineStyleGeometryModifier_GuidingLines *)new_m;
921
922
q->offset = p->offset;
924
case LS_MODIFIER_BLUEPRINT:
925
case LS_MODIFIER_BLUEPRINT:
926
927
LineStyleGeometryModifier_Blueprint *p = (LineStyleGeometryModifier_Blueprint *)m;
927
928
LineStyleGeometryModifier_Blueprint *q = (LineStyleGeometryModifier_Blueprint *)new_m;
1007
1008
listbase->first = listbase->last = NULL;
1008
1009
for (m = (LineStyleModifier *)linestyle->color_modifiers.first; m; m = m->next) {
1009
1010
switch (m->type) {
1010
case LS_MODIFIER_ALONG_STROKE:
1011
color_ramp = ((LineStyleColorModifier_AlongStroke *)m)->color_ramp;
1013
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
1014
color_ramp = ((LineStyleColorModifier_DistanceFromCamera *)m)->color_ramp;
1016
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
1017
color_ramp = ((LineStyleColorModifier_DistanceFromObject *)m)->color_ramp;
1019
case LS_MODIFIER_MATERIAL:
1020
color_ramp = ((LineStyleColorModifier_Material *)m)->color_ramp;
1011
case LS_MODIFIER_ALONG_STROKE:
1012
color_ramp = ((LineStyleColorModifier_AlongStroke *)m)->color_ramp;
1014
case LS_MODIFIER_DISTANCE_FROM_CAMERA:
1015
color_ramp = ((LineStyleColorModifier_DistanceFromCamera *)m)->color_ramp;
1017
case LS_MODIFIER_DISTANCE_FROM_OBJECT:
1018
color_ramp = ((LineStyleColorModifier_DistanceFromObject *)m)->color_ramp;
1020
case LS_MODIFIER_MATERIAL:
1021
color_ramp = ((LineStyleColorModifier_Material *)m)->color_ramp;
1025
1026
link = (LinkData *) MEM_callocN( sizeof(LinkData), "link to color ramp");
1026
1027
link->data = color_ramp;