Skip to content

Commit 48114d2

Browse files
updated requirements sections
1 parent 2e1d05c commit 48114d2

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

Feature_Contribution_Process.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,17 @@ Adding features to the Mixed Reality Toolkit is split up into a few iteration st
44

55
# Feature Requirements
66

7-
Features must have the following:
7+
Most features can be generally broken down into 3 main parts:
8+
9+
1. [The Feature Manager](#manager-implementation-requirements)
10+
2. [The Event Data](#event-data-implementation-requirements) (Optional)
11+
3. [The Feature Handler](#handler-implementation-requirements) (Optional)
12+
13+
## Manager Implementation Requirements
814

915
* Assembly Definitions for code outside of the `MixedRealityToolkit/_Core` folder.
1016
* This ensures features are self-contained and have no dependencies to other features.
17+
* This only applies to `MixedRealityToolkit` folder.
1118
* Be defined using an interface found in `MixedRealityToolkit/_Core/definitions/<FeatureName>System`.
1219
* A feature's concrete manager implementation should inherit directly from `BaseManager` or `MixedRealityEventManager` if they will raise events.
1320
* A feature's concrete manager implementation should setup and verify scene is ready for that system to use in `Initialize`.
@@ -20,6 +27,21 @@ Features must have the following:
2027
* A default configuration profile located in `MixedRealityToolkit-SDK/Profiles` and be assigned in the default configuration profile for the Mixed Reality Manager
2128
* If this feature is **not** a core feature, then it must be registered using the component configuration profile and implement `IMixedRealityComponent`.
2229
* Have a default implementation located in `MixedRealityToolkit-SDK/Features/<FeatureName>`
30+
* Events that can be raised with the system should be defined in the interface, with all the required parameters for initializing the event data.
31+
32+
## Event Data Implementation Requirements
33+
The EventData defines exactly what data the handler is expected to receive from the event.
34+
35+
* All EventDatum for the feature should be defined in `MixedRealityToolkit/_Core/EventDatum/<FeatureName>`.
36+
* All new Event Data classes should inherit from `GenericBaseEventData`
37+
38+
## Handler Implementation Requirements
39+
40+
The HandLer Interface defines each event a component should be listening for and the types of data passed. End users will implement the interface to execute logic based on the event data received.
41+
42+
* Handler interfaces should be defined in `MixedRealityToolkit/_Core/Interfaces/<FeatureName>System/Handlers`.
43+
* Handler interfaces should inherit from `UnityEngine.EventSystems.IEventSystemHandler`
44+
* Opt-in by default. To receive events from the system, the handler will need to register itself with the system to receive those events.
2345

2446
# Process
2547

0 commit comments

Comments
 (0)