SketchUp C API

- Main Page
- Related Pages
- Data Structures
- Files

- Data Structures
- Data Structure Index
- Class Hierarchy
- Data Fields

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Related Functions
SUTextureWriterRef Struct Reference

Used to write out textures of various SketchUp model elements to local disk. For face objects texture writer modifies non-affine textures on write so that the resulting texture image can be mapped with 2-dimensional texture coordinates. The modified UV coordinates are retrieved from a mesh object created with SUMeshHelperCreateWithTextureWriter(). More...

`#include <SketchUpAPI/model/texture_writer.h>`

## Related Functions
(Note that these are not member functions.)
enum SUResult | SUTextureWriterCreate (SUTextureWriterRef *writer)
| Creates a new texture writer object. The texture writer must be subsequently deallocated with SUTextureWriterRelease(). More...
enum SUResult | SUTextureWriterRelease (SUTextureWriterRef *writer)
| Deallocates a texture writer object. More...
enum SUResult | SUTextureWriterLoadEntity (SUTextureWriterRef writer, SUEntityRef entity, long *texture_id)
| Loads an entity to a texture writer object in order to have its texture written to disk. Acceptable entity types are: SUComponentInstanceRef, SUImageRef, SUGroupRef and SULayerRef. More...
enum SUResult | SUTextureWriterLoadFace (SUTextureWriterRef writer, SUFaceRef face, long *front_texture_id, long *back_texture_id)
| Loads a face object to a texture writer object in order to have its front and/or back texture written to local disk. More...
enum SUResult | SUTextureWriterGetNumTextures (SUTextureWriterRef writer, size_t *count)
| Retrieves the total number of textures that are loaded into the texture writer object. More...
enum SUResult | SUTextureWriterWriteTexture (SUTextureWriterRef writer, long texture_id, const char *path, bool reduce_size)
| Writes a texture to a file on disk. More...
enum SUResult | SUTextureWriterGetImageRep (SUTextureWriterRef writer, long texture_id, SUImageRepRef *image)
| Retrieves an image from the given texture_id. The given image representation object must have been constructed using one of the SUImageRepCreate* functions. It must be released using SUImageRepRelease(). More...
enum SUResult | SUTextureWriterWriteAllTextures (SUTextureWriterRef writer, const char *directory)
| Writes out all the textures loaded into a texture writer object. The file names and formats are those of the image file used to create the texture. Preexisting files are overwritten. More...
enum SUResult | SUTextureWriterIsTextureAffine (SUTextureWriterRef writer, long texture_id, bool *is_affine)
| Retrieves a flag indicating whether a texture object loaded into a texture writer object is linearly interpolated (affine) or perspective corrected. More...
enum SUResult | SUTextureWriterGetTextureFilePath (SUTextureWriterRef writer, long texture_id, SUStringRef *file_path)
| Retrieves the file path from a texture image written using SUTextureWriterWriteAllTextures. More...
enum SUResult | SUTextureWriterGetFrontFaceUVCoords (SUTextureWriterRef writer, SUFaceRef face, size_t len, const struct SUPoint3D points[], struct SUPoint2D uv_coords[])
| Given an array of vertex positions, retrieves the corresponding UV coordinates of the front face texture of a face object that has been loaded into the given texture writer object. More...
enum SUResult | SUTextureWriterGetBackFaceUVCoords (SUTextureWriterRef writer, SUFaceRef face, size_t len, const struct SUPoint3D points[], struct SUPoint2D uv_coords[])
| Given an array of vertex positions, retrieves the corresponding UV coordinates of the back face texture of a face object that has been loaded into the given texture writer object. More...
enum SUResult | SUTextureWriterGetTextureIdForEntity (SUTextureWriterRef writer, SUEntityRef entity, long *texture_id)
| Gets the texture id of a previously loaded entity. Acceptable entity types are: SUComponentInstanceRef, SUImageRef, SUGroupRef and SULayerRef. More...
enum SUResult | SUTextureWriterGetTextureIdForFace (SUTextureWriterRef writer, SUFaceRef face, bool front, long *texture_id)
| Gets the texture id of a previously loaded face. More...

## Detailed Description

Used to write out textures of various SketchUp model elements to local disk. For face objects texture writer modifies non-affine textures on write so that the resulting texture image can be mapped with 2-dimensional texture coordinates. The modified UV coordinates are retrieved from a mesh object created with SUMeshHelperCreateWithTextureWriter().

## Friends And Related Function Documentation

enum SUResult SUTextureWriterCreate | ( | SUTextureWriterRef * | writer | ) |
| related

Creates a new texture writer object. The texture writer must be subsequently deallocated with SUTextureWriterRelease().

Parameters

  [out] | writer | The created texture writer object.

Returns
  - SU_ERROR_NONE on success
  - SU_ERROR_NULL_POINTER_OUTPUT if writer is NULL

enum SUResult SUTextureWriterGetBackFaceUVCoords | ( | SUTextureWriterRef | writer,
|  | SUFaceRef | face,
|  | size_t | len,
|  | const struct SUPoint3D | points[],
|  | struct SUPoint2D | uv_coords[]
| ) |  |
| related

Given an array of vertex positions, retrieves the corresponding UV coordinates of the back face texture of a face object that has been loaded into the given texture writer object.

Parameters

  [in] | writer | The texture writer object.
  [in] | face | The face object.
  [in] | len | The number of vertex positions.
  [in] | points | The vertex positions.
  [out] | uv_coords | The UV coordinates retrieved.

Returns
  - SU_ERROR_NONE on success
  - SU_ERROR_INVALID_INPUT if writer or face is not a valid object
  - SU_ERROR_NULL_POINTER_OUTPUT if uv_coords is NULL
  - SU_ERROR_NO_DATA if the face object does not have a back face texture

enum SUResult SUTextureWriterGetFrontFaceUVCoords | ( | SUTextureWriterRef | writer,
|  | SUFaceRef | face,
|  | size_t | len,
|  | const struct SUPoint3D | points[],
|  | struct SUPoint2D | uv_coords[]
| ) |  |
| related

Given an array of vertex positions, retrieves the corresponding UV coordinates of the front face texture of a face object that has been loaded into the given texture writer object.

Parameters

  [in] | writer | The texture writer object.
  [in] | face | The face object.
  [in] | len | The number of vertex positions.
  [in] | points | The vertex positions.
  [out] | uv_coords | The UV coordinates retrieved.

Returns
  - SU_ERROR_NONE on success
  - SU_ERROR_INVALID_INPUT if writer or face is not a valid object
  - SU_ERROR_NULL_POINTER_OUTPUT if uv_coords is NULL
  - SU_ERROR_NO_DATA if the face object does not have a front face texture

enum SUResult SUTextureWriterGetImageRep | ( | SUTextureWriterRef | writer,
|  | long | texture_id,
|  | SUImageRepRef * | image
| ) |  |
| related

Retrieves an image from the given texture_id. The given image representation object must have been constructed using one of the SUImageRepCreate* functions. It must be released using SUImageRepRelease().

Since
  SketchUp 2017 M2, API 5.2

Parameters

  [in] | writer | The texture writer object.
  [in] | texture_id | The id of the texture.
  [out] | image | The image object retrieved.

Returns
  - SU_ERROR_NONE on success
  - SU_ERROR_INVALID_INPUT if writer is not a valid object
  - SU_ERROR_NULL_POINTER_OUTPUT if image is NULL
  - SU_ERROR_INVALID_OUTPUT if image is not a valid object.
  - SU_ERROR_NO_DATA if there is no texture in the given texture_id.

enum SUResult SUTextureWriterGetNumTextures | ( | SUTextureWriterRef | writer,
|  | size_t * | count
| ) |  |
| related

Retrieves the total number of textures that are loaded into the texture writer object.

Parameters

  [in] | writer | The texture writer object.
  [out] | count | The number of textures.

Returns
  - SU_ERROR_NONE on success
  - SU_ERROR_INVALID_INPUT if writer is not a valid object
  - SU_ERROR_NULL_POINTER_OUTPUT if count is NULL

enum SUResult SUTextureWriterGetTextureFilePath | ( | SUTextureWriterRef | writer,
|  | long | texture_id,
|  | SUStringRef * | file_path
| ) |  |
| related

Retrieves the file path from a texture image written using SUTextureWriterWriteAllTextures.

Parameters

  [in] | writer | The texture writer object.
  [in] | texture_id | The id of the texture.
  [out] | file_path | The file path retrieved.

Returns
  - SU_ERROR_NONE on success
  - SU_ERROR_INVALID_INPUT if writer is not a valid object
  - SU_ERROR_NO_DATA if texture_id is not a handle to a loaded and written texture object
  - SU_ERROR_NULL_POINTER_OUTPUT if file_path is NULL
  - SU_ERROR_INVALID_OUTPUT if file_path does not point to a valid SUStringRef object

enum SUResult SUTextureWriterGetTextureIdForEntity | ( | SUTextureWriterRef | writer,
|  | SUEntityRef | entity,
|  | long * | texture_id
| ) |  |
| related

Gets the texture id of a previously loaded entity. Acceptable entity types are: SUComponentInstanceRef, SUImageRef, SUGroupRef and SULayerRef.

Parameters

  [in] | writer | The texture writer object.
  [in] | entity | The entity object.
  [out] | texture_id | The texture id retrieved.

Returns
  - SU_ERROR_NONE on success
  - SU_ERROR_INVALID_INPUT if writer or entity is not a valid object
  - SU_ERROR_NULL_POINTER_OUTPUT if texture_id is NULL
  - SU_ERROR_GENERIC if the entity is not one of the acceptable types or it does not have a previously written texture_id

enum SUResult SUTextureWriterGetTextureIdForFace | ( | SUTextureWriterRef | writer,
|  | SUFaceRef | face,
|  | bool | front,
|  | long * | texture_id
| ) |  |
| related

Gets the texture id of a previously loaded face.

Parameters

  [in] | writer | The texture writer object.
  [in] | face | The face object.
  [in] | front | The side of the face we are interested in. True if we want texture for the front face, false if we want the texture for the back face.
  [out] | texture_id | The texture id retrieved.

Returns
  - SU_ERROR_NONE on success
  - SU_ERROR_INVALID_INPUT if writer or face is not a valid object
  - SU_ERROR_NULL_POINTER_OUTPUT if the face object has a texture, and texture_id is NULL
  - SU_ERROR_GENERIC if the face object does not have a previously written texture_id

enum SUResult SUTextureWriterIsTextureAffine | ( | SUTextureWriterRef | writer,
|  | long | texture_id,
|  | bool * | is_affine
| ) |  |
| related

Retrieves a flag indicating whether a texture object loaded into a texture writer object is linearly interpolated (affine) or perspective corrected.

Parameters

  [in] | writer | The texture writer object.
  [in] | texture_id | The id of the texture.
  [out] | is_affine | The affine flag retrieved.

Returns
  - SU_ERROR_NONE on success
  - SU_ERROR_INVALID_INPUT if writer is not a valid object
  - SU_ERROR_NO_DATA if texture_id is not a handle to a loaded texture object
  - SU_ERROR_NULL_POINTER_OUTPUT if is_affine is NULL

enum SUResult SUTextureWriterLoadEntity | ( | SUTextureWriterRef | writer,
|  | SUEntityRef | entity,
|  | long * | texture_id
| ) |  |
| related

Loads an entity to a texture writer object in order to have its texture written to disk. Acceptable entity types are: SUComponentInstanceRef, SUImageRef, SUGroupRef and SULayerRef.

Parameters

  [in] | writer | The texture writer object.
  [in] | entity | The entity object.
  [out] | texture_id | The id of the texture.

Returns
  - SU_ERROR_NONE on success
  - SU_ERROR_INVALID_INPUT if writer or entity is not a valid object
  - SU_ERROR_GENERIC if entity is not one of the acceptable types or there is no texture to write
  - SU_ERROR_NULL_POINTER_OUTPUT if texture_id is NULL

enum SUResult SUTextureWriterLoadFace | ( | SUTextureWriterRef | writer,
|  | SUFaceRef | face,
|  | long * | front_texture_id,
|  | long * | back_texture_id
| ) |  |
| related

Loads a face object to a texture writer object in order to have its front and/or back texture written to local disk.

Parameters

  [in] | writer | The texture writer object.
  [in] | face | The face object.
  [out] | front_texture_id | The texture ID of the front texture.
  [out] | back_texture_id | The texture ID of the back texture.

Returns
  - SU_ERROR_NONE on success
  - SU_ERROR_INVALID_INPUT if writer or face is not a valid object
  - SU_ERROR_NULL_POINTER_OUTPUT if the face object has a front face texture to write, and front_texture_id is NULL
  - SU_ERROR_NULL_POINTER_OUTPUT if the face object has a back face texture to write, and back_texture_id is NULL
  - SU_ERROR_GENERIC if the face object does not a texture to write

enum SUResult SUTextureWriterRelease | ( | SUTextureWriterRef * | writer | ) |
| related

Deallocates a texture writer object.

Parameters

  [in] | writer | The texture writer object.

Returns
  - SU_ERROR_NONE on return
  - SU_ERROR_INVALID_INPUT if writer does not reference a valid object
  - SU_ERROR_NULL_POINTER_OUTPUT if writer is NULL

enum SUResult SUTextureWriterWriteAllTextures | ( | SUTextureWriterRef | writer,
|  | const char * | directory
| ) |  |
| related

Writes out all the textures loaded into a texture writer object. The file names and formats are those of the image file used to create the texture. Preexisting files are overwritten.

Parameters

  [in] | writer | The texture writer object.
  [in] | directory | The directory on disk to write the textures. Assumed to be UTF-8 encoded.

Returns
  - SU_ERROR_NONE on success
  - SU_ERROR_INVALID_INPUT if writer is not a valid object
  - SU_ERROR_NULL_POINTER_INPUT if directory is NULL
  - SU_ERROR_INVALID_INPUT if directory is not a object
  - SU_ERROR_SERIALIZATION if the textures could not be written to disk

enum SUResult SUTextureWriterWriteTexture | ( | SUTextureWriterRef | writer,
|  | long | texture_id,
|  | const char * | path,
|  | bool | reduce_size
| ) |  |
| related

Writes a texture to a file on disk.

Parameters

  [in] | writer | The texture writer object.
  [in] | texture_id | The id of the texture.
  [in] | path | The file location on disk to write the texture. If a file is present at the location it is overwritten. The file extension of the file path is indicates the file format. The extension must be one of "jpg", "bmp", "tif", or "png". Assumed to be UTF-8 encoded.
  [in] | reduce_size | Indicates whether the texture image should be reduced in size through scaling.

Returns
  - SU_ERROR_NONE on success
  - SU_ERROR_INVALID_INPUT if writer is not a valid object
  - SU_ERROR_NULL_POINTER_INPUT if path is NULL
  - SU_ERROR_SERIALIZATION if a file could not be written to the specified location, or if an invalid file format was specified

The documentation for this struct was generated from the following files:

- SketchUpAPI/model/defs.h
- SketchUpAPI/model/texture_writer.h