Revision: 55784
          http://sourceforge.net/p/brlcad/code/55784
Author:   brlcad
Date:     2013-06-14 19:23:23 +0000 (Fri, 14 Jun 2013)
Log Message:
-----------
there's a lot of them, so separate proposed new object types into their own 
section

Modified Paths:
--------------
    brlcad/trunk/TODO

Modified: brlcad/trunk/TODO
===================================================================
--- brlcad/trunk/TODO   2013-06-14 19:17:37 UTC (rev 55783)
+++ brlcad/trunk/TODO   2013-06-14 19:23:23 UTC (rev 55784)
@@ -324,97 +324,6 @@
 
 * implement new makesegs for tie
 
-* annotation primitive.  specifically a means to create an object in
-  the database that can optionally be associated with another object
-  and/or position(s) that a label refers to.  there are various styles
-  such as a single line from a point to text and two lines (e.g.,
-  indicating measurement) to text.
-
-  the object should allow for different line styles including having
-  no lines.  there should also be support for view-fixed or
-  view-independent annotation placement (which requires a change to
-  plot()'s and possibly prep()'s signature).  it would also be useful
-  to allow an optional _annotation_ "thickness" so that the
-  annotations can represent physical geometry (so they raytrace).
-
-  the concept is nearly equivalent to a combined sketch+extrude object
-  but with options specific to annotations.  the underlying export
-  form should be fully generalized as much as possible with a
-  higher-level "in" command constraining available options into a
-  user-friendly form.  a new "annotate" command will similarly be
-  needed to support modification of existing annotations (as well as
-  creation ala the 'in' command).  see the web for tons of examples.
-
-  References:
-  http://en.wikipedia.org/wiki/Geometric_dimensioning_and_tolerancing
-  ASME Y14.5 2009
-  http://www.draftingzone.com/shoppingzone/6-1.pdf
-  
http://www.wikistep.org/index.php/Recommended_Practices_for_the_Representation_of_GD%26T
-  
http://www.wikistep.org/index.php/Recommended_Practices_for_the_Presentation_of_Dimensions,_Dimensional_and_Geometric_Tolerances
-  
http://www.wikistep.org/index.php/Associative_Text_in_3D_recommended_practices
-  
http://www.wikistep.org/index.php/Model_viewing,_basic_drawing_structure_and_dimensions_recommended_practices
-  http://www.iigdt.com/Products/Images/0f390980.jpg
-  src/other/openNURBS/opennurbs_annotation*
-
-  Types of annotations:
-       text:                   text.
-                                                  text --,
-       leader:                 text ---->.                \
-                                     .            .        \           .       
 .         .  .
-       linear dimension:             |            |         .          |       
 |         |  |
-                           .         |<-- text -->|                --->|  text 
 |<--   -->|  |<---- text
-       angular dimension:   \  text
-                             \_____.
-
-  Annotation placement:
-       xyz position:             (1.0, 3.5, 2.1)
-       named reference(s):        hull.r
-       above/below/left/right:    below
-       offset:                    33.4
-               (e.g., "at 1.0,3.5,2.1" or "below hull.r offset 33.4" or "at 
hull.r", etc.)
-
-  Text:
-       user-defined string:     my awesome component -----> .
-
-       named/point reference:        hull.r1 -----> .
-                                                 .               .
-       automatic dimension (two points):         |_______________|
-                                  .        .           5.4 mm
-       custom dimension label:    |<------>|<--.
-                                                \ Length of hull.r1: 5.4mm
-
-             (custom label specified via format specifier: "Length of %target: 
%size")
-
-  Text properties:
-       font name
-       font size (height)
-       font style: bold/italic/regular
-       font color
-       justification: left, center, right, bottom, middle, top  (combinable 
options, e.g., "top left")
-       placement: default, above, below, inline, interior, exterior
-
-  Line properties:
-       head style (point o-, arrow_to >-, arrow_from, <-, square #-)
-       tail style (point o-, arrow_to >-, arrow_from, <-, square #-)
-       line weight (thickness)                    .___.                     
target        .---- text
-       2d points:               text  ._____.     |    \                    .  
   .      /
-                                            \    |     .---> target        |   
  |     /
-                                             .___.                      -->|   
  |<---.
-  Symbol type:
-       degree:   (superscript circle)
-       radius:   ('R', e.g., 'R10.5')
-       diameter: (circle with slash, null symbol)
-       ... several others
-       http://www.tec-ease.com/gdt-terms.php
-
-  Annotation properties:
-       scale: fixed size or proportional to view
-       alignment: to datum (plane or axis) or to view
-       draw bounding plane
-       draw target axes at uv offset position
-       draw feature control frame  (characteristic tolerances in symbolic 
form: www.draftingzone.com/shoppingzone/6-1.pdf)
-       3d thickness
-
 * upgrade source repository back-end to the latest SVN 1.5 so we can
   benefit from proper merge tracking.
 
@@ -445,18 +354,6 @@
 
 * migrate / update screengrab command in libged (libfb/libdm dep)
 
-* offset surfaces.  provide feature edit operation to create a solid
-  "level set" style object so you can represent degraded geometry
-  states (e.g., damage around a hole in a plate of metal might be
-  represented by the toroidal intersection with a cylinder some radius
-  larger than the hole, providing a separate region that can have
-  different material properties).
-
-  geometrically, this is simply a means to separate a given object
-  into multiple objects without changing the cumulative volume.  a
-  linear offset from a given surface or set of surfaces is usually
-  desired.
-
 * provide libdm mechanism for drawing spline curves (to help visualize
   flight paths, show object trajectories, etc.).
 
@@ -517,18 +414,6 @@
   annotations where we can leverage layout components and scalable
   vector graphics.
 
-* Cache objects.  These are proper non-geometric geometry database
-  objects intended to store binary results that have a dependency on
-  other object(s).  A named hash (e.g. md5) is recorded for each
-  dependent object along with the computed results.
-
-  Three potential candidates for leveraging cache objects are 1) prep
-  objects containing the final prepped state of a given object
-  hierarchy (particularly useful for BoT and BREP geometry), 2)
-  raytrace objects containing the intersection results for a given
-  view (i.e., a grid of primary rays), and 3) rtgl point samples
-  (which is a variant of 2 but potentially view independent).
-
 * investigate OpenEXR (BSD licensed HDE image format)
 
 * fix archer/libdm labels/axes to not use pointer printing
@@ -631,24 +516,6 @@
   and won't use the currently highlighted solid.  undoubtedly related
   to libged refactoring.  this is related to sf request 2954409.
 
-* alias objects.  this is an object handle in a geometry database that
-  refers to another geometry database object.  in effect, it
-  encapsulates the idea of a symbolic reference for database objects.
-
-  alias objects should be very lightweight, corresponding to basically
-  a simple named reference to another object.  this allows for
-  geometry objects to have multiple names, all referencing a given
-  primary name.  whenever an alias is referenced, it returns the
-  object pointed to instead of the alias object itself (this includes
-  the rt_db_internal()).  this prevents the creation of cyclic
-  references.
-
-  this directly supports geometry importers that contain object name
-  mappings (e.g., part numbers to engineering names) as well as
-  simply supporting multiple names per object that one might want to
-  persist.  there is an issue of whether aliases show as top-level
-  objects or even display by default without a listing option.
-
 * a "batch" command for libged to apply a given command template to
   all lines in a given input text file.  could be very similar to exec
   but instead of inspecting the current .g, it walks lines in file(s).
@@ -819,54 +686,9 @@
   least exist and maybe even try to ensure they will run with null
   arguments without crashing.
 
-* 3D plot objects for v5 geometry files.  very closely related to
-  other ideas about having 3d wireframe objects, but these would
-  probably be non-geometric in nature.  basically the plot3 files that
-  are stored out to disk being stored as objects in the database with
-  support for the overlay command to import, export, display them.
-
-  minimally should probably support the basic drafting elements
-  (predominantly from collada, dxf, iges, and step specifications):
-
-       point := x, y, z
-       line := start point, end point
-       polyline := various (closed, open, paired, modified, etc.)
-       circle := center point, radius
-       ellipse := center point, major radius, minor radius
-       hyperbola := center point, major radius, minor radius
-       parabola := center point, focal length
-       arc := center point, radius, start angle, end angle
-       spline := degree, control points, knot values
-       text := string, insertion point, size, style, alignment
-
 * make _plot() callbacks fill in plot objects instead of returning
   line segments.
 
-* image objects (tbd objects) for v5 geometry files
-
-* material objects (non-geometric attribute-only objects) for v5
-  geometry files.  instead of material attribute value becomes
-  material object name.  material object encompasses hierarchical
-  material traits.  some traits potentially of interest:
-    - density
-    - young modulus
-    - yield strength (in different dirs, e.g., rolling & transversal)
-    - ultimate tensile strength (also in different dirs)
-    - Poisson's ratio
-    - cost per ton?
-    - ...
-
-* parametric material properties.  support the ability to define
-  material properties based on parametric values such as distance from
-  surface, distance from medial axis, distance from centroid, distance
-  from plane, etc.  this supports parametric descriptions of materials
-  that have highly variable densities (e.g., bone, certain alloys and
-  plastics, etc.).
-
-* shader objects (non-geometric attribute-only objects) for v5
-  geometry files.  allow shader string to refer to said objects for
-  shader parameters.
-
 * refactor wdb_obj and view_obj in libged.  with the de-tcl'ing of the
   base libs, it should disappear but shouldn't have wdb_*() funcs in
   libged regardless.  work in progress.
@@ -1141,8 +963,6 @@
 * rtedge shoots twice as many rays as it needs to (shoots the 'below'
   ray for each primary, only reusing current scanline cells).
 
-* support for fillets and chamfers as object/combination operations
-
 * make the DSP primitive use less memory when data is coming from
   a binunif. allocating 160 times binunif size is a bit extravagant
   (which comes from sizeof(struct dsp_bb)).
@@ -1353,6 +1173,191 @@
   in BRL-CAD (libraries are BSD licensed: http://ngplant.sourceforge.net)
 
 
+NEW OBJECTS
+-----------
+
+* annotation primitive.  specifically a means to create an object in
+  the database that can optionally be associated with another object
+  and/or position(s) that a label refers to.  there are various styles
+  such as a single line from a point to text and two lines (e.g.,
+  indicating measurement) to text.
+
+  the object should allow for different line styles including having
+  no lines.  there should also be support for view-fixed or
+  view-independent annotation placement (which requires a change to
+  plot()'s and possibly prep()'s signature).  it would also be useful
+  to allow an optional _annotation_ "thickness" so that the
+  annotations can represent physical geometry (so they raytrace).
+
+  the concept is nearly equivalent to a combined sketch+extrude object
+  but with options specific to annotations.  the underlying export
+  form should be fully generalized as much as possible with a
+  higher-level "in" command constraining available options into a
+  user-friendly form.  a new "annotate" command will similarly be
+  needed to support modification of existing annotations (as well as
+  creation ala the 'in' command).  see the web for tons of examples.
+
+  References:
+  http://en.wikipedia.org/wiki/Geometric_dimensioning_and_tolerancing
+  ASME Y14.5 2009
+  http://www.draftingzone.com/shoppingzone/6-1.pdf
+  
http://www.wikistep.org/index.php/Recommended_Practices_for_the_Representation_of_GD%26T
+  
http://www.wikistep.org/index.php/Recommended_Practices_for_the_Presentation_of_Dimensions,_Dimensional_and_Geometric_Tolerances
+  
http://www.wikistep.org/index.php/Associative_Text_in_3D_recommended_practices
+  
http://www.wikistep.org/index.php/Model_viewing,_basic_drawing_structure_and_dimensions_recommended_practices
+  http://www.iigdt.com/Products/Images/0f390980.jpg
+  src/other/openNURBS/opennurbs_annotation*
+
+  Types of annotations:
+       text:                   text.
+                                                  text --,
+       leader:                 text ---->.                \
+                                     .            .        \           .       
 .         .  .
+       linear dimension:             |            |         .          |       
 |         |  |
+                           .         |<-- text -->|                --->|  text 
 |<--   -->|  |<---- text
+       angular dimension:   \  text
+                             \_____.
+
+  Annotation placement:
+       xyz position:             (1.0, 3.5, 2.1)
+       named reference(s):        hull.r
+       above/below/left/right:    below
+       offset:                    33.4
+               (e.g., "at 1.0,3.5,2.1" or "below hull.r offset 33.4" or "at 
hull.r", etc.)
+
+  Text:
+       user-defined string:     my awesome component -----> .
+
+       named/point reference:        hull.r1 -----> .
+                                                 .               .
+       automatic dimension (two points):         |_______________|
+                                  .        .           5.4 mm
+       custom dimension label:    |<------>|<--.
+                                                \ Length of hull.r1: 5.4mm
+
+             (custom label specified via format specifier: "Length of %target: 
%size")
+
+  Text properties:
+       font name
+       font size (height)
+       font style: bold/italic/regular
+       font color
+       justification: left, center, right, bottom, middle, top  (combinable 
options, e.g., "top left")
+       placement: default, above, below, inline, interior, exterior
+
+  Line properties:
+       head style (point o-, arrow_to >-, arrow_from, <-, square #-)
+       tail style (point o-, arrow_to >-, arrow_from, <-, square #-)
+       line weight (thickness)                    .___.                     
target        .---- text
+       2d points:               text  ._____.     |    \                    .  
   .      /
+                                            \    |     .---> target        |   
  |     /
+                                             .___.                      -->|   
  |<---.
+  Symbol type:
+       degree:   (superscript circle)
+       radius:   ('R', e.g., 'R10.5')
+       diameter: (circle with slash, null symbol)
+       ... several others
+       http://www.tec-ease.com/gdt-terms.php
+
+  Annotation properties:
+       scale: fixed size or proportional to view
+       alignment: to datum (plane or axis) or to view
+       draw bounding plane
+       draw target axes at uv offset position
+       draw feature control frame  (characteristic tolerances in symbolic 
form: www.draftingzone.com/shoppingzone/6-1.pdf)
+       3d thickness
+
+* offset surfaces.  provide feature edit operation to create a solid
+  "level set" style object so you can represent degraded geometry
+  states (e.g., damage around a hole in a plate of metal might be
+  represented by the toroidal intersection with a cylinder some radius
+  larger than the hole, providing a separate region that can have
+  different material properties).
+
+  geometrically, this is simply a means to separate a given object
+  into multiple objects without changing the cumulative volume.  a
+  linear offset from a given surface or set of surfaces is usually
+  desired.
+
+* Cache objects.  These are proper non-geometric geometry database
+  objects intended to store binary results that have a dependency on
+  other object(s).  A named hash (e.g. md5) is recorded for each
+  dependent object along with the computed results.
+
+  Three potential candidates for leveraging cache objects are 1) prep
+  objects containing the final prepped state of a given object
+  hierarchy (particularly useful for BoT and BREP geometry), 2)
+  raytrace objects containing the intersection results for a given
+  view (i.e., a grid of primary rays), and 3) rtgl point samples
+  (which is a variant of 2 but potentially view independent).
+
+* alias objects.  this is an object handle in a geometry database that
+  refers to another geometry database object.  in effect, it
+  encapsulates the idea of a symbolic reference for database objects.
+
+  alias objects should be very lightweight, corresponding to basically
+  a simple named reference to another object.  this allows for
+  geometry objects to have multiple names, all referencing a given
+  primary name.  whenever an alias is referenced, it returns the
+  object pointed to instead of the alias object itself (this includes
+  the rt_db_internal()).  this prevents the creation of cyclic
+  references.
+
+  this directly supports geometry importers that contain object name
+  mappings (e.g., part numbers to engineering names) as well as
+  simply supporting multiple names per object that one might want to
+  persist.  there is an issue of whether aliases show as top-level
+  objects or even display by default without a listing option.
+
+* support for fillets and chamfers as object/combination operations
+
+* image objects (tbd objects) for v5 geometry files
+
+* material objects (non-geometric attribute-only objects) for v5
+  geometry files.  instead of material attribute value becomes
+  material object name.  material object encompasses hierarchical
+  material traits.  some traits potentially of interest:
+    - density
+    - young modulus
+    - yield strength (in different dirs, e.g., rolling & transversal)
+    - ultimate tensile strength (also in different dirs)
+    - Poisson's ratio
+    - cost per ton?
+    - ...
+
+* parametric material properties.  support the ability to define
+  material properties based on parametric values such as distance from
+  surface, distance from medial axis, distance from centroid, distance
+  from plane, etc.  this supports parametric descriptions of materials
+  that have highly variable densities (e.g., bone, certain alloys and
+  plastics, etc.).
+
+* shader objects (non-geometric attribute-only objects) for v5
+  geometry files.  allow shader string to refer to said objects for
+  shader parameters.
+
+* 3D plot objects for v5 geometry files.  very closely related to
+  other ideas about having 3d wireframe objects, but these would
+  probably be non-geometric in nature.  basically the plot3 files that
+  are stored out to disk being stored as objects in the database with
+  support for the overlay command to import, export, display them.
+
+  minimally should probably support the basic drafting elements
+  (predominantly from collada, dxf, iges, and step specifications):
+
+       point := x, y, z
+       line := start point, end point
+       polyline := various (closed, open, paired, modified, etc.)
+       circle := center point, radius
+       ellipse := center point, major radius, minor radius
+       hyperbola := center point, major radius, minor radius
+       parabola := center point, focal length
+       arc := center point, radius, start angle, end angle
+       spline := degree, control points, knot values
+       text := string, insertion point, size, style, alignment
+
+
+
 WINDOWS
 -------
 
@@ -1451,6 +1456,7 @@
   as nmg/bot boundary representation meshes.  lots of great vehicle
   datasets at http://www.ncac.gwu.edu/vml/models.html
 
+
 STEP
 ----
 
@@ -1534,7 +1540,7 @@
 
 
 RTGL
-____
+----
 
 Need before enabling:
 

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to