Skip to content

Commit

Permalink
クラス図を更新
Browse files Browse the repository at this point in the history
  • Loading branch information
dykarohora committed Nov 24, 2017
1 parent 292bd11 commit 6ad99ea
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 57 deletions.
4 changes: 1 addition & 3 deletions Assets/Scripts/Sizer/Impl/PolygonSizer.cs
@@ -1,7 +1,5 @@
using HoloMeasurement.Figure;
using HoloMeasurement.Figure.Impl;
using HoloMeasurement.Figure.Impl;
using HoloMeasurement.UserOperation;
using System;
using System.Collections.Generic;
using UniRx;
using UnityEngine;
Expand Down
103 changes: 53 additions & 50 deletions ClassDiagram.wsd
Expand Up @@ -3,48 +3,33 @@
namespace Figure {
abstract class BaseFigure {
}

namespace Impl {
class Line {
+void Intialize(Point start, Point end, GameObject line)
}
class Polygon {
+void Initialize(IList<Point> pointList, IList<Point> lineList)
}
class Solid {
}
Line --u|> Figure.BaseFigure
Line ..u> Figure.Point
Polygon --u|> Figure.BaseFigure
Polygon ..u> Figure.Point
Solid --u|> Figure.BaseFigure

Line -le-|> Figure.BaseFigure
Line .le.> Figure.Point

Polygon -le-|> Figure.BaseFigure
Polygon .le.> Figure.Point

Line -[hidden]do- Polygon
}

class Point {
+IReadOnlyReactiveProperty<Vector3> Position
+void SetPosition(Vector3 position)
}

Point --u|> UserOperation.IManipulationHandler
Point --left* BaseFigure
BaseFigure --u|> UserOperation.IDeletable
}
Point -do-|> UserOperation.IManipulationHandler
Point -ri-* BaseFigure

namespace AppManager {
class AppStateManager {
+AppStateReactiveProperty CurrentState
}
class SizerManager {
+IPointSettable Sizer
}
enum AppState {
Intialize
Line
Polygon
Solid
}
AppStateManager --u> AppState

SizerManager ..r> AppStateManager
BaseFigure -do-|> UserOperation.IDeletable
}

namespace Sizer {
Expand All @@ -59,21 +44,43 @@ namespace Sizer {
}
class PolygonSizer {
}
class SolidSizer {
}
LineSizer --u|> Sizer.BaseSizer
PolygonSizer --u|> Sizer.BaseSizer
SolidSizer --u|> Sizer.BaseSizer

LineSizer --> Figure.Impl.Line
PolygonSizer --> Figure.Impl.Polygon
PolygonSizer --r|> UserOperation.IPolygonClosable
LineSizer -ri-|> Sizer.BaseSizer
PolygonSizer -ri-|> Sizer.BaseSizer

LineSizer -[hidden]d- PolygonSizer

LineSizer -ri-> Figure.Impl.Line
PolygonSizer -ri-> Figure.Impl.Polygon
PolygonSizer -do-|> UserOperation.IPolygonClosable
}

BaseSizer --r|> UserOperation.IPointSettable
BaseSizer ..u> AppManager.AppStateManager
BaseSizer --|> UserOperation.IPointSettable
BaseSizer ..> AppManager.AppStateManager

BaseSizer -[hidden]r- Figure.BaseFigure
}

namespace AppManager {
enum AppState {
Intialize
Line
Polygon
Solid
}

class AppStateManager {
+AppStateReactiveProperty CurrentState
}
class SizerManager {
+IPointSettable Sizer
}

AppStateManager --u> AppState
SizerManager ..r> AppStateManager
}


namespace UserOperation {
class VoiceCommandExecutor {
}
Expand All @@ -95,19 +102,13 @@ namespace UserOperation {
interface IManipulationHandler<<MRTK>>{
}

VoiceCommandExecutor --d> IDeletable
VoiceCommandExecutor --l> IPolygonClosable
PointSetExecutor --d> IPointSettable
PointSetExecutor --l|> IInputClickHandler

VoiceCommandExecutor ..u> AppManager.SizerManager
PointSetExecutor ..u> AppManager.SizerManager
VoiceCommandExecutor -up-> IDeletable
VoiceCommandExecutor -up-> IPolygonClosable
PointSetExecutor -up-> IPointSettable
PointSetExecutor --|> IInputClickHandler

IInputClickHandler -[hidden]d- IManipulationHandler
IPolygonClosable -[hidden]r- IDeletable

PointSetExecutor -[hidden]r- IPolygonClosable

VoiceCommandExecutor .up.> AppManager.SizerManager
PointSetExecutor .up.> AppManager.SizerManager

namespace Menu {
class MenuPresenter {
Expand All @@ -116,7 +117,9 @@ namespace UserOperation {
}

MenuPresenter --> MenuButton
MenuPresenter --u> AppManager.AppStateManager
MenuPresenter -up-> AppManager.AppStateManager

MenuPresenter -[hidden]ri- UserOperation.IPointSettable
}
}

Expand Down
5 changes: 1 addition & 4 deletions requirement.md
@@ -1,4 +1,4 @@
# 主要兼
# 仕様設計
* 基本は設置した2ポイント間の距離を測る
* Lineモード、Geometoryモード、Solidモードの三種類のモードが存在する
* メニューを用意し、モードに応じたボタンを用意する
Expand All @@ -22,6 +22,3 @@
* または3点以上配置しているときにCloseと発話すると現状配置している点から背面が生成される

## Solidモード
* 平面生成まではPlaneモードと同様
* 平面内をマニピュレーションすると、平面の法線方向に平面のコピーが生成される
* マニピュレーション完了時に体積が表示される

0 comments on commit 6ad99ea

Please sign in to comment.