distark-render 1.0.4 → 1.0.6

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.
@@ -2,6 +2,108 @@
2
2
  * Eye System Module
3
3
  * Handles eye blinking, gaze direction, and eye movement for character rigs
4
4
  */
5
+ /** Default movement ranges when no eye sockets are provided (pixel offsets) */
6
+ const DEFAULT_MOVEMENT_RANGES = {
7
+ 'left': { x: -5, y: 0 },
8
+ 'right': { x: 5, y: 0 },
9
+ 'up': { x: 0, y: -3 },
10
+ 'down': { x: 0, y: 3 },
11
+ 'center': { x: 0, y: 0 },
12
+ 'up-left': { x: -4, y: -2 },
13
+ 'up-right': { x: 4, y: -2 },
14
+ 'down-left': { x: -4, y: 2 },
15
+ 'down-right': { x: 4, y: 2 },
16
+ '': { x: 0, y: 0 }
17
+ };
18
+ /**
19
+ * Compute movement ranges from eye socket polygons.
20
+ * Socket points define the boundary; we use bounding box half-extents as max movement.
21
+ * When headWidth/headHeight are provided and socket values look like 0-100 percent,
22
+ * we scale to pixel offsets. Otherwise we use raw socket units.
23
+ * Factors in iris dimensions to prevent iris from escaping socket boundaries.
24
+ */
25
+ function computeMovementRangesFromSockets(eyeSockets, headWidth = 100, headHeight = 100, eyeData) {
26
+ const left = eyeSockets.left;
27
+ const right = eyeSockets.right;
28
+ const hasLeft = left && left.length >= 3;
29
+ const hasRight = right && right.length >= 3;
30
+ const computeBounds = (points) => {
31
+ let minX = Infinity, minY = Infinity;
32
+ let maxX = -Infinity, maxY = -Infinity;
33
+ for (const p of points) {
34
+ minX = Math.min(minX, p.x);
35
+ minY = Math.min(minY, p.y);
36
+ maxX = Math.max(maxX, p.x);
37
+ maxY = Math.max(maxY, p.y);
38
+ }
39
+ const centerX = (minX + maxX) / 2;
40
+ const centerY = (minY + maxY) / 2;
41
+ const halfWidthX = (maxX - minX) / 2;
42
+ const halfWidthY = (maxY - minY) / 2;
43
+ return { centerX, centerY, halfWidthX, halfWidthY };
44
+ };
45
+ // Use 50% of half-extent as max movement (keeps iris safely inside socket)
46
+ const marginFactor = 0.5;
47
+ let rangeX;
48
+ let rangeY;
49
+ if (hasLeft && hasRight) {
50
+ const leftBounds = computeBounds(left);
51
+ const rightBounds = computeBounds(right);
52
+ rangeX = Math.min(leftBounds.halfWidthX, rightBounds.halfWidthX) * marginFactor;
53
+ rangeY = Math.min(leftBounds.halfWidthY, rightBounds.halfWidthY) * marginFactor;
54
+ }
55
+ else if (hasLeft) {
56
+ const b = computeBounds(left);
57
+ rangeX = b.halfWidthX * marginFactor;
58
+ rangeY = b.halfWidthY * marginFactor;
59
+ }
60
+ else if (hasRight) {
61
+ const b = computeBounds(right);
62
+ rangeX = b.halfWidthX * marginFactor;
63
+ rangeY = b.halfWidthY * marginFactor;
64
+ }
65
+ else {
66
+ return { ...DEFAULT_MOVEMENT_RANGES };
67
+ }
68
+ // If socket values look like 0-100 percent (typical for rigs), scale to pixels
69
+ const maxCoord = Math.max(...(left || []).flatMap(p => [p.x, p.y]), ...(right || []).flatMap(p => [p.x, p.y]));
70
+ if (maxCoord > 0 && maxCoord <= 100) {
71
+ rangeX = (rangeX / 100) * headWidth;
72
+ rangeY = (rangeY / 100) * headHeight;
73
+ }
74
+ // Factor in iris dimensions to prevent escape from socket boundaries
75
+ if (eyeData) {
76
+ // Get iris dimensions (use the larger iris as reference to ensure both fit)
77
+ const leftIrisWidth = eyeData.leftIrisWidth || 10;
78
+ const leftIrisHeight = eyeData.leftIrisHeight || 10;
79
+ const rightIrisWidth = eyeData.rightIrisWidth || 10;
80
+ const rightIrisHeight = eyeData.rightIrisHeight || 10;
81
+ const maxIrisWidth = Math.max(leftIrisWidth, rightIrisWidth);
82
+ const maxIrisHeight = Math.max(leftIrisHeight, rightIrisHeight);
83
+ // Subtract half the iris size from available movement range
84
+ // This ensures the iris edge doesn't escape the socket
85
+ rangeX = Math.max(0, rangeX - maxIrisWidth / 2);
86
+ rangeY = Math.max(0, rangeY - maxIrisHeight / 2);
87
+ console.log('[EyeSystem] Adjusted movement range for iris size:', {
88
+ maxIrisWidth,
89
+ maxIrisHeight,
90
+ adjustedRangeX: rangeX,
91
+ adjustedRangeY: rangeY
92
+ });
93
+ }
94
+ return {
95
+ 'left': { x: -rangeX, y: 0 },
96
+ 'right': { x: rangeX, y: 0 },
97
+ 'up': { x: 0, y: -rangeY },
98
+ 'down': { x: 0, y: rangeY },
99
+ 'center': { x: 0, y: 0 },
100
+ 'up-left': { x: -rangeX * 0.8, y: -rangeY * 0.8 },
101
+ 'up-right': { x: rangeX * 0.8, y: -rangeY * 0.8 },
102
+ 'down-left': { x: -rangeX * 0.8, y: rangeY * 0.8 },
103
+ 'down-right': { x: rangeX * 0.8, y: rangeY * 0.8 },
104
+ '': { x: 0, y: 0 }
105
+ };
106
+ }
5
107
  /**
6
108
  * EyeSystem class - Manages eye animation, blinking, and gaze for characters
7
109
  */
@@ -9,10 +111,41 @@ export class EyeSystem {
9
111
  /**
10
112
  * Creates a new EyeSystem instance
11
113
  * @param characterId - Unique identifier for the character
12
- * @param eyeData - Eye configuration data from rig
114
+ * @param eyeDataOrOptions - Eye configuration data, or options object with eyeData + optional eyeSockets/headWidth/headHeight
13
115
  */
14
- constructor(characterId, eyeData) {
116
+ constructor(characterId, eyeDataOrOptions) {
117
+ const isOptions = 'eyeData' in eyeDataOrOptions;
118
+ const eyeData = (isOptions ? eyeDataOrOptions.eyeData : eyeDataOrOptions);
119
+ const options = isOptions ? eyeDataOrOptions : undefined;
15
120
  this.characterId = characterId;
121
+ // Compute movement ranges from eye sockets if provided
122
+ const eyeSockets = options?.eyeSockets;
123
+ const hasValidSockets = eyeSockets && typeof eyeSockets === 'object' &&
124
+ ((Array.isArray(eyeSockets.left) && eyeSockets.left.length >= 3) ||
125
+ (Array.isArray(eyeSockets.right) && eyeSockets.right.length >= 3));
126
+ console.log('[EyeSystem] createEyeSystem:', {
127
+ characterId,
128
+ hasEyeSockets: !!eyeSockets,
129
+ leftPoints: Array.isArray(eyeSockets?.left) ? eyeSockets.left.length : 0,
130
+ rightPoints: Array.isArray(eyeSockets?.right) ? eyeSockets.right.length : 0,
131
+ hasValidSockets
132
+ });
133
+ if (hasValidSockets && eyeSockets) {
134
+ this.movementRanges = computeMovementRangesFromSockets(eyeSockets, options?.headWidth ?? 100, options?.headHeight ?? 100, eyeData);
135
+ // Max range for manual -2 to 2 scale (use 'right' as reference for X, 'down' for Y)
136
+ const maxRangeX = Math.abs(this.movementRanges['right'].x);
137
+ const maxRangeY = Math.abs(this.movementRanges['down'].y);
138
+ this.manualScaleFactor = Math.max(maxRangeX, maxRangeY) / 2; // 2 = max of -2 to 2 range
139
+ console.log('[EyeSystem] Movement ranges from sockets:', {
140
+ characterId: this.characterId,
141
+ movementRanges: this.movementRanges,
142
+ manualScaleFactor: this.manualScaleFactor
143
+ });
144
+ }
145
+ else {
146
+ this.movementRanges = { ...DEFAULT_MOVEMENT_RANGES };
147
+ this.manualScaleFactor = 2.5; // Legacy default
148
+ }
16
149
  // Store immutable copy of base iris coordinates
17
150
  // This prevents accumulation when rigData is updated
18
151
  this.baseIrisCoords = {
@@ -66,6 +199,18 @@ export class EyeSystem {
66
199
  * @param currentTime - Current time in seconds
67
200
  */
68
201
  updateBlinking(currentTime) {
202
+ // Ensure eyelid is open when we are not in an active blink cycle (e.g. after pause+reset)
203
+ const blinkCycleDuration = 1.5 * this.state.blinkDuration;
204
+ if (this.state.eyeLidLastUpdatedTime !== null && this.state.currentEyeLidCount > 0) {
205
+ const timeSinceBlink = currentTime - this.state.eyeLidLastUpdatedTime;
206
+ if (timeSinceBlink < 0 || timeSinceBlink >= blinkCycleDuration) {
207
+ this.state.currentEyeLidState = 'open';
208
+ this.state.currentEyeLidCount = 0;
209
+ if (timeSinceBlink < 0) {
210
+ this.state.eyeLidLastUpdatedTime = null;
211
+ }
212
+ }
213
+ }
69
214
  // Initialize blink timing if needed: treat "last blink" as nextBlinkOffset ago
70
215
  // so the first blink happens after (eyeLidUpdateInterval - nextBlinkOffset) ≈ 2.5–5 s, with stagger 0–0.5 s
71
216
  if (this.state.eyeLidLastUpdatedTime === null) {
@@ -147,7 +292,7 @@ export class EyeSystem {
147
292
  */
148
293
  setEyeDirection(direction) {
149
294
  this.state.currentDirection = direction;
150
- const movement = EyeSystem.EYE_MOVEMENT_RANGES[direction] || { x: 0, y: 0 };
295
+ const movement = this.movementRanges[direction] || { x: 0, y: 0 };
151
296
  // Apply movement to base positions (immutable reference)
152
297
  this.state.leftIrisX = this.baseIrisCoords.leftX + movement.x;
153
298
  this.state.leftIrisY = this.baseIrisCoords.leftY + movement.y;
@@ -314,9 +459,8 @@ export class EyeSystem {
314
459
  * - +2 represents maximum right/up
315
460
  */
316
461
  setManualIrisPositions(eyePositions, currentTime) {
317
- // Scale factor to convert -2 to 2 range into pixel offsets
318
- // This matches the EYE_MOVEMENT_RANGES scale (where max is about 5 pixels)
319
- const scaleFactor = 2.5; // 2.5 pixels per unit, so -2 to 2 becomes -5 to 5
462
+ // scaleFactor converts -2 to 2 range into pixel offsets (derived from eye socket bounds when available)
463
+ const scaleFactor = this.manualScaleFactor;
320
464
  // Apply manual offsets to base positions (using immutable baseIrisCoords)
321
465
  this.state.leftIrisX = this.baseIrisCoords.leftX + (eyePositions.left.x * scaleFactor);
322
466
  this.state.leftIrisY = this.baseIrisCoords.leftY + (eyePositions.left.y * scaleFactor);
@@ -331,33 +475,51 @@ export class EyeSystem {
331
475
  * Get debug info
332
476
  */
333
477
  getDebugInfo() {
334
- return `Eye System [${this.characterId}]
335
- Direction: ${this.state.currentDirection}
336
- Eyelid: ${this.state.currentEyeLidState}
337
- Iris L: (${this.state.leftIrisX.toFixed(1)}, ${this.state.leftIrisY.toFixed(1)})
338
- Iris R: (${this.state.rightIrisX.toFixed(1)}, ${this.state.rightIrisY.toFixed(1)})
478
+ return `Eye System [${this.characterId}]
479
+ Direction: ${this.state.currentDirection}
480
+ Eyelid: ${this.state.currentEyeLidState}
481
+ Iris L: (${this.state.leftIrisX.toFixed(1)}, ${this.state.leftIrisY.toFixed(1)})
482
+ Iris R: (${this.state.rightIrisX.toFixed(1)}, ${this.state.rightIrisY.toFixed(1)})
339
483
  Last Update: ${this.state.eyeLastUpdatedTime.toFixed(2)}s`;
340
484
  }
341
485
  }
342
- /**
343
- * Default eye movement ranges for different directions
344
- */
345
- EyeSystem.EYE_MOVEMENT_RANGES = {
346
- 'left': { x: -5, y: 0 },
347
- 'right': { x: 5, y: 0 },
348
- 'up': { x: 0, y: -3 },
349
- 'down': { x: 0, y: 3 },
350
- 'center': { x: 0, y: 0 },
351
- 'up-left': { x: -4, y: -2 },
352
- 'up-right': { x: 4, y: -2 },
353
- 'down-left': { x: -4, y: 2 },
354
- 'down-right': { x: 4, y: 2 },
355
- '': { x: 0, y: 0 }
356
- };
357
486
  /**
358
487
  * Factory function to create eye system from rig data
488
+ * @param characterId - Unique identifier for the character
489
+ * @param eyeDataOrRigData - Eye configuration data, or full RigData object (will extract eyes and eyeSockets)
490
+ * @param options - Optional: { eyeSockets, headWidth, headHeight } - when provided, movement ranges are computed from eye socket polygons
359
491
  */
360
- export function createEyeSystem(characterId, eyeData) {
492
+ export function createEyeSystem(characterId, eyeDataOrRigData, options) {
493
+ // Check if rigData object was passed (has eyeSockets or eyes property)
494
+ const isRigData = eyeDataOrRigData && typeof eyeDataOrRigData === 'object' &&
495
+ ('eyeSockets' in eyeDataOrRigData || 'eyes' in eyeDataOrRigData);
496
+ if (isRigData) {
497
+ const rigData = eyeDataOrRigData;
498
+ const eyeData = rigData.eyes || {};
499
+ // Prefer rigData's eyeSockets over options
500
+ const eyeSockets = rigData.eyeSockets || options?.eyeSockets;
501
+ const headWidth = rigData.width || options?.headWidth;
502
+ const headHeight = rigData.height || options?.headHeight;
503
+ if (eyeSockets) {
504
+ return new EyeSystem(characterId, {
505
+ eyeData,
506
+ eyeSockets,
507
+ headWidth,
508
+ headHeight
509
+ });
510
+ }
511
+ return new EyeSystem(characterId, eyeData);
512
+ }
513
+ // Legacy: eyeData passed directly
514
+ const eyeData = eyeDataOrRigData;
515
+ if (options?.eyeSockets) {
516
+ return new EyeSystem(characterId, {
517
+ eyeData,
518
+ eyeSockets: options.eyeSockets,
519
+ headWidth: options.headWidth,
520
+ headHeight: options.headHeight
521
+ });
522
+ }
361
523
  return new EyeSystem(characterId, eyeData);
362
524
  }
363
525
  //# sourceMappingURL=eyeSystem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"eyeSystem.js","sourceRoot":"","sources":["../../modules/eyeSystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eyeSystem.js","sourceRoot":"","sources":["../../modules/eyeSystem.ts"],"names":[],"mappings":"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"}
@@ -158,10 +158,10 @@ export class MouthSystem {
158
158
  * Get debug information
159
159
  */
160
160
  getDebugInfo() {
161
- return `Mouth System [${this.characterId}]
162
- Current: ${this.state.currentMouthKey}
163
- Mode: ${this.state.mode}
164
- Volume: ${this.state.currentVolume.toFixed(1)}
161
+ return `Mouth System [${this.characterId}]
162
+ Current: ${this.state.currentMouthKey}
163
+ Mode: ${this.state.mode}
164
+ Volume: ${this.state.currentVolume.toFixed(1)}
165
165
  Available: [${Array.from(this.availableMouths).join(', ')}]`;
166
166
  }
167
167
  }
@@ -1 +1 @@
1
- {"version":3,"file":"renderRig.d.ts","sourceRoot":"","sources":["../../modules/renderRig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,KAAK,EACR,OAAO,EACP,aAAa,EACb,aAAa,EAGb,QAAQ,EACX,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,qBAAa,oBAAoB;IAC7B,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IAEnC;;;OAGG;gBACS,WAAW,CAAC,EAAE,WAAW;IAIrC;;;OAGG;IACH,cAAc,IAAI,WAAW;IAI7B;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;IACH,uBAAuB,CACnB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,aAAkB,GAC5B,aAAa;IA00ChB;;;;;;;;;;;;;;;;;OAiBG;IACG,MAAM,CACR,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,CAAC,EACnE,YAAY,GAAE,QAAyB,EACvC,eAAe,GAAE,OAAc,GAChC,OAAO,CAAC,IAAI,CAAC;CA8EnB;AAGD,eAAO,MAAM,eAAe,sBAA6B,CAAC;AAG1D,wBAAsB,kBAAkB,CACpC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,CAAC,EACnE,YAAY,GAAE,QAAyB,EACvC,eAAe,GAAE,OAAc,GAChC,OAAO,CAAC,IAAI,CAAC,CAEf;AAGD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,aAAa,CAEpG"}
1
+ {"version":3,"file":"renderRig.d.ts","sourceRoot":"","sources":["../../modules/renderRig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,KAAK,EACR,OAAO,EACP,aAAa,EACb,aAAa,EAGb,QAAQ,EACX,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,qBAAa,oBAAoB;IAC7B,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IAEnC;;;OAGG;gBACS,WAAW,CAAC,EAAE,WAAW;IAIrC;;;OAGG;IACH,cAAc,IAAI,WAAW;IAI7B;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;IACH,uBAAuB,CACnB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,aAAkB,GAC5B,aAAa;IAwyChB;;;;;;;;;;;;;;;;;OAiBG;IACG,MAAM,CACR,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,CAAC,EACnE,YAAY,GAAE,QAAyB,EACvC,eAAe,GAAE,OAAc,GAChC,OAAO,CAAC,IAAI,CAAC;CA8EnB;AAGD,eAAO,MAAM,eAAe,sBAA6B,CAAC;AAG1D,wBAAsB,kBAAkB,CACpC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,CAAC,EACnE,YAAY,GAAE,QAAyB,EACvC,eAAe,GAAE,OAAc,GAChC,OAAO,CAAC,IAAI,CAAC,CAEf;AAGD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,aAAa,CAEpG"}
@@ -332,25 +332,10 @@ export class CharacterRigRenderer {
332
332
  scaleX: flipHead ? -1 : 1,
333
333
  scaleY: 1
334
334
  });
335
- // Base iris position from rig data
336
- let offsetX = Number.isFinite(eyes.leftIrisXCoor) ? eyes.leftIrisXCoor : -10;
337
- let offsetY = Number.isFinite(eyes.leftIrisYCoor) ? eyes.leftIrisYCoor : -5;
338
- // Apply manual eye positioning if eyePositions exists
339
- const eyePositions = eyes.eyePositions;
340
- if (eyePositions?.left) {
341
- const eyePos = eyePositions.left;
342
- const hasEyeMovement = eyePos.x !== undefined && eyePos.y !== undefined &&
343
- (eyePos.x !== 0 || eyePos.y !== 0);
344
- if (hasEyeMovement) {
345
- // eyePos values are in -2 to 2 range
346
- // Scale them to pixel movement (matching the old Body.js behavior)
347
- const movementScale = 5; // Pixels of movement per unit
348
- const deltaX = eyePos.x * movementScale;
349
- const deltaY = eyePos.y * movementScale;
350
- offsetX += deltaX;
351
- offsetY += deltaY;
352
- }
353
- }
335
+ // Iris position: Body/EyeSystem has already written the final pixel position to leftIrisXCoor/YCoor.
336
+ // Do not add eyePositions delta here - that would double-apply and use wrong scale (5 vs socket-derived).
337
+ const offsetX = Number.isFinite(eyes.leftIrisXCoor) ? eyes.leftIrisXCoor : -10;
338
+ const offsetY = Number.isFinite(eyes.leftIrisYCoor) ? eyes.leftIrisYCoor : -5;
354
339
  const baseLeftIrisWidth = eyes.leftIrisWidth || 10;
355
340
  const baseLeftIrisHeight = eyes.leftIrisHeight || 10;
356
341
  const leftIrisWidth = baseLeftIrisWidth * (eyes.leftIrisWidthRatio || 1.0);
@@ -392,25 +377,10 @@ export class CharacterRigRenderer {
392
377
  scaleX: flipHead ? -1 : 1,
393
378
  scaleY: 1
394
379
  });
395
- // Base iris position from rig data
396
- let offsetX = Number.isFinite(eyes.rightIrisXCoor) ? eyes.rightIrisXCoor : 10;
397
- let offsetY = Number.isFinite(eyes.rightIrisYCoor) ? eyes.rightIrisYCoor : -5;
398
- // Apply manual eye positioning if eyePositions exists
399
- const eyePositions = eyes.eyePositions;
400
- if (eyePositions?.right) {
401
- const eyePos = eyePositions.right;
402
- const hasEyeMovement = eyePos.x !== undefined && eyePos.y !== undefined &&
403
- (eyePos.x !== 0 || eyePos.y !== 0);
404
- if (hasEyeMovement) {
405
- // eyePos values are in -2 to 2 range
406
- // Scale them to pixel movement (matching the old Body.js behavior)
407
- const movementScale = 5; // Pixels of movement per unit
408
- const deltaX = eyePos.x * movementScale;
409
- const deltaY = eyePos.y * movementScale;
410
- offsetX += deltaX;
411
- offsetY += deltaY;
412
- }
413
- }
380
+ // Iris position: Body/EyeSystem has already written the final pixel position to rightIrisXCoor/YCoor.
381
+ // Do not add eyePositions delta here - that would double-apply and use wrong scale (5 vs socket-derived).
382
+ const offsetX = Number.isFinite(eyes.rightIrisXCoor) ? eyes.rightIrisXCoor : 10;
383
+ const offsetY = Number.isFinite(eyes.rightIrisYCoor) ? eyes.rightIrisYCoor : -5;
414
384
  const baseRightIrisWidth = eyes.rightIrisWidth || 10;
415
385
  const baseRightIrisHeight = eyes.rightIrisHeight || 10;
416
386
  const rightIrisWidth = baseRightIrisWidth * (eyes.rightIrisWidthRatio || 1.0);