Friday, 16 November 2018

Materialise Project

Project Phase

Project Requirement

In the simplest terms, our group project is to create a 3D application that can teach children an application of 3D software.

User case

Our use case is revolve around children therefore few of the point become our requirement:
  • Simple
  • Can be integrated into school syllabus
  • Intuitive
  • Educational, entertaining and zero-mess experience
  • Appealing
  • Children can partake in simple 3D modelling and early exposure to 3D Printing

Geometry


At our current MVP, 1 Part contain more than 1 Surface. The Surface may contain more than 1 triangle, and on each Surface and Triangle contain their own vertex. All the Vertex will be store on the Point Cloud.

UIObject

Created using an adapter pattern:
  • Created using interfaces and supports polymorphic behavior
  • Has a 1-1 relationship with Geometry and contains additional components with accessible interfaces.
Provides extensibility for use in presenter logic.
Interface
Provides Access to:
ILabelObject
LabelComponent&
ISelectableObject
SelectableComponent&
ITransformableObject
Coordinate_System&,void* p_gizmo
IColourObject
ColourComponent&
IRenderableObject
RenderableComponent&
IMovableVertex
Coordinate_System, void* p_gizmo, Vertex& 

Component

Component
Responsible for:
LabelComponent
Name of object
SelectableComponent
Selection
ColourComponent
(Surface) Colour
RenderableComponent
Values provided to rendere
Coordinate_System
Transformation

List of UIObjects


  • UIPart : ILabelObject
    • Is an ILabelObject
    • Contains a Geometry Part
    • Contains a list of UISurface
    • Can add, remove and provide access to UISurface contained within itself
  • UISurface : ILabelObject, ISelectableObject, ITransformableObject, IColourObject
    • Is ILabelObject, ISelectableObject, ITransformableObject, IColourObject
    • Contains reference to a Geometry Surface
    • Contains a list of UITriangle and a list of UIVertex
    • Can add, remove and provide access to member UITriangles
    • Provide access to member UIVertex
  • UITriangle : IRenderableObject
    • Is an IRenderableObject
    • Contains reference to a Geometry Triangle
  • UIVertex : ISelectableObject, IMovableVertex
    • Is ISelectableObject, IMovableVertex
    • Contains a reference to Geometry Vertex

Mat Academy Experiences

  • Team bonding – Building bridges, communications skills
  • Learning new Tech
  • Adapting to unforeseen circumstances
  • Getting out of comfort zones and facing new challenges
  • Gaining industrial exposure

Final Product

Conclusion

At the end of the program we mange to properly display an 3D object and their properties. The application provided 3 distinguish shape (Triangle,square,polygon) for use to play around. The database able display a proper information such as Surface owner, coordination and color. However since we short in time, we unable to optimizing certain aspect example clipping mechanism for triangles. But we sure, if we allow for more development time we able to complete it.