CCB.UsingShapeCurvature (r1.1 vs. r1.18)
Diffs

 <<O>>  Difference Topic UsingShapeCurvature (r1.18 - 16 Oct 2007 - CraigSchwartz)

META TOPICPARENT ShapeCurvature

Overview

The curvature of a surface is a property of interest to neurological researchers.
Line: 107 to 107

Any mesh files supported by the ShapeTools library may be read by this program, however, it is possible that a valid file may not contain a closed mesh surface. Loni Ucf files are a particular example of this. Loni Ucf files may in some circumstances be explicitly interpolated to form a surface mesh. Please
Changed:
<
<
see the shape tools InterpolateUcf? application for more details.
>
>
see the shape tools InterpolateContour application for more details.

Many file mesh file formats in use at Loni do not allow arbitrary per-vertex values to be stored. Examples of such are the Obj and Off file formats. Although these permit per-vertex colors and surface


 <<O>>  Difference Topic UsingShapeCurvature (r1.17 - 03 May 2007 - CraigSchwartz)

META TOPICPARENT ShapeCurvature

Overview

The curvature of a surface is a property of interest to neurological researchers.
Line: 50 to 50

-output_attribute name curvature sets name of attribute used to store curvature in the output file If the output file format does not support named attributes this parameter value is ignored.
-verbose false enables detailed status messages during calculations.  
-examples n/a prints examples of common usage  
Added:
>
>
-pipeline n/a prints a pipeline descriptor file to std. output and exits  
-twiki n/a prints a TWiki description of command line arguments to std. output, and exits.  

Examples of common usage


 <<O>>  Difference Topic UsingShapeCurvature (r1.16 - 27 Apr 2007 - RyanCabeen)

META TOPICPARENT ShapeCurvature

Overview

The curvature of a surface is a property of interest to neurological researchers.
Line: 10 to 10

If the output file format (which defaults to the same format as the input file) does not allow saving the curvature of each vertex, then an open dx file will instead be written.
Changed:
<
<

Command Line CCB_Tools_MeiheXu_SurfaceExtractionTutorialUsage

>
>

Command Line Usage


The command line follows this pattern: "java {optional java arguments} -jar {optional command line arguments} input_file output_file". The "optional command line arguments" are described by the table in the next section, and by the illustrative examples that follow. The "optional java arguments' control the behavior of the Java virtual machine used to run the application and, with one exception, are seldom used. That exception

 <<O>>  Difference Topic UsingShapeCurvature (r1.15 - 26 Apr 2007 - CraigSchwartz)

META TOPICPARENT ShapeCurvature

Overview

The curvature of a surface is a property of interest to neurological researchers.
Line: 44 to 44

Argument Default Description Notes
-version n/a prints a version string to the console output and exits normally.  
-help n/a prints usage string to the console output and exits normally.  
Changed:
<
<
-curvature type sumAngle selects the curvature measure to use type must be one of {sumAngle,mean, gaussian, principal}
>
>
-curvatureType -gaussian selects the curvature measure to use type must be one of {-mean, -gaussian, -principal}

-output type text Changes the output file type. Allowed values are "text" and "dx", which select an ascii text file or an OpenDX file If unspecified the input file type is used, unless the input file type does not allow arbitrary data attributes at a vertex.
-infinity number (2-2^23)-2127 sets the value of the number used to indicate infinite curvature at a point.  
-output_attribute name curvature sets name of attribute used to store curvature in the output file If the output file format does not support named attributes this parameter value is ignored.

 <<O>>  Difference Topic UsingShapeCurvature (r1.14 - 06 Dec 2006 - IvoDinov)

META TOPICPARENT ShapeCurvature

Overview

The curvature of a surface is a property of interest to neurological researchers.
Line: 10 to 10

If the output file format (which defaults to the same format as the input file) does not allow saving the curvature of each vertex, then an open dx file will instead be written.
Changed:
<
<

Command Line Usage

>
>

Command Line CCB_Tools_MeiheXu_SurfaceExtractionTutorialUsage


The command line follows this pattern: "java {optional java arguments} -jar {optional command line arguments} input_file output_file". The "optional command line arguments" are described by the table in the next section, and by the illustrative examples that follow. The "optional java arguments' control the behavior of the Java virtual machine used to run the application and, with one exception, are seldom used. That exception

 <<O>>  Difference Topic UsingShapeCurvature (r1.13 - 30 Nov 2006 - BaecheolShin)

META TOPICPARENT ShapeCurvature

Overview

The curvature of a surface is a property of interest to neurological researchers.
Line: 43 to 43

Argument Default Description Notes
-version n/a prints a version string to the console output and exits normally.  
Changed:
<
<
-help n/a prints a version string to the console output and exits normally.  
>
>
-help n/a prints usage string to the console output and exits normally.  

-curvature type sumAngle selects the curvature measure to use type must be one of {sumAngle,mean, gaussian, principal}
-output type text Changes the output file type. Allowed values are "text" and "dx", which select an ascii text file or an OpenDX file If unspecified the input file type is used, unless the input file type does not allow arbitrary data attributes at a vertex.
-infinity number (2-2^23)-2127 sets the value of the number used to indicate infinite curvature at a point.  

 <<O>>  Difference Topic UsingShapeCurvature (r1.12 - 29 Nov 2006 - BaecheolShin)

META TOPICPARENT ShapeCurvature

Overview

The curvature of a surface is a property of interest to neurological researchers.
Line: 8 to 8

or added to a copy of the orginal file if this action is allowed by the data file format.

If the output file format (which defaults to the same format as the input file) does not allow

Changed:
<
<
saving the curvature of each vertex then an open dx file will instead be written.
>
>
saving the curvature of each vertex, then an open dx file will instead be written.

Command Line Usage

The command line follows this pattern: "java {optional java arguments} -jar {optional command line arguments} input_file output_file". The "optional command line arguments" are described by the table in the next section, and by the
Line: 41 to 41

Changed:
<
<
Argument Required Default Description Notes
-version no n/a prints a version string to the console output and exits normally.  
-help no n/a prints a version string to the console output and exits normally.  
-curvature type no sumAngle selects the curvature measure to use type must be one of {sumAngle,mean, gaussian, principal}
-output type no text Changes the output file type. Allowed values are "text" and "dx", which select an ascii text file or an OpenDX file If unspecified the input file type is used, unless the input file type does not allow arbitrary data attributes at a vertex.
-infinity number no (2-2^23)-2127 sets the value of the number used to indicate infinite curvature at a point.  
-output_attribute name no curvature sets name of attribute used to store curvature in the output file If the output file format does not support named attributes this parameter value is ignored.
-verbose no false enables detailed status messages during calculations.  
-examples no n/a prints examples of common usage  
>
>
Argument Default Description Notes
-version n/a prints a version string to the console output and exits normally.  
-help n/a prints a version string to the console output and exits normally.  
-curvature type sumAngle selects the curvature measure to use type must be one of {sumAngle,mean, gaussian, principal}
-output type text Changes the output file type. Allowed values are "text" and "dx", which select an ascii text file or an OpenDX file If unspecified the input file type is used, unless the input file type does not allow arbitrary data attributes at a vertex.
-infinity number (2-2^23)-2127 sets the value of the number used to indicate infinite curvature at a point.  
-output_attribute name curvature sets name of attribute used to store curvature in the output file If the output file format does not support named attributes this parameter value is ignored.
-verbose false enables detailed status messages during calculations.  
-examples n/a prints examples of common usage  

Examples of common usage

Line: 58 to 58

named ShapeCurvature.jar.
Changed:
<
<

Print a usage summary to the console output.

>
>
Ex 1) Print a usage summary to the console output.

Use this command: java -jar ShapeCurvature -help

Line: 66 to 66

Note: The options illustrated in the following examples may be varied in actual use to suit your needs.
Changed:
<
<

Measure the curvature of a surface saved in a Minc OBJ file and save the curvature values into a text file

>
>
Ex 2) Measure the curvature of a surface saved in a Minc OBJ file and save the curvature values into a text file

Note: Obj files are unable to store per-vertex curvature data
  • uses simple curvature measurement
  • saves curvatures at each vertex into an ascii text file.
Changed:
<
<
Use this command :
>
>
Use this command : java -jar ShapeCurvature.jar -output text mesh.obj mesh_curvature.txt

Changed:
<
<
java -jar ShapeCurvature.jar -output text mesh.obj mesh_curvature.txt

Find curvature of a Ucf file and writes a copy of the input file with curvature appended as a Ucf '4D' attribute

>
>
Ex 3) Find curvature of a Ucf file and writes a copy of the input file with curvature appended as a Ucf '4D' attribute

  • uses value of -1234 to represent infinite curvature.
  • names output attribute "saxophone".
  • saves curvature as ucf 4D attribute.
Line: 83 to 81

Use this command: java -jar ShapeCurvature -infinity -1234 -output_attribute saxophone mesh.ucf meshCurvature.ucf

Changed:
<
<

Find curvature of a Ucf file and writes a copy of the input file with curvature appended as a DX file:

>
>
Ex 4) Find curvature of a Ucf file and writes a copy of the input file with curvature appended as a DX file:

  • saves as a dx file

Use this command: java -jar ShapeCurvature -output dx mesh.ucf meshCurvature.dx

Line: 93 to 91

Detailed Description of the program

Changed:
<
<

Common Runtime Errors:

>
>
  • Common Runtime Errors:

No input or output file
if both input file and output file are not provided the application will exit.
Not appropriate input file
if input file doesn't exist, or cannot be read the application wlll exit.
Line: 103 to 101

Wrong curvature value
if the surface is not closed then curvature values at the surface edge will be incorrect.
Changed:
<
<

Data formats supported

>
>
  • Data formats supported

Any mesh files supported by the ShapeTools library may be read by this program, however, it is possible that a valid file may not contain a closed mesh surface. Loni Ucf files are a particular example of this. Loni Ucf files may in some circumstances be explicitly interpolated to form a surface mesh. Please
Line: 132 to 130

TXT Ascii text files One curvature value is written per line. Values are in the order of the vertices; that is, the curvature at the first vertex of the input file is on line 1 of the output file, the second vertex's curvature on line 2, and so on.
DX OpenDX ascii general format data files Curvature is stored in a Field component named (unsurprisingly) "Curvature"
Changed:
<
<

Curvature algorithms

The 'curvature" of a surface is the bending of a polyhedral surface at each of its vertices.
>
>

Curvature algorithms

The 'curvature' of a surface is the bending of a polyhedral surface at each of its vertices.

The ShapeCurvature program provides a variety of curvature measurements. It is designed to support many different measures of curvature.

The curvature measurements currently supported are:

Added:
>
>



 <<O>>  Difference Topic UsingShapeCurvature (r1.11 - 06 Jul 2006 - CraigSchwartz)

META TOPICPARENT ShapeCurvature

Overview

The curvature of a surface is a property of interest to neurological researchers.
Line: 44 to 44

Argument Required Default Description Notes
-version no n/a prints a version string to the console output and exits normally.  
-help no n/a prints a version string to the console output and exits normally.  
Changed:
<
<
-curvature type no sumAngle selects the curvature measure to use type must be one of {sumAngle}
>
>
-curvature type no sumAngle selects the curvature measure to use type must be one of {sumAngle,mean, gaussian, principal}

-output type no text Changes the output file type. Allowed values are "text" and "dx", which select an ascii text file or an OpenDX file If unspecified the input file type is used, unless the input file type does not allow arbitrary data attributes at a vertex.
-infinity number no (2-2^23)-2127 sets the value of the number used to indicate infinite curvature at a point.  
-output_attribute name no curvature sets name of attribute used to store curvature in the output file If the output file format does not support named attributes this parameter value is ignored.

 <<O>>  Difference Topic UsingShapeCurvature (r1.10 - 10 May 2006 - CraigSchwartz)

META TOPICPARENT ShapeCurvature

Overview

The curvature of a surface is a property of interest to neurological researchers. The ShapeCurvature program reads a surface mesh from a data file and
Changed:
<
<
computes the principal curvature of the surface at each mesh vertex.
>
>
computes the curvature of the surface at each mesh vertex.

These values may be saved as either an array of values (one per vertex) in a simple text file or added to a copy of the orginal file if this action is allowed by the data file format.
Line: 11 to 11

saving the curvature of each vertex then an open dx file will instead be written.

Command Line Usage

Changed:
<
<
The command line follows this pattern: "java -jar {options} input_file output_file".
>
>
The command line follows this pattern: "java {optional java arguments} -jar {optional command line arguments} input_file output_file". The "optional command line arguments" are described by the table in the next section, and by the illustrative examples that follow. The "optional java arguments' control the behavior of the Java virtual machine used to run the application and, with one exception, are seldom used. That exception is the memory allocation argument, -Xmx{number}, which asks your computer's operating system to give more memory to the Java virtual machine that it ordinarily gets. This is used when the data to be manipulated exceed the amount of memory. If you run the program and see an error with text resembling

"Out of Memory"

then you will probably want to add the memory argument. The "number" part sets the amount of memory you are requesting; a good start value is to ask for 200 megabytes, which would be done by this command:

java -Xmx200m -jar ShapeCurvature.jar input_file output_file

the -Xmx200m is the argument that requests additional memory.

Command line arguments

The program is controlled by use of command line arguments. These select the curvature measurement used, the type of output produced, and the value used to indicate an infinite curvature, as well as other options. The complete table of command line arguments follows. The "Default" values listed are the values used by the program if the corrosponding command line argument is not specified.

Not all arguments need be specified by a user; generally, an argument is used only to override an unwanted default behavior of the program.


Deleted:
<
<

Usage


Argument Required Default Description Notes
-version no n/a prints a version string to the console output and exits normally.  
Line: 29 to 54

Examples of common usage

Changed:
<
<

Print a usage summary to the console output.

>
>
In these examples we assume that the ShapeCurvature application is saved in a file named ShapeCurvature.jar.

Deleted:
<
<
Use this command: java -jar ShapeCurvature -help

Added:
>
>

Print a usage summary to the console output.


Changed:
<
<

Ucf Curvature

>
>
Use this command: java -jar ShapeCurvature -help

Deleted:
<
<
The java program file in these examples is named ShapeCurvature.jar

Note: The options illustrated in the following examples may be varied in actual use to suit your needs.

Deleted:
<
<

Print a summary of how to use the ShapeCurvature program


Changed:
<
<
Use this command : java -jar ShapeCurvature.jar -help

Measure the curvature of an Obj surface and save the curvature values into a text file

>
>

Measure the curvature of a surface saved in a Minc OBJ file and save the curvature values into a text file


Note: Obj files are unable to store per-vertex curvature data
  • uses simple curvature measurement
Changed:
<
<
  • saves curvatures at each vertex into ascii text file.
>
>
  • saves curvatures at each vertex into an ascii text file.

Use this command :


Changed:
<
<
Use this command : java -jar ShapeCurvature.jar -output text mesh.obj mesh_curvature.txt
>
>
java -jar ShapeCurvature.jar -output text mesh.obj mesh_curvature.txt

Find curvature of a Ucf file and writes a copy of the input file with curvature appended as a Ucf '4D' attribute

  • uses value of -1234 to represent infinite curvature.
  • names output attribute "saxophone".
  • saves curvature as ucf 4D attribute.
Deleted:
<
<
  • saves as a ucf file.

Deleted:
<
<
Use this command: java -jar ShapeCurvature -infinity -1234 -output_attribute saxophone -output ucf mesh.ucf meshCurvature.ucf

Added:
>
>
Use this command: java -jar ShapeCurvature -infinity -1234 -output_attribute saxophone mesh.ucf meshCurvature.ucf

Changed:
<
<

Detailed Description of the program

Curvature algorithms

The 'curvature" of a surface is the bending of a polyhedral surface at each of its vertices.
>
>

Find curvature of a Ucf file and writes a copy of the input file with curvature appended as a DX file:

  • saves as a dx file

Changed:
<
<
The ShapeCurvature program provides a variety of curvature measurements. It is designed to support many different measures of curvature.
>
>
Use this command: java -jar ShapeCurvature -output dx mesh.ucf meshCurvature.dx

Changed:
<
<
The curvature measurements currently supported are:
>
>


Changed:
<
<
Discrete Gaussian Curvature
The diference of 2 PI and sum of the angles between adjacent faces adjoining the vertex C(vertex).
2Pi - a1 - a2 - a3 -...-an where n is the number of faces adjoining the vertex, and a1,...,an are the angles on the faces.
At each vertex we consider the angles formed on the adjacent faces at that corner. If the sum of these angles is exactly 360 degreee then the collection of faces can be flattened to the plane withough a gap and without any overlap. Therefore, it has zero curvature. If the sume of the angle is smaller than 360 degree then the situation is like that at the tip of a cone, or at the corner of a convex polyhedron. Here the curvature should be positive since such a polyhedron is similar to a round ball. Negative curvature arises if the sum of the angles is bgger than 360 degreee which happens, for example, at a saddle point.
>
>

Detailed Description of the program


Common Runtime Errors:

Line: 83 to 103

Wrong curvature value
if the surface is not closed then curvature values at the surface edge will be incorrect.
Changed:
<
<

data formats supported

>
>

Data formats supported


Any mesh files supported by the ShapeTools library may be read by this program, however, it is possible that a valid file may not contain a closed mesh surface. Loni Ucf files are a particular example of this. Loni Ucf files may in some circumstances be explicitly interpolated to form a surface mesh. Please
Line: 92 to 111

Many file mesh file formats in use at Loni do not allow arbitrary per-vertex values to be stored. Examples of such are the Obj and Off file formats. Although these permit per-vertex colors and surface

Changed:
<
<
normals to be stored, they do not allow arbitrary data values , such as curvature, to be saved.
>
>
normals to be stored, they do not allow arbitrary data values , such as curvature, to be saved. In such cases the output file will be written as an OpenDX format file. Should this occur the name of the output file will be changed by appending a ".dx" to the file name. A warning message notifying the user of the problem is printed to the screen.

Deleted:
<
<
In some circumstances the color attribute may be set to represent a data attribute. A specific application program (ShapeColorAttribute) is planned to allow such operations.

The following input formats are currently supported (3 March 2006)

Line: 109 to 130

Abbreviated Name Descripoint Notes
TXT Ascii text files One curvature value is written per line. Values are in the order of the vertices; that is, the curvature at the first vertex of the input file is on line 1 of the output file, the second vertex's curvature on line 2, and so on.
Added:
>
>
DX OpenDX ascii general format data files Curvature is stored in a Field component named (unsurprisingly) "Curvature"

Curvature algorithms

The 'curvature" of a surface is the bending of a polyhedral surface at each of its vertices.

The ShapeCurvature program provides a variety of curvature measurements. It is designed to support many different measures of curvature.

The curvature measurements currently supported are:



Changed:
<
<

System requirements -

>
>

System requirements


  • Platform - Platform independent
  • Operating System - Any OS that has Java 1.4.2 or greater.
Changed:
<
<

Limitations -

  • Speed - The method operate fast only on triangular meshes (surface made of triangular faces), all other surface methes with other elemet types take long time.
  • Output - The output type must match the type of input file. Only UCF files are presently supported. In another word, Ucf files may be written as Ucf fileThe, and curvatures of all other file types may only be written as text.

Future Work -

  • Improve speed - Surface meshes with other element types or mixed mesh type muse be preprocessed before the methos can be applied to them, by doing so improve speed.
  • Add more curvature measurements.
  • Add more shape input/output file formats.
>
>

Limitations

  • Input meshes must be regular, that is, all faces must have the same number of vertices.

Acknowledgements

This program is a product of the CCB Shape Tools program.

Changed:
<
<
META TOPICMOVED craig date="1145651128" from="CCB.ShapeCurvatureUserManualVersion_1" to="CCB.ShapeCurvatureUserGuide1x0"
>
>
META TOPICMOVED craig date="1147304264" from="CCB.ShapeCurvatureUserGuide1x0" to="CCB.UsingShapeCurvature"

 <<O>>  Difference Topic UsingShapeCurvature (r1.9 - 28 Apr 2006 - CraigSchwartz)

META TOPICPARENT ShapeCurvature

Overview

The curvature of a surface is a property of interest to neurological researchers.
Line: 7 to 7

These values may be saved as either an array of values (one per vertex) in a simple text file or added to a copy of the orginal file if this action is allowed by the data file format.
Added:
>
>
If the output file format (which defaults to the same format as the input file) does not allow saving the curvature of each vertex then an open dx file will instead be written.

Command Line Usage

The command line follows this pattern: "java -jar {options} input_file output_file".
Line: 17 to 20

-version no n/a prints a version string to the console output and exits normally.  
-help no n/a prints a version string to the console output and exits normally.  
-curvature type no sumAngle selects the curvature measure to use type must be one of {sumAngle}
Changed:
<
<
-output type no text Selects the output file type. It must be either "text" or the input file type.Supported output file types are: {ucf, text}. No file type conversions are performed.
>
>
-output type no text Changes the output file type. Allowed values are "text" and "dx", which select an ascii text file or an OpenDX file If unspecified the input file type is used, unless the input file type does not allow arbitrary data attributes at a vertex.

-infinity number no (2-2^23)-2127 sets the value of the number used to indicate infinite curvature at a point.  
-output_attribute name no curvature sets name of attribute used to store curvature in the output file If the output file format does not support named attributes this parameter value is ignored.
-verbose no false enables detailed status messages during calculations.  

 <<O>>  Difference Topic UsingShapeCurvature (r1.8 - 21 Apr 2006 - CraigSchwartz)

META TOPICPARENT ShapeCurvature

Overview

The curvature of a surface is a property of interest to neurological researchers.
Line: 127 to 127

This program is a product of the CCB Shape Tools program.

Added:
>
>
META TOPICMOVED craig date="1145651128" from="CCB.ShapeCurvatureUserManualVersion_1" to="CCB.ShapeCurvatureUserGuide1x0"

 <<O>>  Difference Topic UsingShapeCurvature (r1.7 - 18 Mar 2006 - BaecheolShin)

META TOPICPARENT ShapeCurvature

Overview

The curvature of a surface is a property of interest to neurological researchers.

 <<O>>  Difference Topic UsingShapeCurvature (r1.6 - 09 Mar 2006 - CraigSchwartz)

META TOPICPARENT ShapeCurvature

Overview

The curvature of a surface is a property of interest to neurological researchers.
Line: 70 to 70

Discrete Gaussian Curvature
The diference of 2 PI and sum of the angles between adjacent faces adjoining the vertex C(vertex).
2Pi - a1 - a2 - a3 -...-an where n is the number of faces adjoining the vertex, and a1,...,an are the angles on the faces.
At each vertex we consider the angles formed on the adjacent faces at that corner. If the sum of these angles is exactly 360 degreee then the collection of faces can be flattened to the plane withough a gap and without any overlap. Therefore, it has zero curvature. If the sume of the angle is smaller than 360 degree then the situation is like that at the tip of a cone, or at the corner of a convex polyhedron. Here the curvature should be positive since such a polyhedron is similar to a round ball. Negative curvature arises if the sum of the angles is bgger than 360 degreee which happens, for example, at a saddle point.

Changed:
<
<

error handling

- lists the types of errors that can happen and how the program handles these errors
No input or output file
if both input file and output file are not provided,then the application will be terminated.
Not appropriate input file
if input file doesn't exit or cannot be read, then the application wlll be terminated.
Not appropriate output file
if it is not possible to write output file, then the application will be terminated.
Not appropriate output type
if input file type doesn't match output type, then the application will be terminated.
Not appropriate shape
if shape has no face set or shpae has no face, then the application will be terminated.
Wrong curvature value
if the shape is open shape, some of curvature values in the output will not be correct.
>
>

Common Runtime Errors:


Added:
>
>
No input or output file
if both input file and output file are not provided the application will exit.
Not appropriate input file
if input file doesn't exist, or cannot be read the application wlll exit.
Not appropriate output file
if it is not possible to write the output file then the application will exit.
Not appropriate output type
if input file type doesn't match output type the application will exit.
Not appropriate shape
if shape has no face set or the face set has no faces the application will exit.
Wrong curvature value
if the surface is not closed then curvature values at the surface edge will be incorrect.


 <<O>>  Difference Topic UsingShapeCurvature (r1.5 - 09 Mar 2006 - BaecheolShin)

META TOPICPARENT ShapeCurvature

Overview

The curvature of a surface is a property of interest to neurological researchers.
Line: 76 to 76

Not appropriate input file
if input file doesn't exit or cannot be read, then the application wlll be terminated.
Not appropriate output file
if it is not possible to write output file, then the application will be terminated.
Not appropriate output type
if input file type doesn't match output type, then the application will be terminated.
Added:
>
>
Not appropriate shape
if shape has no face set or shpae has no face, then the application will be terminated.
Wrong curvature value
if the shape is open shape, some of curvature values in the output will not be correct.

Line: 112 to 114

Limitations -

  • Speed - The method operate fast only on triangular meshes (surface made of triangular faces), all other surface
Changed:
<
<
methes with other elemet type take lone time.
>
>
methes with other elemet types take long time.

  • Output - The output type must match the type of input file. Only UCF files are presently supported. In another word, Ucf files may be written as Ucf fileThe, and curvatures of all other file types may only be written as text.
Line: 120 to 122

  • Improve speed - Surface meshes with other element types or mixed mesh type muse be preprocessed before the methos can be applied to them, by doing so improve speed.
  • Add more curvature measurements.
Changed:
<
<
  • Add more shape file formats.
>
>
  • Add more shape input/output file formats.

Acknowledgements


 <<O>>  Difference Topic UsingShapeCurvature (r1.4 - 03 Mar 2006 - BaecheolShin)

META TOPICPARENT ShapeCurvature

Overview

The curvature of a surface is a property of interest to neurological researchers.
Line: 72 to 72

error handling

- lists the types of errors that can happen and how the program handles these errors
Changed:
<
<
Error One
describe error 1 here
Errro 2
describe error 2 here
>
>
No input or output file
if both input file and output file are not provided,then the application will be terminated.
Not appropriate input file
if input file doesn't exit or cannot be read, then the application wlll be terminated.
Not appropriate output file
if it is not possible to write output file, then the application will be terminated.
Not appropriate output type
if input file type doesn't match output type, then the application will be terminated.

data formats supported

Line: 107 to 111

  • Operating System - Any OS that has Java 1.4.2 or greater.

Limitations -

Changed:
<
<
  • Speed - Surfaces triangular faces surface made of triangular faces. The method operate fast only on triangular meshes, all other surface methes with other elemet type take lone time.
  • Output - The output type must match the type of input file. Only UCF files are presently supported.
>
>
  • Speed - The method operate fast only on triangular meshes (surface made of triangular faces), all other surface methes with other elemet type take lone time.
  • Output - The output type must match the type of input file. Only UCF files are presently supported. In another word, Ucf files may be written as Ucf fileThe, and curvatures of all other file types may only be written as text.

Future Work -

  • Improve speed - Surface meshes with other element types or mixed mesh type muse be preprocessed before the methos can
Changed:
<
<
be applied to them, by doing so improve speed
>
>
be applied to them, by doing so improve speed.

  • Add more curvature measurements.
  • Add more shape file formats.

 <<O>>  Difference Topic UsingShapeCurvature (r1.3 - 03 Mar 2006 - CraigSchwartz)

META TOPICPARENT ShapeCurvature

Overview

Changed:
<
<
The RunCurvature? acts as user interface. It communicates with user through command line arguments. The application are be able to calcualate the principal curvature of a surface mesh that is stored in a shape file. These curvature values may be written to disk files in a variety of file formats, some of which allow this value to be stored as a data attribute of a copy of the original file.
>
>
The curvature of a surface is a property of interest to neurological researchers. The ShapeCurvature program reads a surface mesh from a data file and computes the principal curvature of the surface at each mesh vertex. These values may be saved as either an array of values (one per vertex) in a simple text file or added to a copy of the orginal file if this action is allowed by the data file format.

Added:
>
>

Command Line Usage

The command line follows this pattern: "java -jar {options} input_file output_file".

Changed:
<
<

Usage Summary

  • Basic: The command line follows this pattern: "java -jar {options} input_file output_file".
  • A complete list of all command line options:
    • "-version" prints a version string to the standard output.
    • "-help" print a usage summary.
    • "-curvature sumAngle" selects the simple curvature measure.
    • "-output output_type" selects the type of output file that will be written. The default value is set as text.
    • "-infinity value" - sets the absolute value of the number used to indicate infinite curvature at a point.
    • "-output_attribute attribute_name" - sets name of attribute in output file used to store the curvature values, if possible. If the output file format does not support named attributes this parameter value is ignored. The default value is "curvature"
    • "-verbose" - enables detailed status messages during calculations.
    • "-examples" prints examples of how this program might be used.
>
>

Usage

Argument Required Default Description Notes
-version no n/a prints a version string to the console output and exits normally.  
-help no n/a prints a version string to the console output and exits normally.  
-curvature type no sumAngle selects the curvature measure to use type must be one of {sumAngle}
-output type no text Selects the output file type. It must be either "text" or the input file type.Supported output file types are: {ucf, text}. No file type conversions are performed.
-infinity number no (2-2^23)-2127 sets the value of the number used to indicate infinite curvature at a point.  
-output_attribute name no curvature sets name of attribute used to store curvature in the output file If the output file format does not support named attributes this parameter value is ignored.
-verbose no false enables detailed status messages during calculations.  
-examples no n/a prints examples of common usage  

Examples of common usage

Changed:
<
<

Command ---- java -jar ShapeCurvature -help
Action -------- prints program usage summary.


Command ---- java -jar ShapeCurvature -output ucf mesh.ucf mesh_4d.ucf
Action -------- finds curvature of a Ucf file and saves original Ucf with curvature added as a Ucf "4d" attribute named "curvature" .


Command ---- ava -jar ShapeCurvature -infinity -1234 -output_attribute saxophone -output ucf mesh.ucf meshCurvature.ucf
Action -------- compute cuvature of a Ucf mesh , save as a ucf file with a 4d attribute named "saxophone", using "-1234" as the value to represent infinite curvature.
>
>

Print a usage summary to the console output.

Use this command: java -jar ShapeCurvature -help

Ucf Curvature

The java program file in these examples is named ShapeCurvature.jar

Note: The options illustrated in the following examples may be varied in actual use to suit your needs.

Print a summary of how to use the ShapeCurvature program

Use this command : java -jar ShapeCurvature.jar -help

Measure the curvature of an Obj surface and save the curvature values into a text file

Note: Obj files are unable to store per-vertex curvature data
  • uses simple curvature measurement
  • saves curvatures at each vertex into ascii text file.

Use this command : java -jar ShapeCurvature.jar -output text mesh.obj mesh_curvature.txt

Find curvature of a Ucf file and writes a copy of the input file with curvature appended as a Ucf '4D' attribute

  • uses value of -1234 to represent infinite curvature.
  • names output attribute "saxophone".
  • saves curvature as ucf 4D attribute.
  • saves as a ucf file.

Use this command: java -jar ShapeCurvature -infinity -1234 -output_attribute saxophone -output ucf mesh.ucf meshCurvature.ucf


Detailed Description of the program

Deleted:
<
<
  • Curvature algorithms
    • Discrete Gaussian Curvature: The discrete Gauss curvature measures the bending of a polyhedral surface at each of its vertices. At each vertex we consider the angles formed on the adjacent faces at that corner. If the sum of these angles is exactly 360 degreee then the collection of faces can be flattened to the plane withough a gap and without any overlap. Therefor, it has zero curvature. If the sume of the angle is smaller than 360 degree then the situation is like at the tip of a cone, or at the corner of a convex polyhedron. Here the curvature should be positive since such a polyhedron is similar to a round ball. Negative curvature arises if the sum of the angles is bgger than 360 degreee which happens, for example, at a saddle point. In general, the discrete Gauss curature at a vertex is defined as the diference of 2 PI and sum of the angles between adjacent faces adjoining the vertex C(vertex) = 2Pi - a1 - a2 - a3 -...-an where n is the number of faces adjoining the vertex, and a1,...,an are the angels on the faces.

Changed:
<
<
  • The algorithm used in the application: Calculaes curvatures of a surface defined by the faces of an IFaceSet?. Computes a curvagture based on the sum of the angles between vertices that are econneted to a given vertex. The algorithm is follwoing:
    • Obtain all faces which are connected to a given points, and set angleSum to be zero.
    • Using a for loop, go over each face.
    • For each face, using another for loop, find two verties that connected to the given points.
    • Construct two vectors that starting at the given point and ending at the two verties found at the previous step.
    • Calculate angle between two vectors and add to angleSum.
    • If any face remains, go back to the step 3. Otherwise we complete calculating curvature.

  • error handlinge - lists the types of errors that can happen and how the program handles these errors
  • data formats supported - lists the input and output data types that are supported. for each of these describe how the program handles any specific details of the data format. Describe any problems that may be encoountered (example: Ucf that is not surface mesh) and how the program responds to them. Describe any required pre-conditions for each data format.
    • Supporting input files: a) ucf. b) obj. c) off
    • Supporting output files: a) txt b) ucf
>
>

Curvature algorithms

The 'curvature" of a surface is the bending of a polyhedral surface at each of its vertices.

The ShapeCurvature program provides a variety of curvature measurements. It is designed to support many different measures of curvature.

The curvature measurements currently supported are:

Discrete Gaussian Curvature
The diference of 2 PI and sum of the angles between adjacent faces adjoining the vertex C(vertex).
2Pi - a1 - a2 - a3 -...-an where n is the number of faces adjoining the vertex, and a1,...,an are the angles on the faces.
At each vertex we consider the angles formed on the adjacent faces at that corner. If the sum of these angles is exactly 360 degreee then the collection of faces can be flattened to the plane withough a gap and without any overlap. Therefore, it has zero curvature. If the sume of the angle is smaller than 360 degree then the situation is like that at the tip of a cone, or at the corner of a convex polyhedron. Here the curvature should be positive since such a polyhedron is similar to a round ball. Negative curvature arises if the sum of the angles is bgger than 360 degreee which happens, for example, at a saddle point.

error handling

- lists the types of errors that can happen and how the program handles these errors
Error One
describe error 1 here
Errro 2
describe error 2 here

data formats supported

Any mesh files supported by the ShapeTools library may be read by this program, however, it is possible that a valid file may not contain a closed mesh surface. Loni Ucf files are a particular example of this. Loni Ucf files may in some circumstances be explicitly interpolated to form a surface mesh. Please see the shape tools InterpolateUcf? application for more details.

Many file mesh file formats in use at Loni do not allow arbitrary per-vertex values to be stored. Examples of such are the Obj and Off file formats. Although these permit per-vertex colors and surface normals to be stored, they do not allow arbitrary data values , such as curvature, to be saved.

In some circumstances the color attribute may be set to represent a data attribute. A specific application program (ShapeColorAttribute) is planned to allow such operations.

The following input formats are currently supported (3 March 2006)

Abbreviated Name Descripoint Notes
Ucf Loni Universal Contour Format files. Not a mesh format, however, adjacent polyline contours with equal numbers of vertices may be interpreted as a square grid mesh.
OBJ Montreal Neurological Institute surface mesh Object files. Do not allow arbitrary data values at mesh vertices. Does support color and vertex normals
OFF Geomview surface mesh files. Do not allow arbitrary data values at mesh vertices. Does support color and vertex normals
DX OpenDX general format data files (using "positions" and "connections" to define the mesh). supports arbitrary data components at all mesh vertices

The following output formats are currently supported (3 March 2006)

Abbreviated Name Descripoint Notes
TXT Ascii text files One curvature value is written per line. Values are in the order of the vertices; that is, the curvature at the first vertex of the input file is on line 1 of the output file, the second vertex's curvature on line 2, and so on.

System requirements -

  • Platform - Platform independent
Changed:
<
<
  • Processor - 600 MHz Pentium chip or better
  • Operating System - Any OS that has Java
  • Memory - 512 Mb
  • Disk Space -
  • Software - Java 2(Runtime or SDK) version 1.3.1 or later
>
>
  • Operating System - Any OS that has Java 1.4.2 or greater.

Changed:
<
<

Limitation -

>
>

Limitations -


  • Speed - Surfaces triangular faces surface made of triangular faces. The method operate fast only on triangular meshes, all other surface methes with other elemet type take lone time.
  • Output - The output type must match the type of input file. Only UCF files are presently supported.
Line: 94 to 114

Future Work -

  • Improve speed - Surface meshes with other element types or mixed mesh type muse be preprocessed before the methos can be applied to them, by doing so improve speed
Added:
>
>
  • Add more curvature measurements.
  • Add more shape file formats.

Acknowledgements

This program is a product of the CCB Shape Tools program.



 <<O>>  Difference Topic UsingShapeCurvature (r1.2 - 02 Mar 2006 - BaecheolShin)

META TOPICPARENT ShapeCurvature
Deleted:
<
<

Overview

Changed:
<
<
a brief description of the research problem addressed by the ShapeCurvature program and what the application does.
>
>
The RunCurvature?