VisimBox 1.0 VisimBox 3d simulation and visualisation ToolBox

- Main Page
- Packages
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Properties
VisiMath.Geometry.IGeometry Interface Reference

Generic interface for geometric objects. For XML support IGeometry object MUST provide constructor with XMLReader parameter!!! More...

Inheritance diagram for VisiMath.Geometry.IGeometry:

List of all members.

## Public Member Functions
IGeometry | GetCopy ()
| Returns copy of the geometric data.
float | Distance (Vector3 pos)
| Returns closest distance from the specified point to object.
float | Distance (ref Vector3 pos)
| Returns closest distance from the specified point to object.
float | Distance (Point3D point)
| Returns closest distance from the specified point to object.
float | Distance (Point3DList pl, int index)
| Returns closest distance from the specified point to object.
float | Distance (IVertexArray varray, int index)
| Returns closest distance from the specified point to object.
float | DistancePoints (Point3DList pl, int startindex=0, int count=0)
| Returns closest distance from the set of points.
float | DistancePoints (IVertexArray varray, int startindex=0, int count=0)
| Returns closest distance from the set of points.
float | Distance (Ray ray, bool frontOnly=false)
| Returns closest distance to the ray.
float | DistanceLineSegment (LineSegment3D line)
| Returns closest distance to the line segment.
float | DistanceLineSegment (LineList lines, int index)
| Returns closest distance to the line segment.
float | DistanceLineSegment (Vector3 pos1, Vector3 pos2)
| Returns closest distance to the line segment.
float | DistanceLineSegment (ref Vector3 pos1, ref Vector3 pos2)
| Returns closest distance to the line segment.
float | DistanceLines (LineList lines, int startindex=0, int count=0)
| Returns closest distance to any of the lines from the set.
float | DistanceLines (IndexedLines lines, int startindex=0, int count=0)
| Returns closest distance to any of the lines from the set.
float | DistanceTriangle (Triangle tr)
| Returns closest distance to the triangle.
float | DistanceTriangle (TriangleList tr, int index)
| Returns closest distance to the triangle.
float | DistanceTriangle (IndexedMesh im, int index)
| Returns closest distance to the triangle.
float | DistanceTriangle (Vector3 pos1, Vector3 pos2, Vector3 pos3)
| Returns closest distance to the triangle.
float | DistanceTriangle (ref Vector3 pos1, ref Vector3 pos2, ref Vector3 pos3)
| Returns closest distance to the triangle.
float | DistanceTriangles (TriangleList tlist, int startindex=0, int count=0)
| Returns closest distance to the set of triangles.
float | DistanceTriangles (IndexedMesh im, int startindex=0, int count=0)
| Returns closest distance to the set of triangles.
float | DistanceQuad (Quad q)
| Returns closest distance to the quad.
float | DistanceQuad (Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4)
| Returns closest distance to the quad.
float | DistanceQuad (ref Vector3 p1, ref Vector3 p2, ref Vector3 p3, ref Vector3 p4)
| Returns closest distance to the quad.
float | DistanceQuad (QuadList ql, int index)
| Returns closest distance to the quad.
float | DistanceQuad (IndexedQuads ql, int index)
| Returns closest distance to the quad.
float | DistanceQuads (QuadList ql, int startindex=0, int count=0)
| Returns closest distance to the set of quads.
float | DistanceQuads (IndexedQuads ql, int startindex=0, int count=0)
| Returns closest distance to the set of quads.
float | DistanceSphere (Sphere sph)
| Returns closest distance to the sphere.
float | DistanceSphere (Vector3 center, float radius)
| Returns closest distance to the sphere.
float | DistanceSphere (ref Vector3 center, float radius)
| Returns closest distance to the sphere.
float | Distance (IGeometry obj)
| Returns closest distance from the generic geometric object.
bool | ContainsPosition (Vector3 pos)
| Checks if specified position is inside the object.
bool | Intersects (IGeometry obj)
| Checks for intersection with generic geo object.
bool | Intersects (Ray ray)
| Checks for intersection between object and ray.
float | IntersectionDistance (Ray ray)
| Returns distance to the intersection between object and ray.
Vector3 | IntersectionPoint (Ray ray)
| Returns closest point of the intersection between object and ray.
Vector3 | IntersectionPoint (IGeometry obj)
| Returns first found point of the intersection bewteen objects.
bool | GetIntersectionInfo (Ray obj, ref IIntersectionInfo inters)
| Check for intersection and fills intersection info if intersection is closer to the origin of the ray then value before.
bool | GetIntersectionInfo (Ray obj, IntersectionList ilist)
| Check for intersection and adds intersection info if there was any intersection.
bool | Intersects (Sphere sph)
| Checks for intersection between object and sphere.
float | IntersectsMoving (Sphere sph, Ray ray, float maxdistance)
| Checks for intersection between object and moving sphere.
float | IntersectsMoving (float radius, Ray ray, float maxdistance)
| Checks for intersection between object and moving sphere.
IGeometry | ConvertToPrimitive (PrimitiveTypes primType, float quality=0, int vertexlimit=0)
| Converts object to new geometry object with specified primitive type and optionally with quality parameters.
IGeometry | ConvertToPrimitive< VertexT > (PrimitiveTypes primType, float quality=0, int vertexlimit=0)
| Converts object to new geometry object with specified primitive type and optionally with quality parameters.
IGeometry | ConvertToPrimitive (Type vertextype, PrimitiveTypes primType, float quality=0, int vertexlimit=0)
| Converts object to new geometry object with specified primitive type and optionally with quality parameters.
Point3DList | ToPoints (float quality=0, int vertexlimit=0)
| Convert object to list of points.
Point3DList | ToPoints< VertexT > (float quality=0, int vertexlimit=0)
| Convert object to list of points.
Point3DList | ToPoints (Type vertextype, float quality=0, int vertexlimit=0)
| Convert object to list of points.
LineList | ToLines (float quality=0, int vertexlimit=0)
| Convert object to list of lines.
LineList | ToLines< VertexT > (float quality=0, int vertexlimit=0)
| Convert object to list of lines.
LineList | ToLines (Type vertextype, float quality=0, int vertexlimit=0)
| Convert object to list of lines.
TriangleList | ToTriangles (float quality=0, int vertexlimit=0)
| Convert object to list of triangles. Valid only for surface based objects, otherwise returns null.
TriangleList | ToTriangles< VertexT > (float quality=0, int vertexlimit=0)
| Convert object to list of triangles. Valid only for surface based objects, otherwise returns null.
TriangleList | ToTriangles (Type vertextype, float quality=0, int vertexlimit=0)
| Convert object to list of triangles. Valid only for surface based objects, otherwise returns null.
IndexedMesh | ToIndexedMesh (float quality=0, int vertexlimit=0)
| Convert object to indexed triangle mesh. Valid only for surface based objects, otherwise returns null.
IndexedMesh | ToIndexedMesh< VertexT > (float quality=0, int vertexlimit=0)
| Convert object to indexed triangle mesh. Valid only for surface based objects, otherwise returns null.
IndexedMesh | ToIndexedMesh (Type vertextype, float quality=0, int vertexlimit=0)
| Convert object to indexed triangle mesh. Valid only for surface based objects, otherwise returns null.
## Properties
bool | IsPrimitive`[get]`
| Is object geometric renderable primitive from enumaration PrimitiveTypes?
bool | IsContainer`[get]`
| If geometry object is container, it's made of several joined objects.
Vector3 | Center`[get]`
| Center of the object.
PrimitiveTypes | PreferredPrimitive`[get]`
| Preferred primitive type for rendering.
Type | PreferredVertexType`[get]`
| Preferred vertex type for default conversion.

## Detailed Description

Generic interface for geometric objects. For XML support IGeometry object MUST provide constructor with XMLReader parameter!!!

## Member Function Documentation

bool VisiMath.Geometry.IGeometry.ContainsPosition | ( | Vector3 | pos | ) |

Checks if specified position is inside the object.

Parameters:

  pos | Position to check

Returns:
  True if vector is inside the object

Implemented in VisiMath.Geometry.AABox, VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.Cylinder, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.IndexedLines, VisiMath.Geometry.IndexedMesh, VisiMath.Geometry.IndexedQuads, VisiMath.Geometry.LineSegment3D, VisiMath.Geometry.LineList, VisiMath.Geometry.PolyLine, VisiMath.Geometry.OOBox, VisiMath.Geometry.Point3D, VisiMath.Geometry.Point3DList, VisiMath.Geometry.Pyramid, VisiMath.Geometry.Quad, VisiMath.Geometry.QuadList, VisiMath.Geometry.Ray, VisiMath.Geometry.Ring, VisiMath.Geometry.Sphere, VisiMath.Geometry.Triangle, and VisiMath.Geometry.TriangleList.

IGeometry VisiMath.Geometry.IGeometry.ConvertToPrimitive | ( | PrimitiveTypes | primType,
|  | float | quality = `0`,
|  | int | vertexlimit = `0`
| ) |  |

Converts object to new geometry object with specified primitive type and optionally with quality parameters.

Parameters:

  primType | Specified type of the primitive
  quality | Quality for parametric objects (0-1). Zero is simples possible, 1 maximal for the current dimension of the object. If vertexlimit parameter is used, quality will be reduced to fullfill maximal vertex budget
  vertexlimit | Maximal number of allowed vertices. If set to zero, there's no limit. Used for fully parametric objects or to reduce number of the vertices in complicated objects.

Returns:
  New object of specified type

Implemented in VisiMath.Geometry.BaseGeometry.

IGeometry VisiMath.Geometry.IGeometry.ConvertToPrimitive | ( | Type | vertextype,
|  | PrimitiveTypes | primType,
|  | float | quality = `0`,
|  | int | vertexlimit = `0`
| ) |  |

Converts object to new geometry object with specified primitive type and optionally with quality parameters.

Parameters:

  primType | Specified type of the primitive
  quality | Quality for parametric objects (0-1). Zero is simples possible, 1 maximal for the current dimension of the object. If vertexlimit parameter is used, quality will be reduced to fullfill maximal vertex budget
  vertexlimit | Maximal number of allowed vertices. If set to zero, there's no limit. Used for fully parametric objects or to reduce number of the vertices in complicated objects.
  vertextype | Required type of the vertex

Returns:
  New object of specified type

Implemented in VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.Point3D, and VisiMath.Geometry.Ray.

IGeometry VisiMath.Geometry.IGeometry.ConvertToPrimitive< VertexT > | ( | PrimitiveTypes | primType,
|  | float | quality = `0`,
|  | int | vertexlimit = `0`
| ) |  |

Converts object to new geometry object with specified primitive type and optionally with quality parameters.

Parameters:

  primType | Specified type of the primitive
  quality | Quality for parametric objects (0-1). Zero is simples possible, 1 maximal for the current dimension of the object. If vertexlimit parameter is used, quality will be reduced to fullfill maximal vertex budget
  vertexlimit | Maximal number of allowed vertices. If set to zero, there's no limit. Used for fully parametric objects or to reduce number of the vertices in complicated objects.

Template Parameters:

  VertexT | Required Vertex type

Returns:
  New object of specified type

Implemented in VisiMath.Geometry.BaseGeometry.

Type Constraints

  VertexT | : | IVertex |

float VisiMath.Geometry.IGeometry.Distance | ( | Point3D | point | ) |

Returns closest distance from the specified point to object.

Parameters:

  point | position

Returns:
  Closest distance to the object

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.Distance | ( | Ray | ray,
|  | bool | frontOnly = `false`
| ) |  |

Returns closest distance to the ray.

Parameters:

  ray | Ray to check distance to
  frontOnly | Check only objects in front of the origin

Returns:
  Closest distance to the ray, if frontOnly and object is behind the ray, returns NaN

Implemented in VisiMath.Geometry.AABox, VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.Cylinder, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.IndexedLines, VisiMath.Geometry.IndexedMesh, VisiMath.Geometry.IndexedQuads, VisiMath.Geometry.LineSegment3D, VisiMath.Geometry.LineList, VisiMath.Geometry.PolyLine, VisiMath.Geometry.OOBox, VisiMath.Geometry.Point3DList, VisiMath.Geometry.Quad, VisiMath.Geometry.QuadList, VisiMath.Geometry.Ray, VisiMath.Geometry.Sphere, VisiMath.Geometry.Triangle, and VisiMath.Geometry.TriangleList.

float VisiMath.Geometry.IGeometry.Distance | ( | IGeometry | obj | ) |

Returns closest distance from the generic geometric object.

Parameters:

  obj | Object to check distance with

Returns:
  Closest distance to the object

Implemented in VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.IndexedLines, VisiMath.Geometry.IndexedMesh, VisiMath.Geometry.IndexedQuads, VisiMath.Geometry.LineSegment3D, VisiMath.Geometry.LineList, VisiMath.Geometry.PolyLine, VisiMath.Geometry.Point3D, VisiMath.Geometry.Point3DList, VisiMath.Geometry.Quad, VisiMath.Geometry.QuadList, VisiMath.Geometry.Ray, VisiMath.Geometry.Sphere, VisiMath.Geometry.Triangle, and VisiMath.Geometry.TriangleList.

float VisiMath.Geometry.IGeometry.Distance | ( | Vector3 | pos | ) |

Returns closest distance from the specified point to object.

Parameters:

  pos | position

Returns:
  Closest distance to the object

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.Distance | ( | Point3DList | pl,
|  | int | index
| ) |  |

Returns closest distance from the specified point to object.

Parameters:

  pl | Point list
  index | Index of the point

Returns:
  Closest distance to the object

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.Distance | ( | ref Vector3 | pos | ) |

Returns closest distance from the specified point to object.

Parameters:

  pos | position

Returns:
  Closest distance to the object

Implemented in VisiMath.Geometry.AABox, VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.Cylinder, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.IndexedLines, VisiMath.Geometry.IndexedMesh, VisiMath.Geometry.IndexedQuads, VisiMath.Geometry.LineSegment3D, VisiMath.Geometry.LineList, VisiMath.Geometry.PolyLine, VisiMath.Geometry.OOBox, VisiMath.Geometry.Point3DList, VisiMath.Geometry.Quad, VisiMath.Geometry.QuadList, VisiMath.Geometry.Ray, VisiMath.Geometry.Sphere, VisiMath.Geometry.Triangle, and VisiMath.Geometry.TriangleList.

float VisiMath.Geometry.IGeometry.Distance | ( | IVertexArray | varray,
|  | int | index
| ) |  |

Returns closest distance from the specified point to object.

Parameters:

  varray | vertex array
  index | index of the point

Returns:
  Closest distance to the object

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceLines | ( | LineList | lines,
|  | int | startindex = `0`,
|  | int | count = `0`
| ) |  |

Returns closest distance to any of the lines from the set.

Parameters:

  lines | List of lines
  startindex | Starting index of points to check
  count | Number of elements to check (0 = all)

Returns:
  Closest distance

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceLines | ( | IndexedLines | lines,
|  | int | startindex = `0`,
|  | int | count = `0`
| ) |  |

Returns closest distance to any of the lines from the set.

Parameters:

  lines | Indexed list of lines
  startindex | Starting index of points to check
  count | Number of elements to check (0 = all)

Returns:
  Closest distance

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceLineSegment | ( | LineSegment3D | line | ) |

Returns closest distance to the line segment.

Parameters:

  line | Line segment

Returns:
  Closest distance

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceLineSegment | ( | LineList | lines,
|  | int | index
| ) |  |

Returns closest distance to the line segment.

Parameters:

  lines | Line list
  index | Index of the line in the list

Returns:
  Closest distance

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceLineSegment | ( | Vector3 | pos1,
|  | Vector3 | pos2
| ) |  |

Returns closest distance to the line segment.

Parameters:

  pos1 | Start of line segment
  pos2 | End of line segment

Returns:
  Closest distance

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceLineSegment | ( | ref Vector3 | pos1,
|  | ref Vector3 | pos2
| ) |  |

Returns closest distance to the line segment.

Parameters:

  pos1 | Start of the segment
  pos2 | End of the segment

Returns:
  Closest distance

Implemented in VisiMath.Geometry.AABox, VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.Cylinder, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.IndexedLines, VisiMath.Geometry.IndexedMesh, VisiMath.Geometry.IndexedQuads, VisiMath.Geometry.LineSegment3D, VisiMath.Geometry.LineList, VisiMath.Geometry.PolyLine, VisiMath.Geometry.OOBox, VisiMath.Geometry.Point3D, VisiMath.Geometry.Point3DList, VisiMath.Geometry.Quad, VisiMath.Geometry.QuadList, VisiMath.Geometry.Sphere, VisiMath.Geometry.Triangle, and VisiMath.Geometry.TriangleList.

float VisiMath.Geometry.IGeometry.DistancePoints | ( | IVertexArray | varray,
|  | int | startindex = `0`,
|  | int | count = `0`
| ) |  |

Returns closest distance from the set of points.

Parameters:

  varray | Vertex array
  startindex | Starting index of points to check
  count | Number of elements to check (0 = all)

Returns:
  Closest distance to the object

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistancePoints | ( | Point3DList | pl,
|  | int | startindex = `0`,
|  | int | count = `0`
| ) |  |

Returns closest distance from the set of points.

Parameters:

  pl | point list
  startindex | Starting index of points to check
  count | Number of elements to check (0 = all)

Returns:
  Closest distance to the object

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceQuad | ( | Quad | q | ) |

Returns closest distance to the quad.

Parameters:

  q | Quad

Returns:
  Closest distance

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceQuad | ( | Vector3 | p1,
|  | Vector3 | p2,
|  | Vector3 | p3,
|  | Vector3 | p4
| ) |  |

Returns closest distance to the quad.

Parameters:

  p1 | quad corner
  p2 | quad corner
  p3 | quad corner
  p4 | quad corner>

Returns:
  Closest distance

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceQuad | ( | ref Vector3 | p1,
|  | ref Vector3 | p2,
|  | ref Vector3 | p3,
|  | ref Vector3 | p4
| ) |  |

Returns closest distance to the quad.

Parameters:

  p1 | quad corner
  p2 | quad corner
  p3 | quad corner
  p4 | quad corner>

Returns:
  Closest distance

Implemented in VisiMath.Geometry.BaseGeometry, and VisiMath.Geometry.Cylinder.

float VisiMath.Geometry.IGeometry.DistanceQuad | ( | QuadList | ql,
|  | int | index
| ) |  |

Returns closest distance to the quad.

Parameters:

  ql | List of quads
  index | index of the quad

Returns:
  Closest distance

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceQuad | ( | IndexedQuads | ql,
|  | int | index
| ) |  |

Returns closest distance to the quad.

Parameters:

  ql | List of quads
  index | index of the quad

Returns:
  Closest distance

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceQuads | ( | QuadList | ql,
|  | int | startindex = `0`,
|  | int | count = `0`
| ) |  |

Returns closest distance to the set of quads.

Parameters:

  ql | Set of quads
  startindex | Starting index of points to check
  count | Number of elements to check (0 = all)

Returns:
  Closest distance

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceQuads | ( | IndexedQuads | ql,
|  | int | startindex = `0`,
|  | int | count = `0`
| ) |  |

Returns closest distance to the set of quads.

Parameters:

  ql | Set of quads
  startindex | Starting index of points to check
  count | Number of elements to check (0 = all)

Returns:
  Closest distance

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceSphere | ( | ref Vector3 | center,
|  | float | radius
| ) |  |

Returns closest distance to the sphere.

Parameters:

  center | center of the sphere
  radius | radius of the sphere

Returns:
  Closest distance

Implemented in VisiMath.Geometry.AABox, VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.Cylinder, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.IndexedLines, VisiMath.Geometry.IndexedMesh, VisiMath.Geometry.IndexedQuads, VisiMath.Geometry.LineSegment3D, VisiMath.Geometry.LineList, VisiMath.Geometry.PolyLine, VisiMath.Geometry.Point3D, VisiMath.Geometry.Point3DList, VisiMath.Geometry.Quad, VisiMath.Geometry.QuadList, VisiMath.Geometry.Sphere, VisiMath.Geometry.Triangle, and VisiMath.Geometry.TriangleList.

float VisiMath.Geometry.IGeometry.DistanceSphere | ( | Sphere | sph | ) |

Returns closest distance to the sphere.

Parameters:

  sph | Sphere object

Returns:
  Closest distance

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceSphere | ( | Vector3 | center,
|  | float | radius
| ) |  |

Returns closest distance to the sphere.

Parameters:

  center | center of the sphere
  radius | radius of the sphere

Returns:
  Closest distance

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceTriangle | ( | Triangle | tr | ) |

Returns closest distance to the triangle.

Parameters:

  tr | Triangle

Returns:
  Distance

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceTriangle | ( | TriangleList | tr,
|  | int | index
| ) |  |

Returns closest distance to the triangle.

Parameters:

  tr | TriangleList
  index | Index of the triangle

Returns:
  Distance

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceTriangle | ( | IndexedMesh | im,
|  | int | index
| ) |  |

Returns closest distance to the triangle.

Parameters:

  im | Indexed triangle list
  index | Index of the triangle

Returns:
  Distance

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceTriangle | ( | Vector3 | pos1,
|  | Vector3 | pos2,
|  | Vector3 | pos3
| ) |  |

Returns closest distance to the triangle.

Parameters:

  pos1 | First corner
  pos2 | Second corner
  pos3 | Third corner

Returns:
  Distance

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceTriangle | ( | ref Vector3 | pos1,
|  | ref Vector3 | pos2,
|  | ref Vector3 | pos3
| ) |  |

Returns closest distance to the triangle.

Parameters:

  pos1 | First corner
  pos2 | Second corner
  pos3 | Third corner

Returns:
  Distance

Implemented in VisiMath.Geometry.AABox, VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.Cylinder, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.IndexedLines, VisiMath.Geometry.IndexedMesh, VisiMath.Geometry.IndexedQuads, VisiMath.Geometry.LineSegment3D, VisiMath.Geometry.LineList, VisiMath.Geometry.PolyLine, VisiMath.Geometry.OOBox, VisiMath.Geometry.Point3D, VisiMath.Geometry.Point3DList, VisiMath.Geometry.Quad, VisiMath.Geometry.QuadList, VisiMath.Geometry.Sphere, VisiMath.Geometry.Triangle, and VisiMath.Geometry.TriangleList.

float VisiMath.Geometry.IGeometry.DistanceTriangles | ( | TriangleList | tlist,
|  | int | startindex = `0`,
|  | int | count = `0`
| ) |  |

Returns closest distance to the set of triangles.

Parameters:

  tlist | Set of triangles
  startindex | Starting index of points to check
  count | Number of elements to check (0 = all)

Returns:
  Closest distance

Implemented in VisiMath.Geometry.BaseGeometry.

float VisiMath.Geometry.IGeometry.DistanceTriangles | ( | IndexedMesh | im,
|  | int | startindex = `0`,
|  | int | count = `0`
| ) |  |

Returns closest distance to the set of triangles.

Parameters:

  im | Set of triangles
  startindex | Starting index of points to check
  count | Number of elements to check (0 = all)

Returns:
  Closest distance

Implemented in VisiMath.Geometry.BaseGeometry.

IGeometry VisiMath.Geometry.IGeometry.GetCopy | ( |  | ) |

Returns copy of the geometric data.

Returns:
  Full copy of the geometry

Implemented in VisiMath.Geometry.AABox, VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.ConvexHull, VisiMath.Geometry.Cylinder, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.IndexedLines, VisiMath.Geometry.IndexedMesh, VisiMath.Geometry.IndexedQuads, VisiMath.Geometry.LineSegment3D, VisiMath.Geometry.LineList, VisiMath.Geometry.PolyLine, VisiMath.Geometry.OOBox, VisiMath.Geometry.Point3D, VisiMath.Geometry.Point3DList, VisiMath.Geometry.Quad, VisiMath.Geometry.QuadList, VisiMath.Geometry.Ray, VisiMath.Geometry.Sphere, VisiMath.Geometry.Triangle, and VisiMath.Geometry.TriangleList.

bool VisiMath.Geometry.IGeometry.GetIntersectionInfo | ( | Ray | obj,
|  | IntersectionList | ilist
| ) |  |

Check for intersection and adds intersection info if there was any intersection.

Parameters:

  ilist | List for intersections
  obj | Ray object

Returns:
  True if there was an intersection

Implemented in VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.IndexedMesh, VisiMath.Geometry.IndexedQuads, VisiMath.Geometry.Point3DList, VisiMath.Geometry.QuadList, and VisiMath.Geometry.TriangleList.

bool VisiMath.Geometry.IGeometry.GetIntersectionInfo | ( | Ray | obj,
|  | ref IIntersectionInfo | inters
| ) |  |

Check for intersection and fills intersection info if intersection is closer to the origin of the ray then value before.

Parameters:

  inters | Data structure with intersection info
  obj | Ray object

Returns:
  True if there was an intersection and it was closer then previous stored

Implemented in VisiMath.Geometry.AABox, VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.Cylinder, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.IndexedLines, VisiMath.Geometry.IndexedMesh, VisiMath.Geometry.IndexedQuads, VisiMath.Geometry.LineSegment3D, VisiMath.Geometry.LineList, VisiMath.Geometry.PolyLine, VisiMath.Geometry.OOBox, VisiMath.Geometry.Point3D, VisiMath.Geometry.Point3DList, VisiMath.Geometry.Quad, VisiMath.Geometry.QuadList, VisiMath.Geometry.Ray, VisiMath.Geometry.Sphere, VisiMath.Geometry.Triangle, and VisiMath.Geometry.TriangleList.

float VisiMath.Geometry.IGeometry.IntersectionDistance | ( | Ray | ray | ) |

Returns distance to the intersection between object and ray.

Parameters:

  ray |

Returns:
  Distance from the origin to the point of intersection or double.NaN if no intersection

Implemented in VisiMath.Geometry.BaseGeometry, and VisiMath.Geometry.GeoContainer< T >.

Vector3 VisiMath.Geometry.IGeometry.IntersectionPoint | ( | Ray | ray | ) |

Returns closest point of the intersection between object and ray.

Parameters:

  ray |

Returns:
  Point of intersection or invalid Vector3 (with double.NaN as values)

Implemented in VisiMath.Geometry.BaseGeometry, and VisiMath.Geometry.GeoContainer< T >.

Vector3 VisiMath.Geometry.IGeometry.IntersectionPoint | ( | IGeometry | obj | ) |

Returns first found point of the intersection bewteen objects.

Parameters:

  obj | Object to check

Returns:
  Position of the first found intersection

Implemented in VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.Point3D, and VisiMath.Geometry.Point3DList.

bool VisiMath.Geometry.IGeometry.Intersects | ( | Sphere | sph | ) |

Checks for intersection between object and sphere.

Parameters:

  sph | Sphere object

Returns:
  True if sphere intersects the object

Implemented in VisiMath.Geometry.BaseGeometry.

bool VisiMath.Geometry.IGeometry.Intersects | ( | IGeometry | obj | ) |

Checks for intersection with generic geo object.

Parameters:

  obj | Object to check with

Returns:
  True if intersection exists

Implemented in VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.Point3D, VisiMath.Geometry.Point3DList, and VisiMath.Geometry.Ray.

bool VisiMath.Geometry.IGeometry.Intersects | ( | Ray | ray | ) |

Checks for intersection between object and ray.

Parameters:

  ray |

Returns:
  True if ray intersects the object

Implemented in VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.GeoContainer< T >, and VisiMath.Geometry.Ray.

float VisiMath.Geometry.IGeometry.IntersectsMoving | ( | float | radius,
|  | Ray | ray,
|  | float | maxdistance
| ) |  |

Checks for intersection between object and moving sphere.

param name="radius">Radius of the sphere

Parameters:

  maxdistance | Maximal distance to travel
  ray | Ray describing movement of the sphere

Returns:
  Distance to the intersection or -1 if no intersection exists

Implemented in VisiMath.Geometry.AABox, VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.Cylinder, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.IndexedLines, VisiMath.Geometry.IndexedMesh, VisiMath.Geometry.IndexedQuads, VisiMath.Geometry.LineSegment3D, VisiMath.Geometry.LineList, VisiMath.Geometry.PolyLine, VisiMath.Geometry.OOBox, VisiMath.Geometry.Point3D, VisiMath.Geometry.Point3DList, VisiMath.Geometry.Quad, VisiMath.Geometry.QuadList, VisiMath.Geometry.Ray, VisiMath.Geometry.Sphere, VisiMath.Geometry.Triangle, and VisiMath.Geometry.TriangleList.

float VisiMath.Geometry.IGeometry.IntersectsMoving | ( | Sphere | sph,
|  | Ray | ray,
|  | float | maxdistance
| ) |  |

Checks for intersection between object and moving sphere.

Parameters:

  sph | Sphere object
  maxdistance | Maximal distance to travel
  ray | Ray describing movement of the sphere

Returns:
  Distance to the intersection or -1 if no intersection exists

Implemented in VisiMath.Geometry.BaseGeometry.

IndexedMesh VisiMath.Geometry.IGeometry.ToIndexedMesh | ( | float | quality = `0`,
|  | int | vertexlimit = `0`
| ) |  |

Convert object to indexed triangle mesh. Valid only for surface based objects, otherwise returns null.

Returns:
  New geometry object containing triangle faces of the object surface

Parameters:

  quality | Quality for parametric objects (0-1). Zero is simples possible, 1 maximal for the current dimension of the object. If vertexlimit parameter is used, quality will be reduced to fullfill maximal vertex budget
  vertexlimit | Maximal number of allowed vertices. If set to zero, there's no limit. Used for fully parametric objects or to reduce number of the vertices in complicated objects.

Implemented in VisiMath.Geometry.BaseGeometry.

IndexedMesh VisiMath.Geometry.IGeometry.ToIndexedMesh | ( | Type | vertextype,
|  | float | quality = `0`,
|  | int | vertexlimit = `0`
| ) |  |

Convert object to indexed triangle mesh. Valid only for surface based objects, otherwise returns null.

Returns:
  New geometry object containing triangle faces of the object surface

Parameters:

  quality | Quality for parametric objects (0-1). Zero is simples possible, 1 maximal for the current dimension of the object. If vertexlimit parameter is used, quality will be reduced to fullfill maximal vertex budget
  vertexlimit | Maximal number of allowed vertices. If set to zero, there's no limit. Used for fully parametric objects or to reduce number of the vertices in complicated objects.
  vertextype | Required type of the vertex

Implemented in VisiMath.Geometry.AABox, VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.Cylinder, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.IndexedLines, VisiMath.Geometry.IndexedMesh, VisiMath.Geometry.IndexedQuads, VisiMath.Geometry.LineSegment3D, VisiMath.Geometry.LineList, VisiMath.Geometry.PolyLine, VisiMath.Geometry.OOBox, VisiMath.Geometry.Point3D, VisiMath.Geometry.Point3DList, VisiMath.Geometry.Quad, VisiMath.Geometry.QuadList, VisiMath.Geometry.Ray, VisiMath.Geometry.Sphere, VisiMath.Geometry.Triangle, and VisiMath.Geometry.TriangleList.

IndexedMesh VisiMath.Geometry.IGeometry.ToIndexedMesh< VertexT > | ( | float | quality = `0`,
|  | int | vertexlimit = `0`
| ) |  |

Convert object to indexed triangle mesh. Valid only for surface based objects, otherwise returns null.

Returns:
  New geometry object containing triangle faces of the object surface

Parameters:

  quality | Quality for parametric objects (0-1). Zero is simples possible, 1 maximal for the current dimension of the object. If vertexlimit parameter is used, quality will be reduced to fullfill maximal vertex budget

Template Parameters:

  VertexT | Required Vertex type

Parameters:

  vertexlimit | Maximal number of allowed vertices. If set to zero, there's no limit. Used for fully parametric objects or to reduce number of the vertices in complicated objects.

Implemented in VisiMath.Geometry.BaseGeometry.

Type Constraints

  VertexT | : | IVertex |

LineList VisiMath.Geometry.IGeometry.ToLines | ( | Type | vertextype,
|  | float | quality = `0`,
|  | int | vertexlimit = `0`
| ) |  |

Convert object to list of lines.

Returns:
  New geometry object containing edges of the object

Parameters:

  quality | Quality for parametric objects (0-1). Zero is simples possible, 1 maximal for the current dimension of the object. If vertexlimit parameter is used, quality will be reduced to fullfill maximal vertex budget
  vertexlimit | Maximal number of allowed vertices. If set to zero, there's no limit. Used for fully parametric objects or to reduce number of the vertices in complicated objects.
  vertextype | Required type of the vertex

Implemented in VisiMath.Geometry.AABox, VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.Cylinder, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.IndexedLines, VisiMath.Geometry.IndexedMesh, VisiMath.Geometry.IndexedQuads, VisiMath.Geometry.LineSegment3D, VisiMath.Geometry.LineList, VisiMath.Geometry.PolyLine, VisiMath.Geometry.OOBox, VisiMath.Geometry.Point3D, VisiMath.Geometry.Point3DList, VisiMath.Geometry.Quad, VisiMath.Geometry.QuadList, VisiMath.Geometry.Ray, VisiMath.Geometry.Sphere, VisiMath.Geometry.Triangle, and VisiMath.Geometry.TriangleList.

LineList VisiMath.Geometry.IGeometry.ToLines | ( | float | quality = `0`,
|  | int | vertexlimit = `0`
| ) |  |

Convert object to list of lines.

Returns:
  New geometry object containing edges of the object

Parameters:

  quality | Quality for parametric objects (0-1). Zero is simples possible, 1 maximal for the current dimension of the object. If vertexlimit parameter is used, quality will be reduced to fullfill maximal vertex budget
  vertexlimit | Maximal number of allowed vertices. If set to zero, there's no limit. Used for fully parametric objects or to reduce number of the vertices in complicated objects.

Implemented in VisiMath.Geometry.BaseGeometry.

LineList VisiMath.Geometry.IGeometry.ToLines< VertexT > | ( | float | quality = `0`,
|  | int | vertexlimit = `0`
| ) |  |

Convert object to list of lines.

Returns:
  New geometry object containing edges of the object

Parameters:

  quality | Quality for parametric objects (0-1). Zero is simples possible, 1 maximal for the current dimension of the object. If vertexlimit parameter is used, quality will be reduced to fullfill maximal vertex budget

Template Parameters:

  VertexT | Required Vertex type

Parameters:

  vertexlimit | Maximal number of allowed vertices. If set to zero, there's no limit. Used for fully parametric objects or to reduce number of the vertices in complicated objects.

Implemented in VisiMath.Geometry.BaseGeometry.

Type Constraints

  VertexT | : | IVertex |

Point3DList VisiMath.Geometry.IGeometry.ToPoints | ( | Type | vertextype,
|  | float | quality = `0`,
|  | int | vertexlimit = `0`
| ) |  |

Convert object to list of points.

Returns:
  New geometry object containing point based definition of the object

Parameters:

  quality | Quality for parametric objects (0-1). Zero is simples possible, 1 maximal for the current dimension of the object. If vertexlimit parameter is used, quality will be reduced to fullfill maximal vertex budget
  vertexlimit | Maximal number of allowed vertices. If set to zero, there's no limit. Used for fully parametric objects or to reduce number of the vertices in complicated objects.
  vertextype | Required type of the vertex

Implemented in VisiMath.Geometry.AABox, VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.Cylinder, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.IndexedLines, VisiMath.Geometry.IndexedMesh, VisiMath.Geometry.IndexedQuads, VisiMath.Geometry.LineSegment3D, VisiMath.Geometry.LineList, VisiMath.Geometry.PolyLine, VisiMath.Geometry.OOBox, VisiMath.Geometry.Point3D, VisiMath.Geometry.Point3DList, VisiMath.Geometry.Quad, VisiMath.Geometry.QuadList, VisiMath.Geometry.Ray, VisiMath.Geometry.Sphere, VisiMath.Geometry.Triangle, and VisiMath.Geometry.TriangleList.

Point3DList VisiMath.Geometry.IGeometry.ToPoints | ( | float | quality = `0`,
|  | int | vertexlimit = `0`
| ) |  |

Convert object to list of points.

Returns:
  New geometry object containing point based definition of the object

Parameters:

  quality | Quality for parametric objects (0-1). Zero is simples possible, 1 maximal for the current dimension of the object. If vertexlimit parameter is used, quality will be reduced to fullfill maximal vertex budget
  vertexlimit | Maximal number of allowed vertices. If set to zero, there's no limit. Used for fully parametric objects or to reduce number of the vertices in complicated objects.

Implemented in VisiMath.Geometry.BaseGeometry.

Point3DList VisiMath.Geometry.IGeometry.ToPoints< VertexT > | ( | float | quality = `0`,
|  | int | vertexlimit = `0`
| ) |  |

Convert object to list of points.

Returns:
  New geometry object containing point based definition of the object

Parameters:

  quality | Quality for parametric objects (0-1). Zero is simples possible, 1 maximal for the current dimension of the object. If vertexlimit parameter is used, quality will be reduced to fullfill maximal vertex budget

Template Parameters:

  VertexT | Required Vertex type

Parameters:

  vertexlimit | Maximal number of allowed vertices. If set to zero, there's no limit. Used for fully parametric objects or to reduce number of the vertices in complicated objects.

Implemented in VisiMath.Geometry.BaseGeometry.

Type Constraints

  VertexT | : | IVertex |

TriangleList VisiMath.Geometry.IGeometry.ToTriangles | ( | float | quality = `0`,
|  | int | vertexlimit = `0`
| ) |  |

Convert object to list of triangles. Valid only for surface based objects, otherwise returns null.

Returns:
  New geometry object containing triangle faces of the object surface.

Parameters:

  quality | Quality for parametric objects (0-1). Zero is simples possible, 1 maximal for the current dimension of the object. If vertexlimit parameter is used, quality will be reduced to fullfill maximal vertex budget
  vertexlimit | Maximal number of allowed vertices. If set to zero, there's no limit. Used for fully parametric objects or to reduce number of the vertices in complicated objects.

Implemented in VisiMath.Geometry.BaseGeometry.

TriangleList VisiMath.Geometry.IGeometry.ToTriangles | ( | Type | vertextype,
|  | float | quality = `0`,
|  | int | vertexlimit = `0`
| ) |  |

Convert object to list of triangles. Valid only for surface based objects, otherwise returns null.

Returns:
  New geometry object containing triangle faces of the object surface.

Parameters:

  quality | Quality for parametric objects (0-1). Zero is simples possible, 1 maximal for the current dimension of the object. If vertexlimit parameter is used, quality will be reduced to fullfill maximal vertex budget
  vertexlimit | Maximal number of allowed vertices. If set to zero, there's no limit. Used for fully parametric objects or to reduce number of the vertices in complicated objects.
  vertextype | Required type of the vertex

Implemented in VisiMath.Geometry.AABox, VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.Cylinder, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.IndexedLines, VisiMath.Geometry.IndexedMesh, VisiMath.Geometry.IndexedQuads, VisiMath.Geometry.LineSegment3D, VisiMath.Geometry.LineList, VisiMath.Geometry.PolyLine, VisiMath.Geometry.OOBox, VisiMath.Geometry.Point3D, VisiMath.Geometry.Point3DList, VisiMath.Geometry.Quad, VisiMath.Geometry.QuadList, VisiMath.Geometry.Ray, VisiMath.Geometry.Sphere, VisiMath.Geometry.Triangle, and VisiMath.Geometry.TriangleList.

TriangleList VisiMath.Geometry.IGeometry.ToTriangles< VertexT > | ( | float | quality = `0`,
|  | int | vertexlimit = `0`
| ) |  |

Convert object to list of triangles. Valid only for surface based objects, otherwise returns null.

Returns:
  New geometry object containing triangle faces of the object surface.

Parameters:

  quality | Quality for parametric objects (0-1). Zero is simples possible, 1 maximal for the current dimension of the object. If vertexlimit parameter is used, quality will be reduced to fullfill maximal vertex budget

Template Parameters:

  VertexT | Required Vertex type

Parameters:

  vertexlimit | Maximal number of allowed vertices. If set to zero, there's no limit. Used for fully parametric objects or to reduce number of the vertices in complicated objects.

Implemented in VisiMath.Geometry.BaseGeometry.

Type Constraints

  VertexT | : | IVertex |

## Property Documentation

Vector3 VisiMath.Geometry.IGeometry.Center`[get]`

Center of the object.

Implemented in VisiMath.Geometry.AABox, VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.ConvexHull, VisiMath.Geometry.Cylinder, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.Geometry, VisiMath.Geometry.OOBox, VisiMath.Geometry.Point3D, VisiMath.Geometry.Pyramid, VisiMath.Geometry.Ray, VisiMath.Geometry.Ring, and VisiMath.Geometry.Sphere.

bool VisiMath.Geometry.IGeometry.IsContainer`[get]`

If geometry object is container, it's made of several joined objects.

Returns:
  True if container

Implemented in VisiMath.Geometry.AABox, VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.Cylinder, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.IndexedLines, VisiMath.Geometry.IndexedMesh, VisiMath.Geometry.IndexedQuads, VisiMath.Geometry.LineSegment3D, VisiMath.Geometry.LineList, VisiMath.Geometry.PolyLine, VisiMath.Geometry.OOBox, VisiMath.Geometry.Point3D, VisiMath.Geometry.Point3DList, VisiMath.Geometry.Quad, VisiMath.Geometry.QuadList, VisiMath.Geometry.Ray, VisiMath.Geometry.Sphere, VisiMath.Geometry.Triangle, and VisiMath.Geometry.TriangleList.

bool VisiMath.Geometry.IGeometry.IsPrimitive`[get]`

Is object geometric renderable primitive from enumaration PrimitiveTypes?

Implemented in VisiMath.Geometry.AABox, VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.Cylinder, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.IndexedLines, VisiMath.Geometry.IndexedMesh, VisiMath.Geometry.IndexedQuads, VisiMath.Geometry.LineSegment3D, VisiMath.Geometry.LineList, VisiMath.Geometry.PolyLine, VisiMath.Geometry.OOBox, VisiMath.Geometry.Point3D, VisiMath.Geometry.Point3DList, VisiMath.Geometry.Quad, VisiMath.Geometry.QuadList, VisiMath.Geometry.Ray, VisiMath.Geometry.Sphere, VisiMath.Geometry.Triangle, and VisiMath.Geometry.TriangleList.

PrimitiveTypes VisiMath.Geometry.IGeometry.PreferredPrimitive`[get]`

Preferred primitive type for rendering.

Implemented in VisiMath.Geometry.AABox, VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.Cylinder, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.IndexedLines, VisiMath.Geometry.IndexedMesh, VisiMath.Geometry.IndexedQuads, VisiMath.Geometry.LineSegment3D, VisiMath.Geometry.LineList, VisiMath.Geometry.PolyLine, VisiMath.Geometry.OOBox, VisiMath.Geometry.Point3D, VisiMath.Geometry.Point3DList, VisiMath.Geometry.Quad, VisiMath.Geometry.QuadList, VisiMath.Geometry.Ray, VisiMath.Geometry.Sphere, VisiMath.Geometry.Triangle, and VisiMath.Geometry.TriangleList.

Type VisiMath.Geometry.IGeometry.PreferredVertexType`[get]`

Preferred vertex type for default conversion.

Implemented in VisiMath.Geometry.AABox, VisiMath.Geometry.BaseGeometry, VisiMath.Geometry.Cylinder, VisiMath.Geometry.GeoContainer< T >, VisiMath.Geometry.Geometry, VisiMath.Geometry.OOBox, VisiMath.Geometry.Ray, and VisiMath.Geometry.Sphere.

The documentation for this interface was generated from the following file:

- IGeometry.cs

All Classes Namespaces Files Functions Variables Enumerations Properties Events