Ver Fonte

mol-state: wip

David Sehnal há 6 anos atrás
pai
commit
56d0e15e60

+ 0 - 0
src/mol-state/context/event.ts → src/mol-state/event/dispatcher.ts


+ 9 - 0
src/mol-state/event/event.ts

@@ -0,0 +1,9 @@
+/**
+ * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
+ *
+ * @author David Sehnal <david.sehnal@gmail.com>
+ */
+
+export interface EventDispatcher {
+    // TODO
+}

+ 20 - 5
src/mol-state/state.ts

@@ -7,9 +7,24 @@
 import { StateObject } from './object';
 import { TransformTree } from './tree/tree';
 import { Transform } from './tree/transform';
+import { Map as ImmutableMap } from 'immutable';
+import { StateContext } from './context/context';
 
-export interface State {
-    tree: TransformTree,
-    objects: Map<Transform.InstanceId, StateObject>,
-    history: TransformTree[]
-}
+export interface State<ObjectProps = unknown> {
+    definition: State.Definition<ObjectProps>,
+    objects: Map<Transform.InstanceId, StateObject>
+}
+
+export namespace State {
+    export type ObjectProps<P> = ImmutableMap<Transform.InstanceId, P>
+
+    export interface Definition<P = unknown> {
+        tree: TransformTree,
+        // things like object visibility
+        props: ObjectProps<P>
+    }
+
+    export async function update<P>(context: StateContext, old: State<P>, tree: Definition<P>, props?: ObjectProps<P>): Promise<State<P>> {
+        throw 'nyi';
+    }
+}

+ 7 - 0
src/mol-state/transformer/controller.ts

@@ -0,0 +1,7 @@
+/**
+ * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
+ *
+ * @author David Sehnal <david.sehnal@gmail.com>
+ */
+
+// TODO: relactive transformer params controller

+ 1 - 1
src/mol-state/tree/context.ts

@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { EventDispatcher } from '../context/event';
+import { EventDispatcher } from '../event/event';
 
 export interface TransformContext {
     /** An event dispatcher for executing child tasks. */

+ 3 - 1
src/mol-state/tree/transation.ts

@@ -4,4 +4,6 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-// TODO
+export interface TreeTransaction {
+    
+}