CAD System Web Site - Computer Aided Design Software
i NET1000.COM
by Makoto Honda
Last Update: 2012-January-19                                                 Update Info     Site Index     Licensing     Copyright Notice     Privacy Policy     Contact Us  




Screen Shots

                                               Return to   C# / WPF Implementation       

The latest screen shots are shown below, illustrating new features implemented.

    List of "Done" Items   -- Progress Report                                         

  2012-Jan-19   FM elemModify modifies ET_BOX and ET_BOX_WIRE also.
  2012-Jan-16   FM elemModify now modifies an elbow - increasing the bend-radius on select.
                            A new On_draw flag = 8 ("geometric" modify) introduced - On_Draw deletes first & creates a render object...
  2012-Jan-11   Desktop icon clean-up...  Lower-left text display: view projection
  2012-Jan-08   FM Mirror working.
  2012-Jan-06   Long-forgotten CFD restored after new rendering scheme.
  2012-Jan-06   Multi-Wire enabled elem now clones itself (bCopy=true) in FM Rotate / FM Translate.
  2012-Jan-05   Started thinking about GPU... my Sony Vaio has ATI... WPF/HLSL....
  2012-Jan-04   VS2010 C# Solution now completely self-contained with 3DTools project integrated in it.
  2012-Jan-02   FM Hide / Show All -  working ok for single/multi wire and single shade (fix: BackMaterial = null was missing)
  2012-Jan-02   FM must decide WPF_flag = 1 or 3 based on COPY mode
  2012-Jan-02   Elem cloning done... FM Rotate / FM Translate / single+multi wire and shade
  2011-Dec-30   Inner surface also rendered -  geo.BackMaterial = mat;
  2011-Dec-29   Mouse Wheel support for Viewport Zooming done ---  MouseWheelEventHandler in CView.
  2011-Dec-29   FM elem translate done, more or less.
  2011-Dec-28   WireBox can rotate now.
  2011-Dec-28   No longer applying elem's matrix to vertices (ApplyMatrixToVec2/3) for rendering. Use model.Transform to position elem.
  2011-Dec-24   Double-click event for Multi-line creation - NoMoreAdditionalMouseLeftButtonDown().
  2011-Dec-21   SetRenderFlag() - to set nWire+nShade for Render()
  2011-Dec-17   Elem rendering capability : m_shade & m_wire // 0=none, 1=single, 2=multi, 3=both
  2011-Dec-17   Document-wide display mode: Data:: m_displayMode; // 1 = wire, 2= shade, 3 = both
  2011-Dec-17   New low-level renderer: Render (pE, pV)
  2011-Dec-16   Four rendering models introduced: SingleWire, MultiWire, SingleShade, MultiShade (Dictionary) for Hit Test granularity.
  2011-Dec-13   OnDraw_WPF loop changed - pE.CreateGeometry called only once for multi-vpts
  2011-Dec-13   For FM Hide, setting brush.Opacity = 0.0 is not good; it will hide everything behind with background color (like ghost).
                             Use geo.Material=null. Must save Material (m_material)
  2011-Dec-03   Hit test for wire object OK - ScreenSpaceLines3D : ModelVisual3D
  2011-Dec-02   Circle
  2011-Nov-28   Viewport free rotation - If outside of circle, it becomes "perpendicular" screen rotation. This did not exist in C++ version.
  2011-Nov-27   MultiVpts now pre-sets different view for newly added vpts
  2011-Nov-27   FM Hide - done. ShowAll - done too. (using OnDraw_flag=4).
  2011-Nov-27   Perspective view angle shown on the vpt on Perspective change (Use PageDown to zoom)
  2011-Nov-27   Element color now uses WPF Color class
  2011-Nov-27   m_color/m_visible/m_highlight now set as Material property in CreateGeometryModel3D() for rendering
  2011-Nov-24   FM Rotate/FM Delete done.
  2011-Nov-23   DrawElemOneVpt / ModifyElemOneVpt both calls CreateGeometryModel3D() for rendering
  2011-Nov-22   m_elemRenderList now used for create / modify / delete
  2011-Nov-22   OnDraw_WPF() organization - new flags 0,1,2,3,4,5,6,7
  2011-Nov-22   model.m_m_pElem / pElem.m_pModelDictionary(vpt, model)
  2011-Nov-22   Basic scenarios - CREATE / MODIFY / DELETE -  "Data Structure" side & "Rendering" side
  2011-Nov-20   Hit Test now supported...
  2011-Sep-12   SW Camarillo 
  2011-July-21   Bosch/Vetronix - Santa Barbara 
  2011-July-06   For CFD Insert element - TempSurface created 
  2011-June-26   Vpt background color toggle
  2011-June-26   Current plane / Axis - now show/noshow by icons (all vpts / one vpt)
  2011-June-26   FM Cfd - OutputDomainFile / OutputGridFile -- "CommonFileDialog" - OK
  2011-June-26-28   FM Cfd - completed OK - Insert OK - TempPoint is done by short lines
  2011-June-23   Key coord mode /R/C/S/  toggle - desktop (lower right)
  2011-June-20   FM Templine support / ClearTempLine() / ClearTemplineCurPlane()
  2011-June-20   FM BoxWire - wirw element support...
  2011-June-20   Current plane - instant update display
  2011-June-15   INDICATE Ortho - Taller than Wide --- KO
  2011-June-15   Keyin support - R/C/S , Visual Cue , Feedback message
  2011-June-11   GFM Rotate / Delete / Translate --- Copy/Move -- OK 
  2011-June-06   GetActiveView() 
  2011-June-06   Pan / Zoom by Arrows / PageDow/Up keys
  2011-June-06   Tile / Cascade vpts done
  2011-June-06   Current plane - Xy / YZ / XZ can be set
  2011-June-06   FM Delete by Indicate
  2011-June-06   Templine_WPF - can erase now
  2011-June-06   Fixed ScreenSpaceLines3D abend bug
  2011-June-06   FM Rectangle
  2011-June-06   EventForESC / Space / Tab...
  2011-June-04   Message generation mechanism using delegate
  2011-May-20   C# difference of "class" and "struct" - CMat4x4 --> need to create struct CMat4x4(1)
  2011-May-20   FM mode and Prompt message mechanism done
  2011-May-15   3D line introduced using ScreenSpaceLines3D
  2011-May-11   WPF Invalidate rendering scheme
  2011-April-07   Back from Japan
  2011-March-29   Window - New Window (Vpt)
  2011-March-27   CElemBox tested
  2011-March-24   Initial OnDraw_WPF paradigm created
  2011-March-18   C# project successfully built for the first time (no functionality yet)
  2011-March-10   C++ to C# conversion project started...
  2011-March-01   Last Inhance.


    Screen Shots / Showing Some Progress....       Moving Right Along!                                            

* An explosion of the elbow universe after modify-rotate-copy...

* Multi-Wire objects now successfully cloned / FM Translate - Rotate

* Element cloning done... FM Rotate / FM Translate


* Hit test for both shaded & wire objects
* Rotation of object / Deletion of object / Show-Noshow

* Temporary surface display now supported
* Showing an inserted element in a CFD domain

* Viewport background color support
* Current plane and global axes now shown/hidden
* Faking temporary point display by short lines in CFD grid display.
* CFD gridding functionality fully restored from VC++. The devil was hiding in the reference/value distinction in C#.

* Porting CFD grid generation commands into this C#/WPF project.
* Took some time to straighten out arrays and pointers in C++ for this grid generation algorithm.

* Connecting some icons... These are just my quick-and-dirty icons;
I used MS Paint to edit these png files (30x30 pix).
* Note the grouping of icons - based on consistent color/pattern schemes;
This way, we can even forgo "separators".
* Getting closer and closer to my original VC++ version - or better - but still some issues....

* Geometric elements are now under :
Viewport3D.Children - ModelVisual3D.Content - Model3DGroup.Children - GeometryModel3D - MeshGeometry3D
* So, geometry can be deleted (Model3DGroup.Children.Clear) w/o wiping out the entire Viewport3D

* Temporary elem display (visual cue) scheme formalized.
* Coordinate key-ins produces visual cues (rect/cylindrical/spherical) - no circle yet

* Wireframe has been incorporated in the general rendering scheme.
* FM Test command CreateBoxWire added to test the process.
* Clear key pad in case of an exception (in finally block)


* Indicate of a 3D point is now completely fixed.
The problem was a peculiar behavior of WPF3D camera (ortho only) for windows taller than wide.
* For key-ins, C# structured exception handling was introduced.
* Clear temp visual cues on RMouseUp
* View property now shown on lower-right of view (replace dialog box?)
* GetActiveViewport fixed

* Key in coordinate support
* All coordinate modes (rectangular/cylindrical/spherical) operational
* Key in value echo
* Free view rotation radius good for any size windows


* Element delete supported
* Element rotate supported
* Element transformation supported (Translate/Rotate/Scale/Mirror)
* Element Copy/Move mode supported

* My trademark-elbow came out, mushrooming.

* Viewport facility being enhanced
* Arrow keys (up/down/left/right) supported
* So are modifier keys (shift/ctrl/alt), End, Home, Delete, ...
* Current Plane can be set by XY/XZ/ZY planes
*Windows Tile/Cascade done
* Pan/Zoom by Arrow keys/Page keys

* Indicate done
(one glitch - ortho projection when window is taller than wide!)
* Dialog box mechanism done (not cosmetics)
*EventForESC, SPACE, TAB, ARROWS,... done
*FM create Rectangle
* Fixed ScreenSpace3DLines crash
* TempLine_WPF / TempLineNew_WPF can erase temp lines now

* Preset views supported
* FM mode message
* FM prompt messsage
* FM system feedback message

* Moving right along.....  Desktop done
* All utility classes changed from "class" to "struct"


*  3D Line was introduced... showing axes and current plane

*  I am struggling to restore the fundamental CAD capability in this WPF version of my CAD system.
I am restoring the original Image Invalidation (rendering) scheme in this C#/WPF CAD...




CAD System Web Site - Computer Aided Design Software:  Copyright 2010-2013 Makoto Honda. All Rights Reserved.  



Copyright 2010-2013 Makoto Honda. All Rights Reserved.