From 6c67cbe342b4d24e418add37a17b2ea8f1f6837d Mon Sep 17 00:00:00 2001 From: Mamadou Babaei Date: Mon, 23 Feb 2026 15:35:18 +0100 Subject: [PATCH] SGHapticsComponent docs: document individual haptics functions --- .../sghapticscomponent/README.md | 291 ++++++++++++++++++ ...nt-function-queue-force-feedback-level.png | 3 + ...t-function-queue-force-feedback-levels.png | 3 + ...t-blueprint-function-queue-vibro-level.png | 3 + ...-blueprint-function-queue-vibro-levels.png | 3 + ...blueprint-function-queue-wrist-squeeze.png | 3 + ...lueprint-function-send-custom-waveform.png | 3 + ...ponent-blueprint-function-send-haptics.png | 3 + ...ponent-blueprint-function-stop-haptics.png | 3 + ...ent-blueprint-function-stop-vibrations.png | 3 + ...rint-function-supports-custom-waveform.png | 3 + ...eprint-function-supports-wrist-squeeze.png | 3 + .../sghapticscomponent-functions1.png | 4 +- .../sghapticscomponent-functions2.png | 4 +- 14 files changed, 328 insertions(+), 4 deletions(-) create mode 100644 Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-force-feedback-level.png create mode 100644 Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-force-feedback-levels.png create mode 100644 Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-vibro-level.png create mode 100644 Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-vibro-levels.png create mode 100644 Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-wrist-squeeze.png create mode 100644 Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-send-custom-waveform.png create mode 100644 Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-send-haptics.png create mode 100644 Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-stop-haptics.png create mode 100644 Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-stop-vibrations.png create mode 100644 Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-supports-custom-waveform.png create mode 100644 Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-supports-wrist-squeeze.png diff --git a/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/README.md b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/README.md index e15c8fc8..dd4ea090 100644 --- a/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/README.md +++ b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/README.md @@ -187,3 +187,294 @@ The same set of functions are also exposed to Blueprint: ![SGHapticsComponent - Blueprint functions](sghapticscomponent-functions1.png "SGHapticsComponent - Blueprint functions") ![SGHapticsComponent - Blueprint functions](sghapticscomponent-functions2.png "SGHapticsComponent - Blueprint functions") + +## Quick Blueprint Functions Reference + +Here is a brief at-a-glance reference of all `SGHapticsComponent` Blueprint functions related to haptic feedback. + +### Stop Haptics + +Stops **all active haptic effects** currently playing on the glove. + +This includes: + +- Vibrations. +- Force-feedback (FFB). +- Wrist-squeeze. +- Any queued but unsent haptic commands. + +![SGHapticsComponent - Blueprint function: Stop Haptics](sghapticscomponent-blueprint-function-stop-haptics.png "SGHapticsComponent - Blueprint function: Stop Haptics") + +**Typical Use Cases:** + +- Resetting the glove at the end of a simulation. +- Restarting a level. +- Emergency stop logic. +- Cleaning up when disabling an actor. + +**Returns:** + +This Blueprint node does not return a value. + +### Stop Vibrations + +Stops only **vibration feedback**, without affecting: + +- Force-feedback +- Wrist-squeeze + +![SGHapticsComponent - Blueprint function: Stop Vibrations](sghapticscomponent-blueprint-function-stop-vibrations.png "SGHapticsComponent - Blueprint function: Stop Vibrations") + +**Typical Use Cases:** + +It is useful for example if you want to keep finger resistance active while stopping tactile feedback. + +**Returns:** + +This Blueprint node does not return a value. + +### Send Haptics + +Compiles all currently queued haptic commands and sends them to the glove. + +![SGHapticsComponent - Blueprint function: Send Haptics](sghapticscomponent-blueprint-function-stop-haptics.png "SGHapticsComponent - Blueprint function: Send Haptics") + +The component works using a **queue-based system**: + +1. You queue multiple commands (Force-feedback, Vibro, Wrist, etc..) +2. You call **Send Haptics**. +3. Everything is compiled into one device message. + +**Returns:** + +- `true`: Indicates message has been successfully sent to SenseCom. +- `false`: Failed to send haptics. + +### Supports Custom Waveform + +Checks whether the glove supports **custom waveform vibration** at a specific location. + +![SGHapticsComponent - Blueprint function: Supports Custom Waveform](sghapticscomponent-blueprint-function-supports-custom-waveform.png "SGHapticsComponent - Blueprint function: Supports Custom Waveform") + +**Parameters**: + +- **AtLocation:** The vibration location to test (e.g., Thumb Tip, Index Tip, Palm Index Side, etc.). + +**Returns:** + +- `true`: Custom waveform is supported. +- `false`: Not supported at this location. + +You can call this before using `Send Custom Waveform` to see if your glove model at the specified location supports vibration. + +### Send Custom Waveform + +Sends a **custom vibration waveform** to a specific haptic location. + +![SGHapticsComponent - Blueprint function: Send Custom Waveform](sghapticscomponent-blueprint-function-send-custom-waveform.png "SGHapticsComponent - Blueprint function: Send Custom Waveform") + +This function has **three overloads** in C++ and is exposed accordingly in Blueprint. + +#### 1) Send a Custom Waveform Asset + +**Parameters:** + +- **OutWaveform:** A predefined waveform asset that allows you to configure additional custom waveform parameters not available in the other two overloads, giving you more fine-grained control over the vibration’s behavior and timing. + +| Name | Unit | Range | Description | +|------------------------|-----------|--------------|-----------------------------------------------------------------------------| +| Amplitude | | 0.0 … 1.0 | Vibration intensity | +| Start Frequency | Hz | 10 … 500 | Vibration Frequency at the start of the vibration | +| End Frequency | Hz | 10 … 500 | Vibration Frequency at the end of the vibration | +| Attack Time | s | 0.0 … 1.0 | Time to reach from 0.0 to Amplitude | +| Sustain Time | s | 0.0 … 1.0 | Time for which the signal will stay at Amplitude | +| Decay Time | s | 0.0 … 1.0 | Time to reach from Amplitude down to 0.0. | +| Pause Time | s | 0.0 … 1.0 | Time between each vibration, when repeating the waveform. | +| Repeat Amount | | 1 .. 100 | How often the waveform is repeated before stopping. | +| Infinite | | True / False | If true, the glove will keep playing this waveform until a new one is played. | +| Waveform Type | EWaveType | 0 .. 5 | The shape of the waveform: Sine / Square / SawUp / SawDown / Triangle / Noise. | +| FrequencySwitchTime* | | 0.0 … 1.0 | At this position in the waveform (0.0 being start, 1.0 being the end), we start multiply the Frequency by FrequencySwitchFactor | +| FrequencySwitchFactor* | | 1.0 .. 3.0 | How much to multiply the frequency by, after FrequencySwitchTime has passed. | + +- **Location:** Where to play the waveform. + +**Returns:** + +- `true`: If command successfully sent. +- `false`: If it fails. + +#### 2) Send Amplitude + Duration + +**Parameters:** + +- **Amplitude:** Vibration strength (0.0 – 1.0). +- **Duration:** Duration in seconds. +- **Location:** Target haptic location. + +**Returns:** + +- `true`: If command successfully sent. +- `false`: If it fails. + +#### 3) Send Amplitude + Duration + Frequency + +**Parameters:** + +- **Amplitude** — Vibration strength (0.0 – 1.0). +- **Duration** — Duration in seconds. +- **Frequency** — Vibration frequency in Hz. +- **Location** — Target haptic location. + +**Returns:** + +- `true`: If command successfully sent. +- `false`: If it fails. + +### Queue Force Feedback Levels + +Queues force-feedback levels for **all fingers** at once. + +![SGHapticsComponent - Blueprint function: Queue Force Feedback Levels](sghapticscomponent-blueprint-function-queue-force-feedback-levels.png "SGHapticsComponent - Blueprint function: Queue Force Feedback Levels") + +**Parameters:** + +- **Levels01:** Array containing the Force-Feedback levels between `0.0` (no FFB) to `1.0` (full FFB); ordered from **Thumb → Index → Middle → Ring → Pinky**. + +> [!NOTE] +> Force-feedback value behavior: +> +> - `0.0` = No resistance. +> - `1.0` = Full resistance. +> - Values `< 0.0` are ignored. +> - Devices that only support on/off FFB treat any value > `0.0` as full force. + +**Returns:** + +- `true`: If queued successfully. +- `false`: If it fails. + +### Queue Force Feedback Level + +Queues force-feedback on a **particular finger** to a specific level. + +![SGHapticsComponent - Blueprint function: Queue Force Feedback Level](sghapticscomponent-blueprint-function-queue-force-feedback-level.png "SGHapticsComponent - Blueprint function: Queue Force Feedback Level") + +**Parameters:** + +- **Finger:** Index of the finger; indexed from **Thumb → Index → Middle → Ring → Pinky**. +- **Level01:** Value clamped between `0.0` (no FFB) to `1.0` (full FFB). + +> [!NOTE] +> Force-feedback value behavior: +> +> - `0.0` = No resistance. +> - `1.0` = Full resistance. +> - Values `< 0.0` are ignored. +> - Devices that only support on/off FFB treat any value > `0.0` as full force. + +**Returns:** + +- `true`: If queued successfully. +- `false`: If it fails. + +### Queue Vibro Levels + +> [!IMPORTANT] +> **Legacy Function – Use Custom Waveforms Instead** +> +> `Queue Vibro Levels` is retained for backward compatibility with older API +> releases. +> +> Internally, it delegates to `Send Custom Waveform`, which is the recommended +> method for applying vibrotactile feedback. +> +> For new projects, prefer `Send Custom Waveform`, as it provides more +> fine-grained control over amplitude, frequency, timing, and waveform shaping. + +Queues continuous vibrotactile levels for **all fingers** at once to a set amplitude. + +![SGHapticsComponent - Blueprint function: Queue Vibro Levels](sghapticscomponent-blueprint-function-queue-vibro-levels.png "SGHapticsComponent - Blueprint function: Queue Vibro Levels") + +**Parameters:** + +- **Levels01:** Array containing the vibro levels between `0.0` (no vibration) to `1.0` (full vibration); ordered from **Thumb → Index → Middle → Ring → Pinky**. + +> [!NOTE] +> Force-feedback value behavior: +> +> - `0.0` = No vibration. +> - `1.0` = Full vibration. +> - Values `< 0.0` are ignored. + +**Returns:** + +- `true`: If queued successfully. +- `false`: If it fails. + +### Queue Vibro Level + +> [!IMPORTANT] +> **Legacy Function – Use Custom Waveforms Instead** +> +> `Queue Vibro Level` is retained for backward compatibility with older API +> releases. +> +> Internally, it delegates to `Send Custom Waveform`, which is the recommended +> method for applying vibrotactile feedback. +> +> For new projects, prefer `Send Custom Waveform`, as it provides more +> fine-grained control over amplitude, frequency, timing, and waveform shaping. + +Queues continuous vibration at a **specific location** to a set amplitude. + +![SGHapticsComponent - Blueprint function: Queue Vibro Level](sghapticscomponent-blueprint-function-queue-vibro-level.png "SGHapticsComponent - Blueprint function: Queue Vibro Level") + +**Parameters:** + +- **Location:** Target location to apply vibration. +- **Level01 (float):** Value clamped between `0.0` (no vibration) to `1.0` (full vibration). + +> [!NOTE] +> Force-feedback value behavior: +> +> - `0.0` = No vibration. +> - `1.0` = Full vibration. +> - Values `< 0.0` are ignored. + +**Returns:** + +- `true`: If queued successfully. +- `false`: If it fails. + +### Supports Wrist Squeeze + +Checks if the connected glove supports **active wrist-squeeze feedback**. + +![SGHapticsComponent - Blueprint function: Supports Wrist Squeeze](sghapticscomponent-blueprint-function-supports-wrist-squeeze.png "SGHapticsComponent - Blueprint function: Supports Wrist Squeeze") + +**Returns:** + +- `true`: If wrist-squeeze is supported. +- `false`: If it's not supported. + +### Queue Wrist Squeeze + +Queues a wrist-squeeze feedback at the desired level, and optionally if chosen, sends it right away. + +![SGHapticsComponent - Blueprint function: Queue Wrist Squeeze](sghapticscomponent-blueprint-function-queue-wrist-squeeze.png "SGHapticsComponent - Blueprint function: Queue Wrist Squeeze") + +**Parameters:** + +- **SqueezeLevel01:** Value clamped between `0.0` (no squeeze) to `1.0` (full squeeze). +- **bSendImmediate** If set to `true`, immediately sends the command, otherwise only queues until `Send Haptics` function is called. + +> [!NOTE] +> Wrist-squeeze value behavior: +> +> - `0.0` = No squeeze. +> - `1.0` = Full squeeze. + +**Returns:** + +- `true`: If queued successfully. +- `false`: If it fails. diff --git a/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-force-feedback-level.png b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-force-feedback-level.png new file mode 100644 index 00000000..39dcbf97 --- /dev/null +++ b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-force-feedback-level.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:065e1a49611acbea2255a9483d56113c5d920d7bf421e9e242c7e611a732283b +size 49746 diff --git a/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-force-feedback-levels.png b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-force-feedback-levels.png new file mode 100644 index 00000000..987b700f --- /dev/null +++ b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-force-feedback-levels.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf0c8a0ffba615e0ec20146e1fdcb312c22191b30799cb3e06098a8de3eebdda +size 41716 diff --git a/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-vibro-level.png b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-vibro-level.png new file mode 100644 index 00000000..9b448cd0 --- /dev/null +++ b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-vibro-level.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f0f14471a96c11b8982b73ffe6138e204f2f7685875a74f737ed221663139b2 +size 49732 diff --git a/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-vibro-levels.png b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-vibro-levels.png new file mode 100644 index 00000000..c7023c42 --- /dev/null +++ b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-vibro-levels.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eee40220c27f2a8a24aff375487e5651254e2aec7221eff35569289e48dd549f +size 42853 diff --git a/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-wrist-squeeze.png b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-wrist-squeeze.png new file mode 100644 index 00000000..3d073807 --- /dev/null +++ b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-queue-wrist-squeeze.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e62f2b5fce2c4a1217d9efe32491aa4c98190d572a5528cfb274c400917c51f +size 48315 diff --git a/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-send-custom-waveform.png b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-send-custom-waveform.png new file mode 100644 index 00000000..1c48315d --- /dev/null +++ b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-send-custom-waveform.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e553f1c6dc7fc6314981871a4e565aab409e3669fab341f84af13ca828db73a5 +size 225378 diff --git a/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-send-haptics.png b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-send-haptics.png new file mode 100644 index 00000000..b624f204 --- /dev/null +++ b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-send-haptics.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0791c83b919369f619a45d5c7838e7e9d632f17dd1bfb10f81a5463c89b57fca +size 39312 diff --git a/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-stop-haptics.png b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-stop-haptics.png new file mode 100644 index 00000000..300e121c --- /dev/null +++ b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-stop-haptics.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8816581a10c9a392611cedc47581fd01dd732c7d86ca0c7a38a7322d42fd689 +size 32808 diff --git a/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-stop-vibrations.png b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-stop-vibrations.png new file mode 100644 index 00000000..f1740236 --- /dev/null +++ b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-stop-vibrations.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b022b34b52e6999b390e1413ccb73f65bc6127f8b613db28c149e1b7adba345 +size 35617 diff --git a/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-supports-custom-waveform.png b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-supports-custom-waveform.png new file mode 100644 index 00000000..40409eaf --- /dev/null +++ b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-supports-custom-waveform.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99cdc9068f8ef2536426110efdea997e3f93ed3cee977ad27bf321caea1226be +size 62353 diff --git a/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-supports-wrist-squeeze.png b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-supports-wrist-squeeze.png new file mode 100644 index 00000000..81d2b2c8 --- /dev/null +++ b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-blueprint-function-supports-wrist-squeeze.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc117be052ccdfc2764fc138d7c56b8f2e96bf13855f2bc2d64218fcbaef0e30 +size 39509 diff --git a/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-functions1.png b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-functions1.png index cb2b1047..3217949a 100644 --- a/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-functions1.png +++ b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-functions1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:715e6b8c70a97dc42d8cabcfe43f13621be9948dc3395091a21037062f895533 -size 71401 +oid sha256:8dcd95261cf3a7da77eef38f73dbf951c4047104c5a224f46759cd5c5395a6f7 +size 88373 diff --git a/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-functions2.png b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-functions2.png index e7b74149..8947a190 100644 --- a/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-functions2.png +++ b/Handbook/src/advanced-topics/roll-your-own-hand-manipulation-system/sghapticscomponent/sghapticscomponent-functions2.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9f65db78b24403a74ed6fb90cb89db204f7ac6f5e057b662ba53c354914e3295 -size 73758 +oid sha256:3bcc943b45adaf02e70afa635e55044d299df9960287c7fef5d6deb80e15dc58 +size 90130