# DataExchange
TKVRML
VrmlData

# VrmlData_IndexedFaceSet Class Reference

`#include <VrmlData_IndexedFaceSet.hxx>`

Inheritance diagram for VrmlData_IndexedFaceSet:

[legend]

## Public Member Functions

| VrmlData_IndexedFaceSet ()
| VrmlData_IndexedFaceSet (const VrmlData_Scene &theScene, const char *theName, const Standard_Boolean isCCW=Standard_True, const Standard_Boolean isSolid=Standard_True, const Standard_Boolean isConvex=Standard_True, const Standard_Real theCreaseAngle=0.)
const | Handle (VrmlData_Normal)&Normals() const
const | Handle (VrmlData_Color)&Colors() const
const | Handle (VrmlData_TextureCoordinate)&TextureCoords() const
const | Handle (VrmlData_Coordinate)&Coordinates() const
size_t | Polygons (const Standard_Integer **&arrPolygons) const
Standard_Integer | Polygon (const Standard_Integer iFace, const Standard_Integer *&outIndice)
void | SetCoordinates (const Handle(VrmlData_Coordinate)&theCoord)
void | SetPolygons (const Standard_Integer nPolygons, const Standard_Integer **thePolygons)
size_t | ArrayNormalInd (const Standard_Integer **&arrNormalInd) const
Standard_Integer | IndiceNormals (const Standard_Integer iFace, const Standard_Integer *&outIndice)
Standard_EXPORT gp_XYZ | GetNormal (const Standard_Integer iFace, const Standard_Integer iVertex)
void | SetNormalInd (const Standard_Integer nIndice, const Standard_Integer **theIndice)
void | SetNormals (const Handle(VrmlData_Normal)&theNormals)
void | SetNormalPerVertex (const Standard_Boolean isNormalPerVertex)
size_t | ArrayColorInd (const Standard_Integer **&arrColorInd) const
Standard_EXPORT Quantity_Color | GetColor (const Standard_Integer iFace, const Standard_Integer iVertex)
void | SetColorInd (const Standard_Integer nIndice, const Standard_Integer **theIndice)
void | SetColors (const Handle(VrmlData_Color)&theColors)
void | SetColorPerVertex (const Standard_Boolean isColorPerVertex)
size_t | ArrayTextureCoordInd (const Standard_Integer **&arrTextureCoordInd) const
void | SetTextureCoordInd (const Standard_Integer nIndice, const Standard_Integer **theIndice)
void | SetTextureCoords (const Handle(VrmlData_TextureCoordinate)&tc)
virtual Standard_EXPORT const | Handle (TopoDS_TShape)&TShape()
virtual Standard_EXPORT | Handle (VrmlData_Node) Clone(const Handle(VrmlData_Node)&theOther) const
virtual Standard_EXPORT VrmlData_ErrorStatus | Read (VrmlData_InBuffer &theBuffer)
virtual Standard_EXPORT VrmlData_ErrorStatus | Write (const char *thePrefix) const
virtual Standard_EXPORT Standard_Boolean | IsDefault () const

## Private Member Functions

| Handle (VrmlData_Coordinate) myCoords
| Handle (VrmlData_Normal) myNormals
| Handle (VrmlData_Color) myColors
| Handle (VrmlData_TextureCoordinate) myTxCoords

## Private Attributes

const Standard_Integer ** | myArrPolygons
const Standard_Integer ** | myArrNormalInd
const Standard_Integer ** | myArrColorInd
const Standard_Integer ** | myArrTextureInd
Standard_Size | myNbPolygons
Standard_Size | myNbNormals
Standard_Size | myNbColors
Standard_Size | myNbTextures
Standard_Boolean | myNormalPerVertex
Standard_Boolean | myColorPerVertex

## Detailed Description

Implementation of IndexedFaceSet node

## Constructor & Destructor Documentation

VrmlData_IndexedFaceSet::VrmlData_IndexedFaceSet | ( |  | ) | `[inline]`

| Empty constructor

VrmlData_IndexedFaceSet::VrmlData_IndexedFaceSet | ( | const VrmlData_Scene & | theScene,
|  | const char * | theName,
|  | const Standard_Boolean | isCCW = `Standard_True`,
|  | const Standard_Boolean | isSolid = `Standard_True`,
|  | const Standard_Boolean | isConvex = `Standard_True`,
|  | const Standard_Real | theCreaseAngle = `0.`
| ) | `[inline]`

| Constructor

## Member Function Documentation

size_t VrmlData_IndexedFaceSet::ArrayColorInd | ( | const Standard_Integer **& | arrColorInd | ) | const`[inline]`

Query the array of color indice

Parameters:

  | arrColorInd | `[out]` array of colorIndex as it is described in VRML2.0 spec

Returns:
  Number of integers in the array arrColorInd.

size_t VrmlData_IndexedFaceSet::ArrayNormalInd | ( | const Standard_Integer **& | arrNormalInd | ) | const`[inline]`

Query the array of normal indice

Parameters:

  | arrNormalInd | `[out]` array of normalIndex as it is described in VRML2.0 spec

Returns:
  Number of integers in the array arrNormalInd.

size_t VrmlData_IndexedFaceSet::ArrayTextureCoordInd | ( | const Standard_Integer **& | arrTextureCoordInd | ) | const`[inline]`

Query the array of texture coordinate indice

Parameters:

  | arrTextureCoordInd | `[out]` array of texCoordIndex as it is described in VRML2.0 spec

Returns:
  Number of integers in the array texCoordIndex.

Standard_EXPORT Quantity_Color VrmlData_IndexedFaceSet::GetColor | ( | const Standard_Integer | iFace,
|  | const Standard_Integer | iVertex
| ) |

Query a color for one node in the given element. The color is interpreted according to fields myColors, myArrColorInd, myColorPerVertex, as defined in VRML 2.0.

Parameters:

  | iFace | rank of the polygon [0 .. N-1]
  | iVertex | rank of the vertex in the polygon [0 .. M-1]. This parameter is ignored if (myColorPerVertex == False)

Returns:
  Color value (RGB); if the color is indefinite then returns (0., 0., 0.)

Standard_EXPORT gp_XYZ VrmlData_IndexedFaceSet::GetNormal | ( | const Standard_Integer | iFace,
|  | const Standard_Integer | iVertex
| ) |

Query a normal for one node in the given element. The normal is interpreted according to fields myNormals, myArrNormalInd, myNormalPerVertex, as defined in VRML 2.0.

Parameters:

  | iFace | rank of the polygon [0 .. N-1]
  | iVertex | rank of the vertex in the polygon [0 .. M-1]. This parameter is ignored if (myNormalPerVertex == False)

Returns:
  Normal vector; if the normal is indefinite then returns (0., 0., 0.)

VrmlData_IndexedFaceSet::Handle | ( | VrmlData_TextureCoordinate |  | ) | `[private]`

VrmlData_IndexedFaceSet::Handle | ( | VrmlData_Color |  | ) | `[private]`

VrmlData_IndexedFaceSet::Handle | ( | VrmlData_Normal |  | ) | `[private]`

VrmlData_IndexedFaceSet::Handle | ( | VrmlData_Coordinate |  | ) | `[private]`

If the normals are not defined, here we compute them from the polygons.

Parameters:

  theArray

  Array of float values having length:
  - if myNormalPerVertex==TRUE : 3 * myCoords->Length()
  - if myNormalPerVertex==FALSE: 9 * number_of_triangles

virtual Standard_EXPORT VrmlData_IndexedFaceSet::Handle | ( | VrmlData_Node |  | ) | const`[virtual]`

| Create a copy of this node. If the parameter is null, a new copied node is created. Otherwise new node is not created, but rather the given one is modified. Reimplemented from VrmlData_Node.

virtual Standard_EXPORT const VrmlData_IndexedFaceSet::Handle | ( | TopoDS_TShape |  | ) | `[virtual]`

| Query the shape. This method checks the flag myIsModified; if True it should rebuild the shape presentation. Implements VrmlData_Geometry.

const VrmlData_IndexedFaceSet::Handle | ( | VrmlData_Coordinate |  | ) | const`[inline]`

| Query the Coordinates.

const VrmlData_IndexedFaceSet::Handle | ( | VrmlData_TextureCoordinate |  | ) | const`[inline]`

| Query the Texture Coordinates.

const VrmlData_IndexedFaceSet::Handle | ( | VrmlData_Color |  | ) | const`[inline]`

| Query the Colors.

const VrmlData_IndexedFaceSet::Handle | ( | VrmlData_Normal |  | ) | const`[inline]`

| Query the Normals.

Standard_Integer VrmlData_IndexedFaceSet::IndiceNormals | ( | const Standard_Integer | iFace,
|  | const Standard_Integer *& | outIndice
| ) | `[inline]`

Query normals indice for one face. This method should be called after checking myArrNormalInd != NULL, otherwise exception will be thrown.

Parameters:

  | iFace | rank of the face [0 .. N-1]
  | outIndice | `[out]` array of normals indice

Returns:
  number of indice in the array - the dimension of outIndice array

virtual Standard_EXPORT Standard_Boolean VrmlData_IndexedFaceSet::IsDefault | ( |  | ) | const`[virtual]`

| Returns True if the node is default, so that it should not be written. Reimplemented from VrmlData_Node.

Standard_Integer VrmlData_IndexedFaceSet::Polygon | ( | const Standard_Integer | iFace,
|  | const Standard_Integer *& | outIndice
| ) | `[inline]`

Query one polygon.

Parameters:

  | iFace | rank of the polygon [0 .. N-1]
  | outIndice | `[out]` array of vertex indice

Returns:
  number of vertice in the polygon - the dimension of outIndice array

size_t VrmlData_IndexedFaceSet::Polygons | ( | const Standard_Integer **& | arrPolygons | ) | const`[inline]`

| Query the array of polygons

virtual Standard_EXPORT VrmlData_ErrorStatus VrmlData_IndexedFaceSet::Read | ( | VrmlData_InBuffer & | theBuffer | ) | `[virtual]`

| Read the Node from input stream. Implements VrmlData_Node.

void VrmlData_IndexedFaceSet::SetColorInd | ( | const Standard_Integer | nIndice,
|  | const Standard_Integer ** | theIndice
| ) | `[inline]`

| Set the colors array of indice

void VrmlData_IndexedFaceSet::SetColorPerVertex | ( | const Standard_Boolean | isColorPerVertex | ) | `[inline]`

| Set the boolean value "colorPerVertex"

void VrmlData_IndexedFaceSet::SetColors | ( | const Handle(VrmlData_Color)& | theColors | ) | `[inline]`

| Set the Color node

void VrmlData_IndexedFaceSet::SetCoordinates | ( | const Handle(VrmlData_Coordinate)& | theCoord | ) | `[inline]`

| Set the nodes

void VrmlData_IndexedFaceSet::SetNormalInd | ( | const Standard_Integer | nIndice,
|  | const Standard_Integer ** | theIndice
| ) | `[inline]`

| Set the normals array of indice

void VrmlData_IndexedFaceSet::SetNormalPerVertex | ( | const Standard_Boolean | isNormalPerVertex | ) | `[inline]`

| Set the boolean value "normalPerVertex"

void VrmlData_IndexedFaceSet::SetNormals | ( | const Handle(VrmlData_Normal)& | theNormals | ) | `[inline]`

| Set the normals node

void VrmlData_IndexedFaceSet::SetPolygons | ( | const Standard_Integer | nPolygons,
|  | const Standard_Integer ** | thePolygons
| ) | `[inline]`

| Set the polygons

void VrmlData_IndexedFaceSet::SetTextureCoordInd | ( | const Standard_Integer | nIndice,
|  | const Standard_Integer ** | theIndice
| ) | `[inline]`

| Set the TexCoordiante array of indice

void VrmlData_IndexedFaceSet::SetTextureCoords | ( | const Handle(VrmlData_TextureCoordinate)& | tc | ) | `[inline]`

| Set the Texture Coordinate node

virtual Standard_EXPORT VrmlData_ErrorStatus VrmlData_IndexedFaceSet::Write | ( | const char * | thePrefix | ) | const`[virtual]`

| Write the Node to output stream. Reimplemented from VrmlData_Node.

## Field Documentation

const Standard_Integer** VrmlData_IndexedFaceSet::myArrColorInd `[private]`

const Standard_Integer** VrmlData_IndexedFaceSet::myArrNormalInd `[private]`

const Standard_Integer** VrmlData_IndexedFaceSet::myArrPolygons `[private]`

const Standard_Integer** VrmlData_IndexedFaceSet::myArrTextureInd `[private]`

Standard_Boolean VrmlData_IndexedFaceSet::myColorPerVertex `[private]`

Standard_Size VrmlData_IndexedFaceSet::myNbColors `[private]`

Standard_Size VrmlData_IndexedFaceSet::myNbNormals `[private]`

Standard_Size VrmlData_IndexedFaceSet::myNbPolygons `[private]`

Standard_Size VrmlData_IndexedFaceSet::myNbTextures `[private]`

Standard_Boolean VrmlData_IndexedFaceSet::myNormalPerVertex `[private]`

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

- VrmlData_IndexedFaceSet.hxx