@combeenation/3d-viewer 4.0.0 → 4.0.1-alpha1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,6 +27,11 @@ export declare class PlacementAnimation implements AnimationInterface {
27
27
  * Kills all `Tweens` of this {@link PlacementAnimation}.
28
28
  */
29
29
  kill(): AnimationInterface;
30
+ /**
31
+ * Creates a {@link AnimationDefinition} definition if not provided in the constructor and sets some defaults.
32
+ * Only custom properties from {@link AnimationDefinition} are adjusted, all {@link GSAPTweenVars} remain untouched.
33
+ */
34
+ protected prepareAnimationDefinition(): void;
30
35
  /**
31
36
  * Prepares different types of {@link PlacementDefinition} and sets some defaults.
32
37
  */
@@ -47,8 +47,9 @@ var PlacementAnimation = /** @class */ (function () {
47
47
  else {
48
48
  this._animationDefinition = lodash_es_1.cloneDeep(_animation);
49
49
  }
50
+ this.prepareAnimationDefinition();
50
51
  this._timeline = gsap_1.gsap.timeline({
51
- defaults: lodash_es_1.merge({ duration: 0, ease: 'none' }, this._animationDefinition),
52
+ defaults: this._animationDefinition,
52
53
  paused: true
53
54
  });
54
55
  this.preparePlacementDefinition();
@@ -83,6 +84,21 @@ var PlacementAnimation = /** @class */ (function () {
83
84
  this._timeline.kill();
84
85
  return this;
85
86
  };
87
+ /**
88
+ * Creates a {@link AnimationDefinition} definition if not provided in the constructor and sets some defaults.
89
+ * Only custom properties from {@link AnimationDefinition} are adjusted, all {@link GSAPTweenVars} remain untouched.
90
+ */
91
+ PlacementAnimation.prototype.prepareAnimationDefinition = function () {
92
+ // create an animation definition if not available yet
93
+ this._animationDefinition = this._animationDefinition || {};
94
+ // parse shortest way flag or set to `true` if not configured
95
+ if (this._animationDefinition.shortestWay !== undefined) {
96
+ this._animationDefinition.shortestWay = parameter_1.Parameter.parseBoolean(this._animationDefinition.shortestWay);
97
+ }
98
+ else {
99
+ this._animationDefinition.shortestWay = true;
100
+ }
101
+ };
86
102
  /**
87
103
  * Prepares different types of {@link PlacementDefinition} and sets some defaults.
88
104
  */
@@ -92,11 +108,6 @@ var PlacementAnimation = /** @class */ (function () {
92
108
  position = parameter_1.Parameter.parseVector(position);
93
109
  this._placementDefinition.position = position;
94
110
  }
95
- var shortestWay = true;
96
- if (this._animationDefinition.shortestWay !== undefined) {
97
- shortestWay = parameter_1.Parameter.parseBoolean(this._animationDefinition.shortestWay);
98
- this._animationDefinition.shortestWay = shortestWay;
99
- }
100
111
  if (this.mutable instanceof arcRotateCamera_1.ArcRotateCamera) {
101
112
  // parse the target
102
113
  if (lodash_es_1.isString(this._placementDefinition.target)) {
@@ -115,7 +126,7 @@ var PlacementAnimation = /** @class */ (function () {
115
126
  delete this._placementDefinition.position;
116
127
  ghostCam.dispose();
117
128
  }
118
- else if (shortestWay && this._placementDefinition.alpha) {
129
+ else if (this._animationDefinition.shortestWay && this._placementDefinition.alpha !== undefined) {
119
130
  // transform the target's alpha value into the same turn as the current camera position to avoid movements > 360 degrees
120
131
  var alphaGap = this.mutable.alpha - this._placementDefinition.alpha;
121
132
  var cntTurns = Math.round(alphaGap / (2 * Math.PI));
@@ -1 +1 @@
1
- {"version":3,"file":"placementAnimation.js","sourceRoot":"","sources":["../../../../src/api/classes/placementAnimation.ts"],"names":[],"mappings":";;;;AAAA,2EAA0E;AAC1E,iEAA4D;AAC5D,6BAA4B;AAC5B,uCAAiE;AACjE,kDAAiD;AACjD,oDAAmD;AAEnD;;;;;GAKG;AACH;IAQC;;OAEG;IACH,4BAAoC,OAAe,EACrB,UAAwC,EACxC,UAAyC;;QAFnC,YAAO,GAAP,OAAO,CAAQ;QACrB,eAAU,GAAV,UAAU,CAA8B;QACxC,eAAU,GAAV,UAAU,CAA+B;QACtE,IAAI,oBAAQ,CAAE,UAAU,CAAE,EAAG;YAC5B,IAAM,oBAAoB,GAAG,yBAAW,CAAC,GAAG,CAAwB,kBAAkB,CAAE,CAAC;YACzF,IAAI,CAAC,oBAAoB,EAAG;gBAC3B,MAAM,IAAI,KAAK,CAAE,oDAAoD,CAAE,CAAC;aACxE;YACD,IAAM,mBAAmB,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;YAC7D,IAAI,CAAC,mBAAmB,EAAG;gBAC1B,MAAM,IAAI,KAAK,CAAE,2BAAwB,UAAU,sCAAkC,CAAE,CAAC;aACxF;YACD,IAAI,CAAC,oBAAoB,GAAG,qBAAS,CAAE,mBAAmB,CAAE,CAAC;SAC7D;aAAM;YACN,IAAI,CAAC,oBAAoB,GAAG,qBAAS,CAAE,UAAU,CAAyB,CAAC;SAC3E;QACD,IAAI,oBAAQ,CAAE,UAAU,CAAE,EAAG;YAC5B,IAAM,mBAAmB,SAAG,yBAAW,CAAC,GAAG,CAAwB,kBAAkB,CAAE,0CAAG,UAAU,CAAC,CAAC;YACtG,IAAI,CAAC,mBAAmB,EAAG;gBAC1B,MAAM,IAAI,KAAK,CAAE,2BAAwB,UAAU,sCAAkC,CAAE,CAAC;aACxF;YACD,IAAI,CAAC,oBAAoB,GAAG,qBAAS,CAAE,mBAAmB,CAAE,CAAC;SAC7D;aAAM;YACN,IAAI,CAAC,oBAAoB,GAAG,qBAAS,CAAE,UAAU,CAAyB,CAAC;SAC3E;QACD,IAAI,CAAC,SAAS,GAAG,WAAI,CAAC,QAAQ,CAAE;YAC/B,QAAQ,EAAE,iBAAK,CAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,oBAAoB,CAAE;YAC3E,MAAM,EAAE,IAAI;SACZ,CAAE,CAAC;QACJ,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClC,IAAI,CAAC,YAAY,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACU,iCAAI,GAAjB;;;;4BACC,qBAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAA;;wBAAlC,SAAkC,CAAC;wBACnC,sBAAO,IAAI,EAAC;;;;KACZ;IAED;;OAEG;IACI,kCAAK,GAAZ;QACC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACI,iCAAI,GAAX;QACC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACO,uDAA0B,GAApC;QACC,IAAI,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;QAClD,IAAI,oBAAQ,CAAE,QAAQ,CAAE,EAAG;YAC1B,QAAQ,GAAG,qBAAS,CAAC,WAAW,CAAE,QAAQ,CAAE,CAAC;YAC7C,IAAI,CAAC,oBAAoB,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC9C;QACD,IAAI,WAAW,GAAG,IAAI,CAAC;QACvB,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,KAAK,SAAS,EAAG;YACzD,WAAW,GAAG,qBAAS,CAAC,YAAY,CAAE,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAE,CAAC;YAC9E,IAAI,CAAC,oBAAoB,CAAC,WAAW,GAAG,WAAW,CAAC;SACpD;QACD,IAAI,IAAI,CAAC,OAAO,YAAY,iCAAe,EAAG;YAC7C,mBAAmB;YACnB,IAAI,oBAAQ,CAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAE,EAAG;gBAClD,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,qBAAS,CAAC,WAAW,CAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAE,CAAC;aAC7F;YACD,IAAI,QAAQ,EAAG;gBACd,gFAAgF;gBAChF,qDAAqD;gBACrD,IAAM,QAAQ,GAAI,IAAI,CAAC,OAA2B,CAAC,KAAK,CAAE,OAAO,CAAqB,CAAC;gBACvF,QAAQ,CAAC,WAAW,CAAE,QAAQ,CAAE,CAAC;gBACjC,iBAAK,CAAE,IAAI,CAAC,oBAAoB,EAAE;oBACjC,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;iBACvB,CAAE,CAAC;gBACJ,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;gBAC1C,QAAQ,CAAC,OAAO,EAAE,CAAC;aACnB;iBAAM,IAAI,WAAW,IAAI,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAG;gBAC3D,wHAAwH;gBACxH,IAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;gBACtE,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtD,IAAI,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;aAC5D;SACD;IACF,CAAC;IAED;;OAEG;IACO,yCAAY,GAAtB;QACC,KAAK,IAAM,QAAQ,IAAI,IAAI,CAAC,oBAAoB,EAAG;YAClD,IAAM,aAAa,GAAG,eAAG,CAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAE,CAAC;YACjE,IAAM,SAAS,GAAW,EAAE,CAAC;YAC7B,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,IAAI,aAAa,YAAY,qBAAO,EAAG;gBACtC,sEAAsE;gBACtE,qEAAqE;gBACrE,8BAA8B;gBAC9B,QAAQ,GAAG,eAAG,CAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAE,CAAC;gBACzC,iBAAK,CAAE,SAAS,EAAE,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAE,CAAC;aACnF;iBAAM;gBACN,eAAG,CAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAE,CAAC;aAC1C;YACD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAE,CAAC,CAAE,kDAAkD;SAChG;IACF,CAAC;IAEF,yBAAC;AAAD,CAAC,AAjID,IAiIC;AAjIY,gDAAkB"}
1
+ {"version":3,"file":"placementAnimation.js","sourceRoot":"","sources":["../../../../src/api/classes/placementAnimation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@combeenation/3d-viewer",
3
3
  "description": "Combeenation 3D Viewer",
4
- "version": "4.0.0",
4
+ "version": "4.0.1-alpha1",
5
5
  "homepage": "https://github.com/Combeenation/3d-viewer#readme",
6
6
  "keywords": [],
7
7
  "author": "",
@@ -47,10 +47,13 @@ export class PlacementAnimation implements AnimationInterface {
47
47
  } else {
48
48
  this._animationDefinition = cloneDeep( _animation ) as AnimationDefinition;
49
49
  }
50
+
51
+ this.prepareAnimationDefinition();
50
52
  this._timeline = gsap.timeline( {
51
- defaults: merge( { duration: 0, ease: 'none' }, this._animationDefinition ),
53
+ defaults: this._animationDefinition,
52
54
  paused: true
53
55
  } );
56
+
54
57
  this.preparePlacementDefinition();
55
58
  this.createTweens();
56
59
  }
@@ -79,6 +82,22 @@ export class PlacementAnimation implements AnimationInterface {
79
82
  return this;
80
83
  }
81
84
 
85
+ /**
86
+ * Creates a {@link AnimationDefinition} definition if not provided in the constructor and sets some defaults.
87
+ * Only custom properties from {@link AnimationDefinition} are adjusted, all {@link GSAPTweenVars} remain untouched.
88
+ */
89
+ protected prepareAnimationDefinition() {
90
+ // create an animation definition if not available yet
91
+ this._animationDefinition = this._animationDefinition || {};
92
+
93
+ // parse shortest way flag or set to `true` if not configured
94
+ if( this._animationDefinition.shortestWay !== undefined ) {
95
+ this._animationDefinition.shortestWay = Parameter.parseBoolean( this._animationDefinition.shortestWay );
96
+ } else {
97
+ this._animationDefinition.shortestWay = true;
98
+ }
99
+ }
100
+
82
101
  /**
83
102
  * Prepares different types of {@link PlacementDefinition} and sets some defaults.
84
103
  */
@@ -88,11 +107,6 @@ export class PlacementAnimation implements AnimationInterface {
88
107
  position = Parameter.parseVector( position );
89
108
  this._placementDefinition.position = position;
90
109
  }
91
- let shortestWay = true;
92
- if( this._animationDefinition.shortestWay !== undefined ) {
93
- shortestWay = Parameter.parseBoolean( this._animationDefinition.shortestWay );
94
- this._animationDefinition.shortestWay = shortestWay;
95
- }
96
110
  if( this.mutable instanceof ArcRotateCamera ) {
97
111
  // parse the target
98
112
  if( isString( this._placementDefinition.target ) ) {
@@ -110,7 +124,7 @@ export class PlacementAnimation implements AnimationInterface {
110
124
  } );
111
125
  delete this._placementDefinition.position;
112
126
  ghostCam.dispose();
113
- } else if( shortestWay && this._placementDefinition.alpha ) {
127
+ } else if( this._animationDefinition.shortestWay && this._placementDefinition.alpha !== undefined ) {
114
128
  // transform the target's alpha value into the same turn as the current camera position to avoid movements > 360 degrees
115
129
  const alphaGap = this.mutable.alpha - this._placementDefinition.alpha;
116
130
  const cntTurns = Math.round(alphaGap / (2 * Math.PI));