@galacean/effects-threejs 2.8.0 → 2.8.2

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.
package/dist/index.mjs CHANGED
@@ -3,7 +3,7 @@
3
3
  * Description: Galacean Effects runtime threejs plugin for the web
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 燃然,飂兮,十弦,云垣,茂安,意绮
6
- * Version: v2.8.0
6
+ * Version: v2.8.2
7
7
  */
8
8
 
9
9
  import * as THREE from 'three';
@@ -13348,22 +13348,34 @@ function _loadVideo() {
13348
13348
  return [
13349
13349
  2,
13350
13350
  new Promise(function(resolve, reject) {
13351
- var handleCanPlay = function() {
13351
+ var settled = false;
13352
+ var handleSuccess = function() {
13353
+ if (settled) {
13354
+ return;
13355
+ }
13356
+ settled = true;
13357
+ cleanup();
13352
13358
  resolve(video);
13353
- video.removeEventListener("error", handleError);
13354
13359
  };
13355
- var handleError = function(e) {
13356
- video.removeEventListener("canplay", handleCanPlay);
13360
+ var handleError = function() {
13361
+ if (settled) {
13362
+ return;
13363
+ }
13364
+ settled = true;
13365
+ cleanup();
13357
13366
  reject("Load video fail.");
13358
13367
  };
13359
- video.addEventListener("canplay", handleCanPlay, {
13360
- once: true
13361
- });
13362
- video.addEventListener("error", handleError, {
13363
- once: true
13368
+ var cleanup = function() {
13369
+ video.removeEventListener("loadeddata", handleSuccess);
13370
+ video.removeEventListener("canplay", handleSuccess);
13371
+ video.removeEventListener("error", handleError);
13372
+ };
13373
+ video.addEventListener("loadeddata", handleSuccess);
13374
+ video.addEventListener("canplay", handleSuccess);
13375
+ video.addEventListener("error", handleError);
13376
+ video.play().catch(function(err) {
13377
+ console.warn("Autoplay blocked:", err);
13364
13378
  });
13365
- // 显式触发视频加载
13366
- video.load();
13367
13379
  })
13368
13380
  ];
13369
13381
  });
@@ -16665,10 +16677,7 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
16665
16677
  }
16666
16678
  var regions = [];
16667
16679
  var ray = this.getHitTestRay(x, y);
16668
- this.refContent.forEach(function(ref) {
16669
- var _ref_getComponent;
16670
- (_ref_getComponent = ref.getComponent(CompositionComponent)) == null ? void 0 : _ref_getComponent.hitTest(ray, x, y, regions, force, options);
16671
- });
16680
+ this.rootComposition.hitTest(ray, x, y, regions, force, options);
16672
16681
  return regions;
16673
16682
  };
16674
16683
  /**
@@ -17745,10 +17754,32 @@ var CompositionComponent = /*#__PURE__*/ function(Component) {
17745
17754
  });
17746
17755
  };
17747
17756
  _proto.hitTest = function hitTest(ray, x, y, regions, force, options) {
17748
- var _this, _loop = function(i) {
17749
- var item = _this.items[i];
17750
- if (item.isActive && item.transform.getValid() && !VFXItem.isComposition(item) && !skip(item)) {
17751
- var hitParams = item.getHitTestParams(force);
17757
+ var _this_item_composition;
17758
+ var isHitTestSuccess = this.hitTestRecursive(this.item, ray, x, y, regions, force, options);
17759
+ // 子元素碰撞测试成功加入当前预合成元素,判断是否是合成根元素,根元素不加入
17760
+ if (isHitTestSuccess && this.item !== ((_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.rootItem)) {
17761
+ var item = this.item;
17762
+ var lastRegion = regions[regions.length - 1];
17763
+ var hitPositions = lastRegion.hitPositions;
17764
+ var region = {
17765
+ id: item.getInstanceId(),
17766
+ name: item.name,
17767
+ position: hitPositions[hitPositions.length - 1],
17768
+ parentId: item.parentId,
17769
+ hitPositions: hitPositions,
17770
+ behavior: InteractBehavior.NONE,
17771
+ item: item,
17772
+ composition: item.composition
17773
+ };
17774
+ regions.push(region);
17775
+ }
17776
+ return isHitTestSuccess;
17777
+ };
17778
+ _proto.hitTestRecursive = function hitTestRecursive(item, ray, x, y, regions, force, options) {
17779
+ var _this, _loop = function() {
17780
+ var hitTestItem = _step.value;
17781
+ if (hitTestItem.isActive && hitTestItem.transform.getValid() && !skip(hitTestItem)) {
17782
+ var hitParams = hitTestItem.getHitTestParams(force);
17752
17783
  if (hitParams) {
17753
17784
  var success = false;
17754
17785
  var intersectPoint = new Vector3();
@@ -17793,35 +17824,48 @@ var CompositionComponent = /*#__PURE__*/ function(Component) {
17793
17824
  }
17794
17825
  if (success) {
17795
17826
  var region = {
17796
- compContent: _this.item,
17797
- id: item.getInstanceId(),
17798
- name: item.name,
17827
+ id: hitTestItem.getInstanceId(),
17828
+ name: hitTestItem.name,
17799
17829
  position: hitPositions[hitPositions.length - 1],
17800
- parentId: item.parentId,
17830
+ parentId: hitTestItem.parentId,
17801
17831
  hitPositions: hitPositions,
17802
17832
  behavior: hitParams.behavior,
17803
- item: item,
17833
+ item: hitTestItem,
17804
17834
  composition: _this.item.composition
17805
17835
  };
17806
17836
  regions.push(region);
17837
+ hitTestSuccess = true;
17807
17838
  if (stop(region)) {
17808
17839
  return {
17809
- v: regions
17840
+ v: true
17810
17841
  };
17811
17842
  }
17812
17843
  }
17813
17844
  }
17845
+ if (VFXItem.isComposition(hitTestItem)) {
17846
+ if (hitTestItem.getComponent(CompositionComponent).hitTest(ray, x, y, regions, force, options)) {
17847
+ hitTestSuccess = true;
17848
+ }
17849
+ } else {
17850
+ if (_this.hitTestRecursive(hitTestItem, ray, x, y, regions, force, options)) {
17851
+ hitTestSuccess = true;
17852
+ }
17853
+ }
17814
17854
  }
17815
17855
  };
17816
17856
  var hitPositions = [];
17817
17857
  var stop = (options == null ? void 0 : options.stop) || noop;
17818
17858
  var skip = (options == null ? void 0 : options.skip) || noop;
17819
- var maxCount = (options == null ? void 0 : options.maxCount) || this.items.length;
17820
- for(var i = 0; i < this.items.length && regions.length < maxCount; i++){
17821
- var _ret = (_this = this, _loop(i));
17859
+ var maxCount = options == null ? void 0 : options.maxCount;
17860
+ if (maxCount !== undefined && regions.length >= maxCount) {
17861
+ return false;
17862
+ }
17863
+ var hitTestSuccess = false;
17864
+ for(var _iterator = _create_for_of_iterator_helper_loose(item.children), _step; !(_step = _iterator()).done;){
17865
+ var _ret = (_this = this, _loop());
17822
17866
  if (_type_of(_ret) === "object") return _ret.v;
17823
17867
  }
17824
- return regions;
17868
+ return hitTestSuccess;
17825
17869
  };
17826
17870
  /**
17827
17871
  * 设置当前合成子元素的渲染顺序
@@ -29393,14 +29437,11 @@ var TextComponent = /*#__PURE__*/ function(MaskableGraphic) {
29393
29437
  this.isDirty = true;
29394
29438
  };
29395
29439
  _proto.setFontSize = function setFontSize(value) {
29396
- if (this.textStyle.fontSize === value) {
29440
+ var size = Math.max(1, Number(value) || 1);
29441
+ if (this.textStyle.fontSize === size) {
29397
29442
  return;
29398
29443
  }
29399
- // 保证字号变化后位置正常
29400
- var diff = this.textStyle.fontSize - value;
29401
- var layout = this.textLayout;
29402
- layout.lineHeight += diff;
29403
- this.textStyle.fontSize = value;
29444
+ this.textStyle.fontSize = size;
29404
29445
  this.isDirty = true;
29405
29446
  };
29406
29447
  _proto.setOutlineWidth = function setOutlineWidth(value) {
@@ -31494,7 +31535,7 @@ function getStandardSpriteContent(sprite, transform) {
31494
31535
  return ret;
31495
31536
  }
31496
31537
 
31497
- var version$2 = "2.8.0";
31538
+ var version$2 = "2.8.2";
31498
31539
  var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
31499
31540
  var standardVersion = /^(\d+)\.(\d+)$/;
31500
31541
  var reverseParticle = false;
@@ -32839,7 +32880,7 @@ function _createTextureOptionsBySource() {
32839
32880
  scene.jsonScene.items.forEach(function(item) {
32840
32881
  if (item.type === ItemType.text || item.type === ItemType.richtext) {
32841
32882
  var textVariable = variables[item.name];
32842
- if (!textVariable) {
32883
+ if (textVariable === undefined || textVariable === null) {
32843
32884
  return;
32844
32885
  }
32845
32886
  item.components.forEach(function(param) {
@@ -35194,7 +35235,7 @@ registerPlugin("text", TextLoader);
35194
35235
  registerPlugin("sprite", SpriteLoader);
35195
35236
  registerPlugin("particle", ParticleLoader);
35196
35237
  registerPlugin("interact", InteractLoader);
35197
- var version$1 = "2.8.0";
35238
+ var version$1 = "2.8.2";
35198
35239
  logger.info("Core version: " + version$1 + ".");
35199
35240
 
35200
35241
  var _obj;
@@ -36771,7 +36812,7 @@ applyMixins(ThreeTextComponent, [
36771
36812
  */ Mesh.create = function(engine, props) {
36772
36813
  return new ThreeMesh(engine, props);
36773
36814
  };
36774
- var version = "2.8.0";
36815
+ var version = "2.8.2";
36775
36816
  logger.info("THREEJS plugin version: " + version + ".");
36776
36817
 
36777
36818
  export { ActivationMixerPlayable, ActivationPlayable, ActivationPlayableAsset, ActivationTrack, AndNode, AndNodeData, Animatable, AnimationClip, AnimationClipNode, AnimationClipNodeData, AnimationGraphAsset, Animator, ApplyAdditiveNode, ApplyAdditiveNodeData, Asset, AssetLoader, AssetManager, AssetService, BYTES_TYPE_MAP, Behaviour, BezierCurve, BezierCurvePath, BezierCurveQuat, BinaryAsset, BlendNode, BlendNodeData, BoolValueNode, CONSTANT_MAP_BLEND, CONSTANT_MAP_DEPTH, CONSTANT_MAP_STENCIL_FUNC, CONSTANT_MAP_STENCIL_OP, COPY_FRAGMENT_SHADER, COPY_MESH_SHADER_ID, COPY_VERTEX_SHADER, Camera, CameraController, CameraVFXItemLoader, ColorCurve, ColorPlayable, ColorPropertyMixerPlayable, ColorPropertyPlayableAsset, ColorPropertyTrack, Component, ComponentTimePlayable, ComponentTimePlayableAsset, ComponentTimeTrack, Composition, CompositionComponent, CompressTextureCapabilityType, ConstBoolNode, ConstBoolNodeData, ConstFloatNode, ConstFloatNodeData, ConstraintTarget, ControlParameterBoolNode, ControlParameterBoolNodeData, ControlParameterFloatNode, ControlParameterFloatNodeData, ControlParameterTriggerNode, ControlParameterTriggerNodeData, DEFAULT_FONTS, DEFAULT_FPS, Database, Deferred, DestroyOptions, Downloader, DrawObjectPass, EFFECTS_COPY_MESH_NAME, EVENT_TYPE_CLICK, EVENT_TYPE_TOUCH_END, EVENT_TYPE_TOUCH_MOVE, EVENT_TYPE_TOUCH_START, EffectComponent, EffectComponentTimeTrack, EffectsObject, EffectsPackage, Ellipse, Engine, EqualNodeData, EventEmitter, EventSystem, Fake3DAnimationMode, Fake3DComponent, FilterMode, Float16ArrayWrapper, FloatComparisonNode, FloatComparisonNodeData, FloatPropertyMixerPlayable, FloatPropertyPlayableAsset, FloatPropertyTrack, FloatValueNode, Framebuffer, GLSLVersion, GPUCapability, Geometry, GlobalUniforms, GradientValue, GraphInstance, GraphNode, GraphNodeData, GraphicsPath, GreaterNodeData, HELP_LINK, HitTestType, InteractComponent, InteractLoader, InteractMesh, InvalidIndex, Item, LayerBlendNode, LayerBlendNodeData, LessNodeData, LineSegments, LinearValue, MaskMode, MaskProcessor, MaskableGraphic, Material, MaterialDataBlock, MaterialRenderType, MaterialTrack, Mesh, MeshCollider, NodeTransform, NotNode, NotNodeData, ObjectBindingTrack, OrNode, OrNodeData, OrderType, PLAYER_OPTIONS_ENV_EDITOR, POST_PROCESS_SETTINGS, ParticleBehaviourPlayable, ParticleBehaviourPlayableAsset, ParticleLoader, ParticleMesh, ParticleMixerPlayable, ParticleSystem, ParticleSystemRenderer, ParticleTrack, PassTextureCache, PathSegments, PlayState, Playable, PlayableAsset, PlayableOutput, Plugin, PluginSystem, PointerEventData, PointerEventType, PolyStar, Polygon, Pose, PoseNode, PositionConstraint, PostProcessVolume, PropertyClipPlayable, PropertyTrack, RENDER_PREFER_LOOKUP_TEXTURE, RUNTIME_ENV, RandomSetValue, RandomValue, RandomVectorValue, RaycastResult, RenderFrame, RenderPass, RenderPassAttachmentStorageType, RenderPassDestroyAttachmentType, RenderPassPriorityNormal, RenderPassPriorityPostprocess, RenderPassPriorityPrepare, RenderTargetHandle, RenderTargetPool, RenderTextureFormat, Renderbuffer, Renderer, RendererComponent, RuntimeClip, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_0, SEMANTIC_MAIN_PRE_COLOR_ATTACHMENT_SIZE_0, SEMANTIC_PRE_COLOR_ATTACHMENT_0, SEMANTIC_PRE_COLOR_ATTACHMENT_SIZE_0, SPRITE_VERTEX_STRIDE, Scene, SceneLoader, SerializationHelper, Shader, ShaderCompileResultStatus, ShaderFactory, ShaderType, ShaderVariant, ShapeComponent, ShapePath, SourceType, SpriteColorMixerPlayable, SpriteColorPlayableAsset, SpriteColorTrack, SpriteComponent, SpriteComponentTimeTrack, SpriteLoader, StarType, StateMachineNode, StateMachineNodeData, StateNode, StateNodeData, StaticValue, SubCompositionClipPlayable, SubCompositionMixerPlayable, SubCompositionPlayableAsset, SubCompositionTrack, TEMPLATE_USE_OFFSCREEN_CANVAS, TEXTURE_UNIFORM_MAP, TangentMode, TextComponent, TextComponentBase, TextLayout, TextLoader, TextStyle, Texture, TextureFactory, TextureLoadAction, TexturePaintScaleMode, TextureSourceType, TextureStoreAction, ThreeComposition, ThreeDisplayObject, ThreeEngine, ThreeMaterial, ThreeSpriteComponent, ThreeTextComponent, ThreeTexture, Ticker, TimelineAsset, TimelineClip, TimelineInstance, TrackAsset, TrackMixerPlayable, TrackType, Transform, TransformMixerPlayable, TransformPlayable, TransformPlayableAsset, TransformTrack, TransitionNode, TransitionNodeData, TransitionState, VFXItem, ValueGetter, ValueNode, Vector2Curve, Vector2PropertyMixerPlayable, Vector2PropertyPlayableAsset, Vector2PropertyTrack, Vector3Curve, Vector3PropertyMixerPlayable, Vector3PropertyTrack, Vector3ropertyPlayableAsset, Vector4Curve, Vector4PropertyMixerPlayable, Vector4PropertyPlayableAsset, Vector4PropertyTrack, WeightedMode, addByOrder, addItem, addItemWithOrder, applyMixins, assertExist, asserts, base64ToFile, buildLine, calculateTranslation, canUseBOM, canvasPool, closePointEps, colorGradingFrag, colorStopsFromGradient, colorToArr$1 as colorToArr, combineImageTemplate, createGLContext, createKeyFrameMeta, createShape, createValueGetter, curveEps, decimalEqual, deserializeMipmapTexture, earcut, effectsClass, effectsClassStore, enlargeBuffer, ensureFixedNumber, ensureVec3, gaussianDownHFrag, gaussianDownVFrag, gaussianUpFrag, generateEmptyTypedArray, generateGUID, generateHalfFloatTexture, generateTransparentTexture, generateWhiteTexture, getBackgroundImage, getClass, getColorFromGradientStops, getConfig, getDefaultTextureFactory, getGeometryByShape, getGeometryTriangles, getKeyFrameMetaByRawValue, getMergedStore, getNodeDataClass, getParticleMeshShader, getPixelRatio, getPluginUsageInfo, getPreMultiAlpha, getStandardComposition, getStandardImage, getStandardItem, getStandardJSON, getTextureSize, glContext, glType2VertexFormatType, gpuTimer, imageDataFromColor, imageDataFromGradient, initErrors, initGLContext, integrate, interpolateColor, isAlipayMiniApp, isAndroid, isArray, isCanvas, isFunction, isIOS, isIOSByUA, isMiniProgram, isObject, isOpenHarmony, isPlainObject, isPowerOfTwo, isSimulatorCellPhone, isString, isUniformStruct, isUniformStructArray, isValidFontFamily, isWebGL2, isWechatMiniApp, itemFrag, itemVert, loadAVIFOptional, loadBinary, loadBlob, loadImage, loadMedia, loadVideo, loadWebPOptional, logger, index as math, modifyMaxKeyframeShader, nearestPowerOfTwo, nodeDataClass, noop, normalizeColor, numberToFix, oldBezierKeyFramesToNew, parsePercent$1 as parsePercent, particleFrag, particleOriginTranslateMap$1 as particleOriginTranslateMap, particleUniformTypeMap, particleVert, passRenderLevel, pluginLoaderMap, randomInRange, registerPlugin, removeItem, rotateVec2, screenMeshVert, serialize, setBlendMode, setConfig, setDefaultTextureFactory, setMaskMode, setRayFromCamera, setSideMode, setUniformValue, sortByOrder, index$1 as spec, textureLoaderRegistry, thresholdFrag, throwDestroyedError, trailVert, translatePoint, trianglesFromRect, unregisterPlugin, valIfUndefined, value, valueDefine, vecFill, vecMulCombine, version, vertexFormatType2GLType };