///////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2002-2025, Open Design Alliance (the "Alliance").
// All rights reserved.
//
// This software and its documentation and related materials are owned by
// the Alliance. The software may only be incorporated into application
// programs owned by members of the Alliance, subject to a signed
// Membership Agreement and Supplemental Software License Agreement with the
// Alliance. The structure and organization of this software are the valuable
// trade secrets of the Alliance and its suppliers. The software is also
// protected by copyright law and international treaty provisions. Application
// programs incorporating this software must include the following statement
// with their copyright notices:
//
// This application incorporates Open Design Alliance software pursuant to a license
// agreement with Open Design Alliance.
// Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance.
// All rights reserved.
//
// By use of this software, its documentation or related materials, you
// acknowledge and accept the above terms.
///////////////////////////////////////////////////////////////////////////////
#ifndef _ODTV_ENTITYGEOMETRYSHELL_H_INCLUDED_
#define _ODTV_ENTITYGEOMETRYSHELL_H_INCLUDED_
#include "Tv.h"
#include "TvIObject.h"
#include "Int32Array.h"
#include "UInt32Array.h"
#include "UInt8Array.h"
#include "DoubleArray.h"
#include "TvTraitsDef.h"
#include "TvMaterial.h"
#include "TvMaterialsTraits.h"
/** \details
This is an interface class for an OdTvShellData object.
\sa
*/
class ODTV_EXPORT OdTvShellData : public OdTvIObject
{
public:
/** \details
Types of geometry.
*/
enum FaceCulling
{
kInherited = 0, // Inherits from the device property ("Discard back faces").
kOn = 1, // Enable culling.
kOff = 2 // Disable culling.
};
/** \details
Sets the geometry data of the shell.
\param verticesArray [in] A vertex array of the shell.
\param faces [in] A face array of the shell.
\returns A value of type that contains the result of the operation.
\remarks
If the specified shell parameters were successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setParam(const OdTvPointArray& verticesArray, const OdInt32Array& faces) = 0;
/** \details
Sets the geometry data of the shell.
\param nVertices [in] A quantity of shell vertexes.
\param vertices [in] A pointer to the array of points that represent the vertexes of the shell.
\param faceListSize [in] A size of the face data list for the shell.
\param faces [in] A pointer to the array of face data that represents the faces of the shell.
\returns A value of type that contains the result of the operation.
\remarks
If the specified shell parameters were successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setParam(OdInt32 nVertices, const OdTvPoint* vertices, OdInt32 faceListSize, const OdInt32* faces ) = 0;
/** \details
Gets the geometry data of the shell.
\param verticesArray [out] A placeholder for the array of shell vertexes.
\param faces [out] A placeholder for the array of shell faces.
\returns A value of type that contains the result of the operation.
\remarks
If the parameter values were successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult getParam(OdTvPointArray& verticesArray, OdInt32Array& faces) const = 0;
/** \details
Sets whether to take lighting into account.
\param bDisable [in] A bool value that instructs whether to disable lighting calculations (set to true) or not (set to false).
\returns A value of type that contains the result of the operation.
\remarks
If the parameter is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setDisableLighting(bool bDisable) = 0;
/** \details
Returns whether to take lighting into account.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns A value of bool type that shows if lighting calculations are disabled (set to true) or not (set to false).
\remarks
If the method successfully returns a bool value, the rc parameter accepts the tvOk value; otherwise it contains an appropriate error code.
\sa
*/
virtual bool getDisableLighting(OdTvResult* rc = NULL) const = 0;
/** \details
Sets the mode of back face culling. The default value is kInherited.
\param val [in] A value that determines a mode of back face culling.
\returns A value of type that contains the result of the operation.
\remarks
If the parameter is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setBackFaceCulling(FaceCulling val) = 0;
/** \details
Returns the mode of back face culling.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns A value of the FaceCulling enumerated type that contains a mode of back face culling.
\remarks
If the method successfully returns a FaceCulling value, the rc parameter accepts the tvOk value; otherwise it contains an appropriate error code.
*/
virtual FaceCulling getBackFaceCulling(OdTvResult* rc = NULL) const = 0;
/** \details
Sets a new value of the selectable property for the faces of the shell. The selectable property determines whether the faces of the shell can be selected.
\param bSelectable [in] A boolean value that is equal to true if the faces can be selected; otherwise it should be equal to false.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the new value of the selectable property for the shell faces is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFacesSelectable(bool bSelectable) = 0;
/** \details
Retrieves current value of the selectable property for the faces of the shell.
Selectable property determines whether the faces of the shell can be selected.
\param bIsInherited [out] A placeholder for a value of the flag that determines whether the selectability property is inherited.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns true if the faces of the shell can be selected; otherwise the method returns false.
\remarks
The method stores true in the bIsInherited parameter if the selectable property value is inherited from the parent entity (sub-entity).
If the rc parameter is not null and the current value of the selectable property is successfully returned, the rc parameter accepts the tvOk value; otherwise it contains an appropriate error code.
*/
virtual bool getFacesSelectable(bool* bIsInherited = NULL, OdTvResult* rc = NULL) const = 0;
/** \details
Sets a new value of the selectable property for the edges of the shell.
The selectable property determines whether the edges of the shell can be selected.
\param bSelectable [in] A boolean value that is equal to true if the edges can be selected; otherwise it should be equal to false.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the new value of the selectable property for the shell edges is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setEdgesSelectable(bool bSelectable) = 0;
/** \details
Retrieves current value of the selectable property for the edges of the shell.
Selectable property determines whether the edges of the shell can be selected.
\param bIsInherited [out] A placeholder for a value of the flag that determines whether the selectability property is inherited.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns true if the edges of the shell can be selected; otherwise the method returns false.
\remarks
The method stores true in the bIsInherited parameter if the selectable property value is inherited from the parent entity (sub-entity).
If the rc parameter is not null and the current value of the selectable property is successfully returned, the rc parameter accepts the tvOk value; otherwise it contains an appropriate error code.
*/
virtual bool getEdgesSelectable(bool* bIsInherited = NULL, OdTvResult* rc = NULL) const = 0;
/** \details
Returns the number of faces in the shell.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns a value of OdUInt32 type that contains the number of shell faces.
\remarks
If the method successfully returns an OdUInt32 value, the rc parameter accepts the tvOk value; otherwise it contains an appropriate error code.
*/
virtual OdUInt32 getFacesCount(OdTvResult* rc = NULL) const = 0;
/** \details
Returns the number of edges in the shell.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns a value of OdUInt32 type that contains the number of shell edges.
\remarks
If the method successfully returns an OdUInt32 value, the rc parameter accepts the tvOk value; otherwise it contains an appropriate error code.
*/
virtual OdUInt32 getEdgesCount(OdTvResult* rc = NULL) const = 0;
/** \details
Returns the number of vertices in the shell.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns a value of OdUInt32 type that contains the number of shell vertices.
\remarks
If the method successfully returns an OdUInt32 value, the rc parameter accepts the tvOk value; otherwise it contains an appropriate error code.
*/
virtual OdUInt32 getVerticesCount(OdTvResult* rc = NULL) const = 0;
/** \details
Returns the number of triangles in the shell.
\param uncountedFaces [out] A quantity of new uncounted triangles.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns a value of OdUInt32 type that contains the number of shell triangles.
\remarks
If the method successfully returns an OdUInt32 value, the rc parameter accepts the tvOk value; otherwise it contains an appropriate error code.
*/
virtual OdUInt32 getTrianglesCount(OdUInt32& uncountedFaces, OdTvResult* rc = NULL) const = 0;
/** \details
Replaces vertices of the shell starting with startPos.
\param startPos [in] A start position from which replacement is applied.
\param verticesArray [in] A pointer to an array of objects that represent the new vertexes.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified shell vertexes were successfully replaced, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult editVerticesViaRange(OdUInt32 startPos, const OdTvPointArray& verticesArray) = 0;
/** \details
Replaces vertices of the shell starting with startPos.
\param startPos [in] A start position from which replacement is applied.
\param nVertices [in] A quantity of new vertexes.
\param vertices [in] A pointer to an array of new vertices.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified shell vertexes were successfully replaced, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult editVerticesViaRange(OdUInt32 startPos, OdUInt32 nVertices, const OdTvPoint* vertices) = 0;
/** \details
Replaces the vertexes of the shell according to a vertex list. The list of vertexes is defined with a set of vertex position objects.
\param indVertices [in] An array of vertex positions to be replaced.
\param verticesArray [in] An array of objects that represent the new vertexes.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified shell vertexes were successfully replaced, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult editVerticesViaList(const OdInt32Array& indVertices, const OdTvPointArray& verticesArray) = 0;
/** \details
Replaces the vertexes of the shell according to a vertex list. The list of vertexes is defined with a set of vertex position objects.
\param nVertices [in] A quantity of vertexes to be replaced.
\param indVertices [in] A pointer to an array of vertex positions to be replaced.
\param vertices [in] A pointer to an array of objects that represent the new vertexes.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified shell vertexes were successfully replaced, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult editVerticesViaList(OdUInt32 nVertices, const OdUInt32* indVertices, const OdTvPoint* vertices) = 0;
/** \details
Replaces faces of the shell starting with startFace.
\param startFace [in] A position of the face from which replacement is applied.
\param faces [in] A pointer to an array of objects that represent faces to be replaced with.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified shell faces were successfully replaced, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult editFacesViaRange(OdUInt32 startFace, const OdInt32Array& faces) = 0;
/** \details
Replaces faces of the shell starting with startFace.
\param startFace [in] A position of the face from which replacement is applied.
\param faceListSize [in] A quantity of faces to be replaced.
\param faces [in] A pointer to an array of new face data.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified shell faces were successfully replaced, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult editFacesViaRange(OdUInt32 startFace, OdUInt32 faceListSize, const OdInt32* faces) = 0;
/** \details
Replaces the faces of the shell according to a list of faces.
\param indFaces [in] An array of faces to be replaced.
\param faces [in] An array of new faces.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified shell faces were successfully replaced, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult editFacesViaList(const OdUInt32Array& indFaces, const OdInt32Array& faces) = 0;
/** \details
Replaces faces defined by 'indFaces' of the shell.
\param nFaces [in] A number of faces to be replaced.
\param indFaces [in] A pointer to an array of face data to be replaced.
\param faceListSize [in] A quantity of faces to be replaced.
\param faces [in] A pointer to an array of new face data.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified shell faces were successfully replaced, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult editFacesViaList(OdUInt32 nFaces, const OdUInt32* indFaces, OdUInt32 faceListSize, const OdInt32* faces) = 0;
/** \details
Sets colors for a list of shell vertexes.
\param nCount [in] A quantity of vertexes for setting the color.
\param indVertices [in] A pointer to an array of vertex indexes.
\param colors [in] A pointer to an array of color definitions to be applied.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the colors for specified shell vertexes were successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setVertexColorsViaList(OdInt32 nCount, const OdInt32* indVertices, const OdTvRGBColorDef* colors) = 0;
/** \details
Sets colors for a list of shell vertexes.
\param indVertices [in] An array of vertex indexes.
\param colors [in] An array of color definitions to be applied.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the colors for specified shell vertexes were successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setVertexColorsViaList(const OdInt32Array& indVertices, const OdTvRGBColorDefArray& colors) = 0;
/** \details
Sets a color for a list of shell vertexes.
\param nCount [in] A quantity of vertexes for setting the color.
\param indVertices [in] A pointer to an array of vertex indexes.
\param color [in] A color definition to be applied.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the color for specified shell vertexes was successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setVertexColorsViaList(OdInt32 nCount, const OdInt32* indVertices, const OdTvRGBColorDef& color) = 0;
/** \details
Sets a color for a list of shell vertexes.
\param indVertices [in] An array of vertex indexes.
\param color [in] A color definition to be applied.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the color for specified shell vertexes was successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setVertexColorsViaList(const OdInt32Array& indVertices, const OdTvRGBColorDef& color) = 0;
/** \details
Sets a color for a range of shell vertexes.
\param indStart [in] A starting index of the vertex to be set with color.
\param nCount [in] A quantity of vertexes to be set with color.
\param color [in] A color definition to be applied.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the color for specified shell vertexes was successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setVertexColorsViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvRGBColorDef& color) = 0;
/** \details
Sets a color for a range of shell vertexes.
\param indStart [in] A starting index of the vertex to be set with color.
\param colors [in] An array of color definitions to be applied.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the color for specified shell vertexes were successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setVertexColorsViaRange(OdInt32 indStart, const OdTvRGBColorDefArray& colors) = 0;
/** \details
Sets a color for a range of shell vertexes.
\param indStart [in] A starting index of the vertex to be set with color.
\param nCount [in] A quantity of vertexes to be set with color.
\param colors [in] A pointer to an array of color definitions to be applied.
\returns Returns a value of type that contains the result of the operation.
\remarks
If colors for specified shell vertexes were successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setVertexColorsViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvRGBColorDef* colors) = 0;
/** \details
Retrieves colors for a range of shell vertexes.
\param indStart [in] A starting index of the range.
\param nCount [in] A quantity of vertexes in the range.
\param colors [out] A placeholder for an array of color definitions to be returned to a calling subroutine.
\returns Returns a value of type that contains the result of the operation.
\remarks
If colors for specified shell vertexes were successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult getVertexColorsViaRange(OdInt32 indStart, OdInt32 nCount, OdTvRGBColorDefArray& colors) const = 0;
/** \details
Retrieves colors for a range of shell vertexes.
\param indVertices [in] An array of shell vertex indexes.
\param colors [out] A placeholder for an array of color definitions to be returned to a calling subroutine.
\returns Returns a value of type that contains the result of the operation.
\remarks
If colors for specified shell vertexes were successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult getVertexColorsViaList(const OdInt32Array& indVertices, OdTvRGBColorDefArray& colors) const = 0;
/** \details
Retrieves the color for a specified shell vertex.
\param ind [in] A shell vertex index.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns the instance of the class that represents the color information.
\remarks
If the rc parameter is not null and the color data was returned successfully, the rc parameter accepts the tvOk value; otherwise it contains an appropriate error code.
\sa
*/
virtual OdTvRGBColorDef getVertexColor(OdInt32 ind, OdTvResult* rc = NULL) const = 0;
/**
Vertex orientation management.
*/
/** \details
Sets a new vertex orientation value for the shell.
\param orientation [in] A vertex orientation value.
\returns Returns a value of type that contains the result of the operation.
\remarks
If a new vertex orientation was successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setVertexOrientation(OdTv::OrientationType orientation) = 0;
/** \details
Retrieves the current vertex orientation of the shell.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns the current value of the vertex orientation.
\remarks
If the rc parameter is not null and the orientation type value was returned successfully, the rc parameter accepts the tvOk value; otherwise it contains an appropriate error code.
*/
virtual OdTv::OrientationType getVertexOrientation(OdTvResult* rc = NULL) const = 0;
/**
Vertex normals management.
*/
/** \details
Sets normal vectors for a list of shell vertexes.
\param nCount [in] A quantity of vertexes in the list.
\param indVertices [in] An array of vertex indexes represented with a pointer to the first array element.
\param vectors [in] A array of normal vectors represented with a pointer to a first vector.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified normal vectors were successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setVertexNormalsViaList(OdInt32 nCount, const OdInt32* indVertices, const OdTvVector* vectors) = 0;
/** \details
Sets normal vectors for a list of shell vertexes.
\param indVertices [in] An array of vertex indexes.
\param vectors [in] An array of normal vectors.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified normal vectors were successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setVertexNormalsViaList(const OdInt32Array& indVertices, const OdTvVectorArray& vectors) = 0;
/** \details
Sets normal vectors for a list of shell vertexes.
\param nCount [in] A quantity of vertexes in the list.
\param indVertices [in] An array of vertex indexes represented with a pointer to the first array element.
\param vector [in] An array of normal vectors.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified normal vectors were successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setVertexNormalsViaList(OdInt32 nCount, const OdInt32* indVertices, const OdTvVector& vector) = 0;
/** \details
Sets normal vectors for a list of shell vertexes.
\param indVertices [in] An array of vertex indexes.
\param vector [in] An array of normal vectors.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified normal vectors were successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setVertexNormalsViaList(const OdInt32Array& indVertices, const OdTvVector& vector) = 0;
/** \details
Sets normal vectors for a range of shell vertexes.
\param indStart [in] An index of the shell vertex array that represents the start position of the range.
\param nCount [in] A quantity of vertexes in the range from the start position.
\param vector [in] An array of normal vectors.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified normal vectors were successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setVertexNormalsViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvVector& vector) = 0;
/** \details
Sets normal vectors for a range of shell vertexes.
\param indStart [in] An index of the shell vertex array that represents the start position of the range.
\param vectors [in] An array of normal vectors.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified normal vectors were successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setVertexNormalsViaRange(OdInt32 indStart, const OdTvVectorArray& vectors) = 0;
/** \details
Sets normal vectors for a range of shell vertexes.
\param indStart [in] An index of the shell vertex array that represents the start position of the range.
\param nCount [in] A quantity of vertexes in the range from the start position.
\param vectors [in] An array of normal vectors represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified normal vectors were successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setVertexNormalsViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvVector* vectors) = 0;
/** \details
Retrieves normal vectors for a range of shell vertexes.
\param indStart [in] An index of the shell vertex array that represents the start position of the range.
\param nCount [in] A quantity of vertexes in the range from the start position.
\param vectors [in] An array of normal vectors.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved normal vectors were successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult getVertexNormalsViaRange(OdInt32 indStart, OdInt32 nCount, OdTvVectorArray& vectors) const = 0;
/** \details
Retrieves normal vectors for a list of shell vertexes.
\param indVertices [in] An array of vertex indexes.
\param vectors [out] A placeholder for the array of normal vectors to be returned to a calling subroutine.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved normal vectors were successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult getVertexNormalsViaList(const OdInt32Array& indVertices, OdTvVectorArray& vectors) const = 0;
/** \details
Retrieves the normal vector for a specified shell vertex.
\param ind [in] A shell vertex index.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an instance of the class that contains normal vector information.
\remarks
If the rc parameter is not null and the normal vector object was returned successfully, the rc parameter accepts the tvOk value; otherwise it contains an appropriate error code.
*/
virtual OdTvVector getVertexNormal(OdInt32 ind, OdTvResult* rc = NULL) const = 0;
/**
Vertex mapping coordinates management.
*/
/** \details
Sets mapping coordinates for a list of shell vertices.
\param nCount [in] A quantity of vertices.
\param indVertices [in] An array of vertex indexes represented with a pointer to the first array element.
\param mappingCoords [in] An array of UV mapping coordinates represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified mapping coordinates are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setVertexMappingCoordsViaList(OdInt32 nCount, const OdInt32* indVertices, const OdTvPoint2d* mappingCoords) = 0;
/** \details
Sets mapping coordinates for a list of shell vertices.
\param indVertices [in] An array of vertex indexes.
\param mappingCoords [in] An array of UV mapping coordinates.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified mapping coordinates are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setVertexMappingCoordsViaList(const OdInt32Array indVertices, const OdTvPoint2dArray& mappingCoords) = 0;
/** \details
Sets mapping coordinates for a list of shell vertices.
\param nCount [in] A quantity of vertices.
\param indVertices [in] An array of vertex indexes represented with a pointer to the first array element.
\param mappingCoord [in] An array of UV mapping coordinates.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified mapping coordinates are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setVertexMappingCoordsViaList(OdInt32 nCount, const OdInt32* indVertices, const OdTvPoint2d& mappingCoord) = 0;
/** \details
Sets mapping coordinates for a list of shell vertices.
\param indVertices [in] An array of vertex indexes.
\param mappingCoord [in] An array of UV mapping coordinates.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified mapping coordinates are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setVertexMappingCoordsViaList(const OdInt32Array indVertices, const OdTvPoint2d& mappingCoord) = 0;
/** \details
Sets mapping coordinates for a range of shell vertexes.
\param indStart [in] An index of the shell vertex array that represents the start position of the range.
\param nCount [in] A quantity of vertexes in the range from the start position.
\param mappingCoords [in] An array of UV mapping coordinates represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified mapping coordinates are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setVertexMappingCoordsViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvPoint2d* mappingCoords) = 0;
/** \details
Sets mapping coordinates for a range of shell vertexes.
\param indStart [in] An index of the shell vertex array that represents the start position of the range.
\param mappingCoords [in] An array of UV mapping coordinates.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified mapping coordinates are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setVertexMappingCoordsViaRange(OdInt32 indStart, const OdTvPoint2dArray& mappingCoords) = 0;
/** \details
Sets mapping coordinates for a range of shell vertexes.
\param indStart [in] An index of the shell vertex array that represents the start position of the range.
\param nCount [in] A quantity of vertexes in the range from the start position.
\param mappingCoord [in] An array of UV mapping coordinates.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified mapping coordinates are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setVertexMappingCoordsViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvPoint2d& mappingCoord) = 0;
/** \details
Retrieves mapping coordinates for a range of shell vertexes.
\param indStart [in] An index of the shell vertex array that represents the start position of the range.
\param nCount [in] A quantity of vertexes in the range from the start position.
\param mappingCoords [out] An array of UV mapping coordinates.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved mapping coordinates are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult getVertexMappingCoordsViaRange(OdInt32 indStart, OdInt32 nCount, OdTvPoint2dArray& mappingCoords) const = 0;
/** \details
Retrieves mapping coordinates for a list of shell vertexes.
\param indVert [in] An array of indexes of the shell vertexes.
\param mappingCoords [out] An array of UV mapping coordinates.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved mapping coordinates are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult getVertexMappingCoordsViaList(const OdInt32Array& indVert, OdTvPoint2dArray& mappingCoords) const = 0;
/** \details
Retrieves mapping coordinates for a specified shell vertex.
\param ind [in] A shell vertex index.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an instance of the class that contains normal vector information.
\remarks
If the retrieved mapping coordinates are successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
*/
virtual OdTvPoint2d getVertexMappingCoord(OdInt32 ind, OdTvResult* rc = NULL) const = 0;
//**************************************************************************************
// Group of the methods for managing the properties of faces
//**************************************************************************************
/**
Face color management.
*/
/** \details
Sets colors for a list of shell faces.
\param nCount [in] A quantity of faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param colors [in] An array of color definition objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified colors are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceColorsViaList(OdInt32 nCount, const OdInt32* indFaces, const OdTvColorDef* colors) = 0;
/** \details
Sets colors for a list of shell faces.
\param indFaces [in] An array of face indexes.
\param colors [in] An array of color definition objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified colors are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceColorsViaList(const OdInt32Array& indFaces, const OdTvColorDefArray& colors) = 0;
/** \details
Sets colors for a list of shell faces.
\param nCount [in] A quantity of faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param color [in] A color definition object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified colors are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceColorsViaList(OdInt32 nCount, const OdInt32* indFaces, const OdTvColorDef& color) = 0;
/** \details
Sets a color for a list of shell faces.
\param indFaces [in] An array of face indexes.
\param color [in] A color definition object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified color is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceColorsViaList(const OdInt32Array& indFaces, const OdTvColorDef& color) = 0;
/** \details
Sets a color for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param color [in] A color definition object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified color is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceColorsViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvColorDef& color) = 0;
/** \details
Sets colors for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param colors [in] An array of color definition objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified colors are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceColorsViaRange(OdInt32 indStart, const OdTvColorDefArray& colors) = 0;
/** \details
Sets colors for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param colors [in] An array of color definition objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified colors are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceColorsViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvColorDef* colors) = 0;
/** \details
Retrieves color definition objects for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param colors [out] An array of color definition objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved color definition objects are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult getFaceColorsViaRange(OdInt32 indStart, OdInt32 nCount, OdTvColorDefArray& colors) const = 0;
/** \details
Retrieves color definition objects for a list of shell faces.
\param indFaces [in] An array of face indexes.
\param colors [out] An array of color definition objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved color definition objects are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult getFaceColorsViaList(const OdInt32Array& indFaces, OdTvColorDefArray& colors) const = 0;
/** \details
Retrieves a color definition object for a specified face of the shell.
\param ind [in] A shell face index.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an instance of the OdTvColorDef class that contains color definition information.
\remarks
If the retrieved color definition object is successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
\sa
*/
virtual OdTvColorDef getFaceColor(OdInt32 ind, OdTvResult* rc = NULL) const = 0;
/**
Face normal management.
*/
/** \details
Sets normals for a list of shell faces.
\param nCount [in] A quantity of faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param vectors [in] An array of normal vectors represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified normals are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceNormalsViaList(OdInt32 nCount, const OdInt32* indFaces, const OdTvVector* vectors) = 0;
/** \details
Sets normals for a list of shell faces.
\param indFaces [in] An array of face indexes.
\param vectors [in] An array of normal vectors.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified normals are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceNormalsViaList(const OdInt32Array& indFaces, const OdTvVectorArray& vectors) = 0;
/** \details
Sets normals for a list of shell faces.
\param nCount [in] A quantity of faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param vector [in] A normal vector object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified normal vector is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceNormalsViaList(OdInt32 nCount, const OdInt32* indFaces, const OdTvVector& vector) = 0;
/** \details
Sets normals for a list of shell faces.
\param indFaces [in] An array of face indexes.
\param vector [in] A normal vector object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified normal vector is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceNormalsViaList(const OdInt32Array& indFaces, const OdTvVector& vector) = 0;
/** \details
Sets a normal vector for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param vector [in] A normal vector object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified normal vector is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceNormalsViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvVector& vector) = 0;
/** \details
Sets normals for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param vectors [in] An array of normal vectors.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified normals are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceNormalsViaRange(OdInt32 indStart, const OdTvVectorArray& vectors) = 0;
/** \details
Sets normals for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param vectors [in] An array of normal vectors represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified normals are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceNormalsViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvVector* vectors) = 0;
/** \details
Retrieves normal vectors for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param vectors [out] An array of normal vectors.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved normal vectors are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult getFaceNormalsViaRange(OdInt32 indStart, OdInt32 nCount, OdTvVectorArray& vectors) const = 0;
/** \details
Retrieves normal vectors for a list of shell faces.
\param indFaces [in] An array of face indexes.
\param vectors [out] An array of normal vectors.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved normal vectors are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult getFaceNormalsViaList(const OdInt32Array& indFaces, OdTvVectorArray& vectors) const = 0;
/** \details
Retrieves a color definition object for a specified shell face.
\param ind [in] A shell face index.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an instance of the class that contains normal vector information.
\remarks
If the retrieved normal vector is successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
*/
virtual OdTvVector getFaceNormal(OdInt32 ind, OdTvResult* rc = NULL) const = 0;
/**
Face visibility management.
*/
/** \details
Sets visibility data for a list of shell faces.
\param nCount [in] A quantity of faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param visibilities [in] An array of visibility data objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified visibility data objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceVisibilitiesViaList(OdInt32 nCount, const OdInt32* indFaces, const OdTvVisibilityDef* visibilities) = 0;
/** \details
Sets visibility data for a list of shell faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param visibilities [in] An array of visibility data objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified visibility data objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceVisibilitiesViaList(const OdInt32Array& indFaces, const OdTvVisibilityDefArray& visibilities) = 0;
/** \details
Sets visibility data for a list of shell faces.
\param nCount [in] A quantity of faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param visibility [in] A visibility data object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified visibility data object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceVisibilitiesViaList(OdInt32 nCount, const OdInt32* indFaces, const OdTvVisibilityDef& visibility) = 0;
/** \details
Sets visibility data for a list of shell faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param visibility [in] A visibility data object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified visibility data object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceVisibilitiesViaList(const OdInt32Array& indFaces, const OdTvVisibilityDef& visibility) = 0;
/** \details
Sets visibility data for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param visibilities [in] An array of visibility data objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified visibility data objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceVisibilitiesViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvVisibilityDef* visibilities) = 0;
/** \details
Sets visibility data for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param visibilities [in] An array of visibility data objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified visibility data objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceVisibilitiesViaRange(OdInt32 indStart, const OdTvVisibilityDefArray& visibilities) = 0;
/** \details
Sets visibility data for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param visibility [in] A visibility data object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified visibility data object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceVisibilitiesViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvVisibilityDef& visibility) = 0;
/** \details
Retrieves visibility data for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param visibilities [out] An array of visibility data objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved visibility data objects are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult getFaceVisibilitiesViaRange(OdInt32 indStart, OdInt32 nCount, OdTvVisibilityDefArray& visibilities) const = 0;
/** \details
Retrieves visibility data for a list of shell faces.
\param indFaces [in] An array of face indexes.
\param visibilities [out] An array of visibility data objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved visibility data objects are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult getFaceVisibilitiesViaList(const OdInt32Array& indFaces, OdTvVisibilityDefArray& visibilities) const = 0;
/** \details
Retrieves visibility data for a specified shell face.
\param ind [in] A shell face index.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an instance of the OdTvVisibilityDef class that contains information about object visibility (visible or invisible).
\remarks
If the retrieved visibility data object is successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
*/
virtual OdTvVisibilityDef getFaceVisibility(OdInt32 ind, OdTvResult* rc = NULL) const = 0;
/**
Face layer management.
*/
/** \details
Sets layers for a list of shell faces.
\param nCount [in] A quantity of faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param layers [in] An array of layer objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified layer objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceLayersViaList(OdInt32 nCount, const OdInt32* indFaces, const OdTvLayerDef* layers) = 0;
/** \details
Sets layers for a list of shell faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param layers [in] An array of layer objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified layer objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceLayersViaList(const OdInt32Array& indFaces, const OdTvLayerDefArray& layers) = 0;
/** \details
Sets a layer for a list of shell faces.
\param nCount [in] A quantity of faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param layer [in] A layer object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified layer object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceLayersViaList(OdInt32 nCount, const OdInt32* indFaces, const OdTvLayerDef& layer) = 0;
/** \details
Sets layers for a list of shell faces.
\param indFaces [in] An array of face indexes.
\param layer [in] A layer object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified layer object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceLayersViaList(const OdInt32Array& indFaces, const OdTvLayerDef& layer) = 0;
/** \details
Sets layers for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param layers [in] An array of layer objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified layer objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceLayersViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvLayerDef* layers) = 0;
/** \details
Sets layers for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param layers [in] An array of layer objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified layer objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceLayersViaRange(OdInt32 indStart, const OdTvLayerDefArray& layers) = 0;
/** \details
Sets layers for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param layer [in] A layer object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified layer object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceLayersViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvLayerDef& layer) = 0;
/** \details
Retrieves layer objects for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param layers [out] An array of layer objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved layer objects are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult getFaceLayersViaRange(OdInt32 indStart, OdInt32 nCount, OdTvLayerDefArray& layers) const = 0;
/** \details
Retrieves layer objects for a list of shell faces.
\param indFaces [in] An array of face indexes.
\param layers [out] An array of layer objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved layer objects are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult getFaceLayersViaList(const OdInt32Array& indFaces, OdTvLayerDefArray& layers) const = 0;
/** \details
Retrieves layer objects for a specified shell face.
\param ind [in] A shell face index.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an instance of the OdTvLayerDef class that contains layer data.
\remarks
If the retrieved layer object is successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
\sa
*/
virtual OdTvLayerDef getFaceLayer(OdInt32 ind, OdTvResult* rc = NULL) const = 0;
/**
Face transparency management.
*/
/** \details
Sets transparency data for a list of shell faces.
\param nCount [in] A quantity of faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param transparencies [in] An array of transparency data objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified transparency data objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceTransparencyViaList(OdInt32 nCount, const OdInt32* indFaces, const OdTvTransparencyDef* transparencies) = 0;
/** \details
Sets transparency data for a list of shell faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param transparencies [in] An array of transparency data objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified transparency data objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceTransparencyViaList(const OdInt32Array& indFaces, const OdTvTransparencyDefArray& transparencies) = 0;
/** \details
Sets transparency data for a list of shell faces.
\param nCount [in] A quantity of faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param transparency [in] A transparency data object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified transparency data object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceTransparencyViaList(OdInt32 nCount, const OdInt32* indFaces, const OdTvTransparencyDef& transparency) = 0;
/** \details
Sets transparency data for a list of shell faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param transparency [in] A transparency data object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified transparency data object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceTransparencyViaList(const OdInt32Array& indFaces, const OdTvTransparencyDef& transparency) = 0;
/** \details
Sets transparency data for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param transparencies [in] An array of transparency data objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified transparency data objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceTransparencyViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvTransparencyDef* transparencies) = 0;
/** \details
Sets transparency data for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param transparencies [in] An array of transparency data objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified transparency data objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceTransparencyViaRange(OdInt32 indStart, const OdTvTransparencyDefArray& transparencies) = 0;
/** \details
Sets transparency data for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param transparency [in] A transparency data object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified transparency data object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setFaceTransparencyViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvTransparencyDef& transparency) = 0;
/** \details
Retrieves transparency data for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param transparencies [out] An array of transparency data objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved transparency data objects are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult getFaceTransparencyViaRange(OdInt32 indStart, OdInt32 nCount, OdTvTransparencyDefArray& transparencies) const = 0;
/** \details
Retrieves transparency data for a list of shell faces.
\param indFaces [in] An array of face indexes.
\param transparencies [out] An array of transparency data objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved transparency data objects are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult getFaceTransparencyViaList(const OdInt32Array& indFaces, OdTvTransparencyDefArray& transparencies) const = 0;
/** \details
Retrieves transparency data for a specified face of the shell.
\param ind [in] A shell face index.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an instance of the OdTvTransparencyDef class that contains transparency data.
\remarks
If the retrieved transparency data object is successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
*/
virtual OdTvTransparencyDef getFaceTransparency(OdInt32 ind, OdTvResult* rc = NULL) const = 0;
/**
Face material management.
*/
/** \details
Sets material definition objects for a list of shell faces.
\param nCount [in] A quantity of faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param materials [in] An array of material definition objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified material definition objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceMaterialsViaList(OdInt32 nCount, const OdInt32* indFaces, const OdTvMaterialDef* materials) = 0;
/** \details
Sets material definition objects for a list of shell faces.
\param indFaces [in] An array of face indexes.
\param materials [in] An array of material definition objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified material definition objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceMaterialsViaList(const OdInt32Array& indFaces, const OdTvMaterialDefArray& materials) = 0;
/** \details
Sets material definition objects for a list of shell faces.
\param nCount [in] A quantity of faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param material [in] A material definition object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified material definition object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceMaterialsViaList(OdInt32 nCount, const OdInt32* indFaces, const OdTvMaterialDef& material) = 0;
/** \details
Sets material definition objects for a list of shell faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param material [in] A material definition object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified material definition object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceMaterialsViaList(const OdInt32Array& indFaces, const OdTvMaterialDef& material) = 0;
/** \details
Sets material definition objects for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param materials [in] An array of material definition objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified material definition objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceMaterialsViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvMaterialDef* materials) = 0;
/** \details
Sets material definition objects for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param materials [in] An array of material definition objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified material definition objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceMaterialsViaRange(OdInt32 indStart, const OdTvMaterialDefArray& materials) = 0;
/** \details
Sets material definition object for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param material [in] A material definition object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified material definition object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceMaterialsViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvMaterialDef& material) = 0;
/** \details
Retrieves material definition objects for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param materials [out] An array of material definition objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved material definition objects are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult getFaceMaterialsViaRange(OdInt32 indStart, OdInt32 nCount, OdTvMaterialDefArray& materials) const = 0;
/** \details
Retrieves material definition objects for a list of shell faces.
\param indFaces [in] An array of face indexes.
\param materials [out] An array of material definition objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved material definition objects are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult getFaceMaterialsViaList(const OdInt32Array& indFaces, OdTvMaterialDefArray& materials) const = 0;
/** \details
Retrieves material definition objects for a specified shell face.
\param ind [in] A shell face index.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an instance of the OdTvMaterialDef class that contains information about material.
\remarks
If the retrieved material definition object is successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
\sa
*/
virtual OdTvMaterialDef getFaceMaterial(OdInt32 ind, OdTvResult* rc = NULL) const = 0;
/**
Face mapper management.
*/
/** \details
Sets mapping definition objects for a list of shell faces.
\param nCount [in] A quantity of faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param mappers [in] An array of mapper definition objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified mapper definition objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceMappersViaList(OdInt32 nCount, const OdInt32* indFaces, const OdTvMapperDef* mappers) = 0;
/** \details
Sets mapper definition objects for a list of shell faces.
\param indFaces [in] An array of face indexes.
\param mappers [in] An array of mapper definition objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified mapper definition is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceMappersViaList(const OdInt32Array& indFaces, const OdTvMapperDefArray& mappers) = 0;
/** \details
Sets a mapper definition for a list of shell faces.
\param nCount [in] A quantity of faces.
\param indFaces [in] An array of face indexes represented with a pointer to the first array element.
\param mapper [in] A mapper definition object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified mapper definition is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceMappersViaList(OdInt32 nCount, const OdInt32* indFaces, const OdTvMapperDef& mapper) = 0;
/** \details
Sets a mapper definition object for a list of shell faces.
\param indFaces [in] An array of face indexes.
\param mapper [in] A mapper definition object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified mapper definition object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceMappersViaList(const OdInt32Array& indFaces, const OdTvMapperDef& mapper) = 0;
/** \details
Sets mapper definition objects for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param mappers [in] An array of mapper definition objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified mapper definition objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceMappersViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvMapperDef* mappers) = 0;
/** \details
Sets mapper definition objects for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param mappers [in] An array of mapper definition objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified mapper definition objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceMappersViaRange(OdInt32 indStart, const OdTvMapperDefArray& mappers) = 0;
/** \details
Sets a mapper definition object for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param mapper [in] A mapper definition object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified mapper definition object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceMappersViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvMapperDef& mapper) = 0;
/** \details
Sets a mapper definition object for all shell faces.
\param mapper [in] A mapper definition object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified mapper definition object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setFaceMapper(const OdTvMapperDef& mapper) = 0;
/** \details
Retrieves mapper definition objects for a range of shell faces.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param mappers [out] An array of mapper definition objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved mapper definition objects are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult getFaceMappersViaRange(OdInt32 indStart, OdInt32 nCount, OdTvMapperDefArray& mappers) const = 0;
/** \details
Retrieves mapper definition objects for a list of shell faces.
\param indFaces [in] An array of face indexes.
\param mappers [out] An array of mapper definition objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved mapper definition objects are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult getFaceMappersViaList(const OdInt32Array& indFaces, OdTvMapperDefArray& mappers) const = 0;
/** \details
Retrieves a mapper definition object for a specified shell face.
\param ind [in] A shell face index.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an instance of the OdTvMapperDef class that contains data about texture mapping to a specific 3D geometry.
\remarks
If the retrieved mapper definition object is successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
\sa
*/
virtual OdTvMapperDef getFaceMapper(OdInt32 ind, OdTvResult* rc = NULL) const = 0;
/** \details
Defines origin points of hatch pattern fills for the all shell faces.
\param origins [in] An array of origin points represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified origin points are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
Array size have to be equal to face size * pattern lines count.
This method fails if hatch pattern is not specified.
To remove this attribute, you need to call this method, setting NULL as a parameter.
\sa
*/
virtual OdTvResult setFaceFillOrigins( const OdTvPoint2d* origins ) = 0;
/** \details
Retrives origin points of hatch pattern fills for the all shell faces.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an array of origin points represented with a pointer to the first array element.
\remarks
If result is not a NULL, array size is equal to face size * pattern lines count.
\sa
*/
virtual const OdTvPoint2d* getFaceFillOrigins( OdTvResult* rc = NULL ) const = 0;
/** \details
Retrives origin points of hatch pattern fills for the all shell faces.
\param out [out] An array to store origin points of hatch pattern fills.
\returns Returns a value of type that contains the result of the operation.
\sa
*/
virtual OdTvResult getFaceFillOrigins( OdTvPoint2dArray& out ) const = 0;
/** \details
Retrives origin points of hatch pattern fills for the specified shell face.
\param faceIndex [in] An index of the face.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an array of origin points represented with a pointer to the first array element.
\remarks
If result is not a NULL, array size is equal to pattern lines count.
\sa
*/
virtual const OdTvPoint2d* getFaceFillOrigins( OdUInt32 faceIndex, OdTvResult* rc = NULL ) const = 0;
/** \details
Defines direction vectors of hatch pattern fills for the all shell faces.
\param directions [in] An array of direction vectors represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified direction vectors are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
Array size have to be equal to face size * pattern lines count.
This method fails if hatch pattern is not specified.
To remove this attribute, you need to call this method, setting NULL as a parameter.
\sa
*/
virtual OdTvResult setFaceFillDirections( const OdTvVector2d* directions ) = 0;
/** \details
Retrives direction vectors of hatch pattern fills for the all shell faces.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an array of direction vectors represented with a pointer to the first array element.
\remarks
If result is not a NULL, array size is equal to face size * pattern lines count.
\sa
*/
virtual const OdTvVector2d* getFaceFillDirections( OdTvResult* rc = NULL ) const = 0;
/** \details
Retrives direction vectors of hatch pattern fills for the all shell faces.
\param out [out] An array to store direction vectors of hatch pattern fills.
\returns Returns a value of type that contains the result of the operation.
\sa
*/
virtual OdTvResult getFaceFillDirections( OdTvVector2dArray& out ) const = 0;
/** \details
Retrives direction vectors of hatch pattern fills for the specified shell face.
\param faceIndex [in] An index of the face.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an array of direction vectors represented with a pointer to the first array element.
\remarks
If result is not a NULL, array size is equal to pattern lines count.
\sa
*/
virtual const OdTvVector2d* getFaceFillDirections( OdUInt32 faceIndex, OdTvResult* rc = NULL ) const = 0;
/** \details
Defines offset scales of hatch pattern fills for the all shell faces.
\param scales [in] An array of offset scales represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified offset scales are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
Array size have to be equal to face size * pattern lines count.
This method fails if hatch pattern is not specified.
To remove this attribute, you need to call this method, setting NULL as a parameter.
\sa
*/
virtual OdTvResult setFaceFillOffsetScales( const double* scales ) = 0;
/** \details
Retrives offset scales of hatch pattern fills for the all shell faces.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an array of offset scales represented with a pointer to the first array element.
\remarks
If result is not a NULL, array size is equal to face size * pattern lines count.
\sa
*/
virtual const double* getFaceFillOffsetScales( OdTvResult* rc = NULL ) const = 0;
/** \details
Retrives offset scales of hatch pattern fills for the all shell faces.
\param out [out] An array to store offset scales of hatch pattern fills.
\returns Returns a value of type that contains the result of the operation.
\sa
*/
virtual OdTvResult getFaceFillOffsetScales( OdTvDoubleArray& out ) const = 0;
/** \details
Retrives offset scales of hatch pattern fills for the specified shell face.
\param faceIndex [in] An index of the face.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an array of offset scales represented with a pointer to the first array element.
\remarks
If result is not a NULL, array size is equal to pattern lines count.
\sa
*/
virtual const double* getFaceFillOffsetScales( OdUInt32 faceIndex, OdTvResult* rc = NULL ) const = 0;
/** \details
Defines dash scales of hatch pattern fills for the all shell faces.
\param scales [in] An array of dash scales represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified dash scales are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
Array size have to be equal to face size * pattern lines count.
This method fails if hatch pattern is not specified.
To remove this attribute, you need to call this method, setting NULL as a parameter.
\sa
*/
virtual OdTvResult setFaceFillDashesScales( const double* scales ) = 0;
/** \details
Retrives dash scales of hatch pattern fills for the all shell faces.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an array of dash scales represented with a pointer to the first array element.
\remarks
If result is not a NULL, array size is equal to face size * pattern lines count.
\sa
*/
virtual const double* getFaceFillDashesScales( OdTvResult* rc = NULL ) const = 0;
/** \details
Retrives dash scales of hatch pattern fills for the all shell faces.
\param out [out] An array to store dash scales of hatch pattern fills.
\returns Returns a value of type that contains the result of the operation.
\sa
*/
virtual OdTvResult getFaceFillDashesScales( OdTvDoubleArray& out ) const = 0;
/** \details
Retrives dash scales of hatch pattern fills for the specified shell face.
\param faceIndex [in] An index of the face.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an array of dash scales represented with a pointer to the first array element.
\remarks
If result is not a NULL, array size is equal to pattern lines count.
\sa
*/
virtual const double* getFaceFillDashesScales( OdUInt32 faceIndex, OdTvResult* rc = NULL ) const = 0;
/** \details
Defines offset directions of hatch pattern fills for the all shell faces.
\param directions [in] An array of offset directions represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified offset directions are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
Array size have to be equal to face size * pattern lines count.
This method fails if hatch pattern is not specified.
To remove this attribute, you need to call this method, setting NULL as a parameter.
\sa
*/
virtual OdTvResult setFaceFillOffsetDirections( const OdTvVector2d* directions ) = 0;
/** \details
Retrives offset directions of hatch pattern fills for the all shell faces.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an array of offset directions represented with a pointer to the first array element.
\remarks
If result is not a NULL, array size is equal to face size * pattern lines count.
\sa
*/
virtual const OdTvVector2d* getFaceFillOffsetDirections( OdTvResult* rc = NULL ) const = 0;
/** \details
Retrives offset directions of hatch pattern fills for the all shell faces.
\param out [out] An array to store offset directions of hatch pattern fills.
\returns Returns a value of type that contains the result of the operation.
\sa
*/
virtual OdTvResult getFaceFillOffsetDirections( OdTvVector2dArray& out ) const = 0;
/** \details
Retrives offset directions of hatch pattern fills for the specified shell face.
\param faceIndex [in] An index of the face.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an array of offset directions represented with a pointer to the first array element.
\remarks
If result is not a NULL, array size is equal to pattern lines count.
\sa
*/
virtual const OdTvVector2d* getFaceFillOffsetDirections( OdUInt32 faceIndex, OdTvResult* rc = NULL ) const = 0;
/** \details
Sets color data for a list of shell edges.
\param nCount [in] A quantity of edges.
\param indEdges [in] An array of edge indexes represented with a pointer to the first array element.
\param colors [in] An array of color definition objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified color definition objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeColorsViaList(OdInt32 nCount, const OdInt32* indEdges, const OdTvColorDef* colors) = 0;
/** \details
Sets color data for a list of shell edges.
\param indEdges [in] An array of edge indexes represented with a pointer to the first array element.
\param colors [in] An array of color definition objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified color definition objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeColorsViaList(const OdInt32Array& indEdges, const OdTvColorDefArray& colors) = 0;
/** \details
Sets color data for a list of shell edges.
\param nCount [in] A quantity of edges.
\param indEdges [in] An array of edge indexes represented with a pointer to the first array element.
\param color [in] A color definition object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified color definition object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeColorsViaList(OdInt32 nCount, const OdInt32* indEdges, const OdTvColorDef& color) = 0;
/** \details
Sets color data for a list of shell edges.
\param indEdges [in] An array of edge indexes represented with a pointer to the first array element.
\param color [in] A color definition object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified color definition object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeColorsViaList(const OdInt32Array& indEdges, const OdTvColorDef& color) = 0;
/** \details
Sets color data for a range of shell edges.
\param indStart [in] An index of the shell edge array that represents the start position of the range.
\param nCount [in] A quantity of edges in the range from the start position.
\param color [in] A color definition object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified color definition object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeColorsViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvColorDef& color) = 0;
/** \details
Sets color data for a range of shell edges.
\param indStart [in] An index of the shell edge array that represents the start position of the range.
\param colors [in] An array of color definition objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified color definition objects are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeColorsViaRange(OdInt32 indStart, const OdTvColorDefArray& colors) = 0;
/** \details
Sets color data for a range of shell edges.
\param indStart [in] An index of the shell edge array that represents the start position of the range.
\param nCount [in] A quantity of edges in the range from the start position.
\param colors [in] An array of color definition objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified color definition object is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeColorsViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvColorDef* colors) = 0;
/** \details
Retrieves color data for a list of shell edges.
\param indEdges [in] An array of edge indexes.
\param colors [out] An array of color definition objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved color definition objects are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult getEdgeColorsViaList(const OdInt32Array& indEdges, OdTvColorDefArray& colors) const = 0;
/** \details
Retrieves color data for a range of shell edges.
\param indStart [in] An index of the shell edge array that represents the start position of the range.
\param nCount [in] A quantity of edges in the range from the start position.
\param colors [out] An array of color definition objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved color definition objects are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult getEdgeColorsViaRange(OdInt32 indStart, OdInt32 nCount, OdTvColorDefArray& colors) const = 0;
/** \details
Retrieves color data object for a specified shell edge.
\param ind [in] A shell edge index.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an instance of the OdTvColorDef class that contains color definition information.
\remarks
If the retrieved color definition object is successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
\sa
*/
virtual OdTvColorDef getEdgeColor(OdUInt32 ind, OdTvResult* rc = NULL) const = 0;
/** \details
Sets visibility data for a list of shell edges.
\param nCount [in] A quantity of edges.
\param indEdges [in] An array of edge indexes represented with a pointer to the first array element.
\param visibilities [in] An array of visibility data objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified visibility data is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setEdgeVisibilitiesViaList(OdInt32 nCount, const OdInt32* indEdges, const OdTvVisibilityDef* visibilities) = 0;
/** \details
Sets visibility data for a list of shell edges.
\param indEdges [in] An array of edge indexes represented with a pointer to the first array element.
\param visibilities [in] An array of visibility data objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified visibility data is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setEdgeVisibilitiesViaList(const OdInt32Array& indEdges, const OdTvVisibilityDefArray& visibilities) = 0;
/** \details
Sets visibility data for a list of shell edges.
\param nCount [in] A quantity of edges.
\param indEdges [in] An array of edge indexes represented with a pointer to the first array element.
\param visibility [in] A visibility data object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified visibility data is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setEdgeVisibilitiesViaList(OdInt32 nCount, const OdInt32* indEdges, const OdTvVisibilityDef& visibility) = 0;
/** \details
Sets visibility data for a list of shell edges.
\param indEdges [in] An array of edge indexes.
\param visibility [in] A visibility data object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified visibility data is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setEdgeVisibilitiesViaList(const OdInt32Array& indEdges, const OdTvVisibilityDef& visibility) = 0;
/** \details
Sets visibility data for a range of shell edges.
\param indStart [in] An index of the shell edge array that represents the start position of the range.
\param nCount [in] A quantity of edges in the range from the start position.
\param visibility [in] A visibility data object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified visibility data is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setEdgeVisibilitiesViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvVisibilityDef& visibility) = 0;
/** \details
Sets visibility data for a range of shell edges.
\param indStart [in] An index of the shell edge array that represents the start position of the range.
\param visibilities [in] An array of visibility data objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified visibility data is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setEdgeVisibilitiesViaRange(OdInt32 indStart, const OdTvVisibilityDefArray& visibilities) = 0;
/** \details
Sets visibility data for a range of shell edges.
\param indStart [in] An index of the shell edge array that represents the start position of the range.
\param nCount [in] A quantity of edges in the range from the start position.
\param visibilities [in] An array of visibility data objects represented with a pointer to the first array element..
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified visibility data is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setEdgeVisibilitiesViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvVisibilityDef* visibilities) = 0;
/** \details
Retrieves visibility data for a list of shell edges.
\param indEdges [in] An array of edge indexes.
\param visibilities [out] An array of visibility data objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved visibility data objects are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult getEdgeVisibilitiesViaList(const OdInt32Array& indEdges, OdTvVisibilityDefArray& visibilities) const = 0;
/** \details
Retrieves visibility data for a range of shell edges.
\param indStart [in] An index of the shell edge array that represents the start position of the range.
\param nCount [in] A quantity of edges in the range from the start position.
\param visibilities [out] An array of visibility data objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved visibility data objects are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult getEdgeVisibilitiesViaRange(OdInt32 indStart, OdInt32 nCount, OdTvVisibilityDefArray& visibilities) const = 0;
/** \details
Retrieves visibility data object for a specified shell edge.
\param ind [in] A shell edge index.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an instance of the OdTvVisibilityDef class that contains information about object visibility.
\remarks
If the retrieved visibility data object is successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
*/
virtual OdTvVisibilityDef getEdgeVisibility(OdUInt32 ind, OdTvResult* rc = NULL) const = 0;
/** \details
Sets the linetypes for a list of shell edges.
\param nCount [in] A quantity of edges.
\param indEdges [in] An array of edge indexes represented with a pointer to the first array element.
\param linetypes [in] An array of linetype objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified linetypes are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeLinetypesViaList(OdInt32 nCount, const OdInt32* indEdges, const OdTvLinetypeDef* linetypes) = 0;
/** \details
Sets the linetypes for a list of shell edges.
\param indEdges [in] An array of edge indexes represented with a pointer to the first array element.
\param linetypes [in] An array of linetype objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified linetypes are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeLinetypesViaList(const OdInt32Array& indEdges, const OdTvLinetypeDefArray& linetypes) = 0;
/** \details
Sets the linetype for a list of shell edges.
\param nCount [in] A quantity of edges.
\param indEdges [in] An array of edge indexes represented with a pointer to the first array element.
\param linetype [in] A linetype object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified linetype is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeLinetypesViaList(OdInt32 nCount, const OdInt32* indEdges, const OdTvLinetypeDef& linetype) = 0;
/** \details
Sets the linetype for a list of shell edges.
\param indEdges [in] An array of edge indexes represented with a pointer to the first array element.
\param linetype [in] A linetype object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified linetypes are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeLinetypesViaList(const OdInt32Array& indEdges, const OdTvLinetypeDef& linetype) = 0;
/** \details
Sets the linetype for a range of shell edges.
\param indStart [in] An index of the shell edge array that represents the start position of the range.
\param nCount [in] A quantity of edges in the range from the start position.
\param linetype [in] A linetype object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the linetype is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setEdgeLinetypesViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvLinetypeDef& linetype) = 0;
/** \details
Sets the linetypes for a range of shell edges.
\param indStart [in] An index of the shell edge array that represents the start position of the range.
\param linetypes [in] An array of linetype objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the linetypes are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeLinetypesViaRange(OdInt32 indStart, const OdTvLinetypeDefArray& linetypes) = 0;
/** \details
Sets the linetypes for a range of shell edges.
\param indStart [in] An index of the shell edge array that represents the start position of the range.
\param nCount [in] A quantity of edges in the range from the start position.
\param linetypes [in] An array of linetype objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the linetypes are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeLinetypesViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvLinetypeDef* linetypes) = 0;
/** \details
Retrieves linetypes for a list of shell edges.
\param indEdges [in] An array of edge indexes.
\param linetypes [out] An array of linetype objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved linetype objects are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult getEdgeLinetypesViaList(const OdInt32Array& indEdges, OdTvLinetypeDefArray& linetypes) const = 0;
/** \details
Retrieves linetypes for a range of shell edges.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param linetypes [out] An array of linetype objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved linetype objects are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult getEdgeLinetypesViaRange(OdInt32 indStart, OdInt32 nCount, OdTvLinetypeDefArray& linetypes) const = 0;
/** \details
Retrieves a linetype for a specified shell edge.
\param ind [in] A shell edge index.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an instance of the OdTvLinetypeDef class that contains the linetype definition data.
\remarks
If the retrieved linetype is successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
\sa
*/
virtual OdTvLinetypeDef getEdgeLinetype(OdUInt32 ind, OdTvResult* rc = NULL) const = 0;
/** \details
Sets layers for a list of shell edges.
\param nCount [in] A quantity of edges.
\param indEdges [in] An array of edge indexes represented with a pointer to the first array element.
\param layers [in] An array of layer objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified layers are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeLayersViaList(OdInt32 nCount, const OdInt32* indEdges, const OdTvLayerDef* layers) = 0;
/** \details
Sets layers for a list of shell edges.
\param indEdges [in] An array of edge indexes.
\param layers [in] An array of layer objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified layers are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeLayersViaList(const OdInt32Array& indEdges, const OdTvLayerDefArray& layers) = 0;
/** \details
Sets a layer for a list of shell edges.
\param nCount [in] A quantity of edges.
\param indEdges [in] An array of edge indexes represented with a pointer to the first array element.
\param layer [in] A layer object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified layer is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeLayersViaList(OdInt32 nCount, const OdInt32* indEdges, const OdTvLayerDef& layer) = 0;
/** \details
Sets a layer for a list of shell edges.
\param indEdges [in] An array of edge indexes.
\param layer [in] An array of layer objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified layers are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeLayersViaList(const OdInt32Array& indEdges, const OdTvLayerDef& layer) = 0;
/** \details
Sets a layer for a range of shell edges.
\param indStart [in] An index of the shell edge array that represents the start position of the range.
\param nCount [in] A quantity of edges in the range from the start position.
\param layer [in] A layer object.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified layer is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeLayersViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvLayerDef& layer) = 0;
/** \details
Sets layers for a range of shell edges.
\param indStart [in] An index of the shell edge array that represents the start position of the range.
\param layers [in] An array of layer objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified layers are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeLayersViaRange(OdInt32 indStart, const OdTvLayerDefArray& layers) = 0;
/** \details
Sets layers for a range of shell edges.
\param indStart [in] An index of the shell edge array that represents the start position of the range.
\param nCount [in] A quantity of edges in the range from the start position.
\param layers [in] An array of layer objects represented with a pointer to the first array element.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified layers are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult setEdgeLayersViaRange(OdInt32 indStart, OdInt32 nCount, const OdTvLayerDef* layers) = 0;
/** \details
Retrieves layer objects for a list of shell edges.
\param indEdges [in] An array of face indexes.
\param layers [out] An array of layer objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved layers are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult getEdgeLayersViaList(const OdInt32Array& indEdges, OdTvLayerDefArray& layers) const = 0;
/** \details
Retrieves layer objects for a range of shell edges.
\param indStart [in] An index of the shell face array that represents the start position of the range.
\param nCount [in] A quantity of faces in the range from the start position.
\param layers [out] An array of layer objects.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved layers are successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
\sa
*/
virtual OdTvResult getEdgeLayersViaRange(OdInt32 indStart, OdInt32 nCount, OdTvLayerDefArray& layers) const = 0;
/** \details
Retrieves a layer object for a specified shell edge.
\param ind [in] A shell edge index.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an instance of the OdTvLayerDef class that contains layer data.
\remarks
If the retrieved layer is successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
\sa
*/
virtual OdTvLayerDef getEdgeLayer(OdUInt32 ind, OdTvResult* rc = NULL) const = 0;
/** \details
Sets a hatch pattern for the shell object.
\param def [in] An instance of OdTvHatchPatternDef that represents a definition for a hatch pattern.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the hatch pattern is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
This method removes face fill data: origins, directions, offset scales, offset directions and dash scales.
\sa
*/
virtual OdTvResult setHatchPattern(const OdTvHatchPatternDef& def) = 0;
/** \details
Retrieves a hatch pattern object for the shell object.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns an instance of the OdTvHatchPatternDef class that represents a definition for a hatch pattern.
\remarks
If the hatch pattern is successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
\sa
*/
virtual OdTvHatchPatternDef getHatchPattern(OdTvResult* rc = NULL) const = 0;
/** \details
Sets that the shell should be filled in 2D rendering mode or visual styles
\param bNeedFill [in] Flag which indicates that it is need to fill shell in the 2D rendering modes or visual styles
\returns Returns a value of type that contains the result of the operation.
\remarks
If the 2D filling flag is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setNeedFillIn2D(bool bNeedFill) = 0;
/** \details
Retrieves a hatch pattern object for the shell object.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns true if shell should be filled in 2D rendering modes or visual styles
\remarks
If the 2D filling flag is successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
*/
virtual bool getNeedFillIn2D(OdTvResult* rc = NULL) const = 0;
/** \details
Marks edges as 'silhouette' edges.
\param indEdges [in] An array of edge's indexes which should be marked as 'silhouettes'.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the edges is successfully marked, the method returns tvOk; otherwise it returns an appropriate error code.
'Silhouettes' edges processed in a special way in some cases. Such edges used mostly for compatibility with some
ODA-based databases.
*/
virtual OdTvResult setIndexesOfSilhouetteEdges(const OdInt32Array& indEdges) = 0;
/** \details
Retrieves indexes of the edges which are marked as 'silhouettes'
\param indEdges [out] An array of edges indexes.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the retrieved array is successfully returned, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult getIndexesOfSilhouetteEdges(OdInt32Array& indEdges) const = 0;
/** \details
Sets that it is need to show shell vertices for the shell object.
\param bShow [in] Flag which indicates that it is need to show shell vertices.
\param verticesSize [in] A vertices size which will be used for the vertices visualization.
\returns Returns a value of type that contains the result of the operation.
\remarks
If vertices visibility is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setShowVertices(bool bShow, OdInt32 verticesSize = 5) = 0;
/** \details
Returns true if shell vertices are visible. Also returns a vertices size which is used for the vertices visualization.
\param verticesSize [out] A vertices size which will be used for the vertices visualization.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns true if shell vertices are visible, false otherwise.
\remarks
If the vertices visibility is successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
*/
virtual bool getShowVertices(OdInt32& verticesSize, OdTvResult* rc = NULL) const = 0;
/** \details
Sets that only shell vertices should be visualized for this shell object.
\param bShowOnly [in] Flag which indicates that only shell vertices should be visualized.
\returns Returns a value of type that contains the result of the operation.
\remarks
If flag is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
This method will have no effect if the show vertices flag is set to false.
*/
virtual OdTvResult setShowOnlyVertices(bool bShowOnly) = 0;
/** \details
Returns true if only shell vertices should be visualized for this shell object.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns true if only shell vertices should be visualized, false otherwise.
\remarks
If the show only flag was successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
*/
virtual bool getShowOnlyVertices(OdTvResult* rc = NULL) const = 0;
/** \details
Sets overriding of the vertices color. If bOverride flag is true, color will be applied to the shell vertices. Otherwise, color from attributes will be applied.
\param bOverride [in] Flag if need apply shell vertices color.
\param color [in] Color of vertices.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the specified override vertices color flag and color are successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
This method will have no effect if the show vertices flag is set to false.
\sa
*/
virtual OdTvResult setOverrideVerticesColor(bool bOverride, const OdTvRGBColorDef& color) = 0;
/** \details
Get vertices color and override vertices color flag.
\param bOverride [out] Override vertices color flag.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns vertices color.
\remarks
If the retrieved color and flag are successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
\sa
*/
virtual OdTvRGBColorDef getOverrideVerticesColor(bool& bOverride, OdTvResult* rc = NULL) const = 0;
/** \details
Sets that it is need to show shell normals for the shell object.
\param bShow [in] Flag which indicates that it is need to show shell normals.
\param normalsLength [in] A lines length which will be used for the normals visualization.
\param normalsColor [in] A lines color which will be used for the normals visualization. If this parameter is default, color will be taken from shell color.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the normalsLength is 0., the lines length will be calculated automatically on the basis of the shell extents' size
If the normalsColor is 'default', the lines color will be the same as the color of normal's source (face or vertex)
If normals visibility is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setShowNormals(bool bShow, double normalsLength = 0., const OdTvRGBColorDef& normalsColor = OdTvRGBColorDef()) = 0;
/** \details
Returns true if shell normals are visible. Also returns a normals size and color which is used for the normals visualization.
\param normalsLength [out] A normal length which is used for the normals visualization.
\param normalsColor [out] A lines color which is used for the normals visualization.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns true if shell normals are visible, false otherwise.
\remarks
If the normals visibility is successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
*/
virtual bool getShowNormals(double& normalsLength, OdTvRGBColorDef& normalsColor, OdTvResult* rc = NULL) const = 0;
/** \details
Sets that it is need to show shell sharp edges for the shell object.
\param bShow [in] Flag which indicates that it is need to show shell sharp edges.
\param edgesWidth [in] A lines lineweight which will be used for the sharp edges visualization.
\param edgesColor [in] A lines color which will be used for the sharp edges visualization.
\returns Returns a value of type that contains the result of the operation.
\remarks
If the edgesColor is 'default', the lines color will be taken from shell color
If sharp edges visibility is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setShowSharpEdges(bool bShow, OdUInt8 edgesWidth = 5, const OdTvRGBColorDef& edgesColor = OdTvRGBColorDef()) = 0;
/** \details
Returns true if shell sharp edges are visible.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\param edgesWidth [out] A lineweight which is used for the sharp edges visualization.
\param edgesColor [out] A lines color which is used for the sharp edges visualization.
\returns Returns true if shell sharp edges are visible, false otherwise.
\remarks
If the sharp edges visibility is successfully returned, the rc parameter is set to tvOk; otherwise it holds an appropriate error code.
*/
virtual bool getShowSharpEdges(OdUInt8& edgesWidth, OdTvRGBColorDef& edgesColor, OdTvResult* rc = NULL) const = 0;
/** \details
Specifies whether to use spatial tree for selection.
\param bUseSpatialTreeForSelection [in] A flag that determines whether to use spatial tree for selection.
\param nVerticesLimit [in] A value that determines the minimum count of vertices for which to use a spatial tree. Valid only if 'bUseSpatialTreeForSelection' is set to true. Should be greater than or equal to 1000.
\returns Returns a value of type that contains the result of the operation.
\remarks
If flag is successfully set, the method returns tvOk; otherwise it returns an appropriate error code.
*/
virtual OdTvResult setUseSpatialTreeForSelection(bool bUseSpatialTreeForSelection, OdUInt32 nVerticesLimit = 50000) = 0;
/** \details
Checks whether spatial tree is used for selection. This method also receives the minimum count of vertices for which to use a spatial tree if spatial tree is used.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns 0 spatial tree should not be used; otherwise returns the minimum count of vertices for which to use a spatial tree.
\remarks
If the rc parameter is not null and the result is returned successfully, the rc parameter accepts the tvOk value; otherwise it contains an appropriate error code.
*/
virtual OdUInt32 getUseSpatialTreeForSelection(OdTvResult* rc = NULL) const = 0;
/** \details
Specifies whether shell data should ignore face fill patterns even if they are specified.
\param bDisable [in] A flag that indicates whether shell data should ignore face fill patterns.
\returns Returns a value of type that contains the result of the operation.
*/
virtual OdTvResult setFaceFillPatternsDisabled( bool bDisable ) = 0;
/** \details
Checks whether shell data should ignore face fill patterns even if they are specified.
\param rc [out] A pointer to a value of type that contains the result of the operation.
\returns Returns a flag that specifies whether shell data should ignore face fill patterns.
*/
virtual bool isFaceFillPatternsDisabled( OdTvResult* rc = NULL ) = 0;
};
/** \details
A data type that represents a smart pointer to an instance of the shell geometry type and is used for storing and passing references to the shell object.
*/
typedef OdTvSmartPtr OdTvShellDataPtr;
#endif // _ODTV_ENTITYGEOMETRYSHELL_H_INCLUDED_