OBJReader
Introduction
The vtkOBJReader aims to read a text file formatted as below and create a bumpy plane based on the elevation defined in that file. If a line has 10 elevation values, that means the plane will have 10 points along the X axis. If the file has 5 lines, that means the plane will have 5 points along the Y axis.
1 2 3 4 5
5 4 3 2 1
1 2 3 4 5
5 4 3 2 1
1 2 3 4 5Each number represents an elevation on a uniform grid where a line (horizontal) define the elevations along the X axis. With that in mind, new lines (vertical) define the elevations along the Y axis and the actual number is the elevation along Z.
In order to properly represent that in world coordinates, you can provide an origin which will define the coordinate of the first point without its elevation. Then you need to describe how much you should move along X and Y between two elevations definition. For that we use xSpacing and ySpacing. Since the elevation is given to us as a number, we can scale it via zScaling. Finally you may decide that your grid should move along positive X and negative Y while reading the file. The xDirection and yDirection are meant to give you control on that end.
Methods
extend
Method used to decorate a given object (publicAPI+model) with vtkOBJReader characteristics.
| Argument | Type | Required | Description |
|---|---|---|---|
publicAPI | Yes | object on which methods will be bounds (public) | |
model | Yes | object on which data structure will be bounds (protected) | |
initialValues | IOBJReaderInitialValues | No | (default: {}) |
getBaseURL
getDataAccessHelper
getPointDuplicateIds
Convenient method to get the id of all duplicated points. Relies on a "Duplicates" array that contains the id of: - the first duplicate id for the original point (or self Id if there is no duplicate)
- the original id for the duplicate points Duplicated points must be adjacent to each other. Example:
- Points: [pt0, pt1, pt2, pt3, pt1d0, pt1d1, pt1d3, pt3d1, pt3d2]
- Duplicates: [0, 4, 2, 3, 1, 1, 1, 3, 3] Expected results:
- getPointDuplicateIds(p, 1) => [1, 4, 5, 6]
- getPointDuplicateIds(p, 0) => [0]
- getPointDuplicateIds(p, 5) => [1, 4, 5, 6]
| Argument | Type | Required | Description |
|---|---|---|---|
polydata | Yes | A polydata generated by the OBJReader | |
pointId | Yes | A point Id (duplicated or not) |
getSplitMode
getTrackDuplicates
True if duplicates are tracked in output polydata.
getUrl
Get the url of the object to load.
invokeBusy
| Argument | Type | Required | Description |
|---|---|---|---|
busy | Boolean | Yes |
isBusy
loadData
Load the object data.
| Argument | Type | Required | Description |
|---|---|---|---|
options | IOBJReaderOptions | No |
newInstance
Method used to create a new instance of vtkOBJReader
| Argument | Type | Required | Description |
|---|---|---|---|
initialValues | IOBJReaderInitialValues | No | for pre-setting some of its content |
onBusy
| Argument | Type | Required | Description |
|---|---|---|---|
callback | Yes |
parseAsText
Parse data as text.
| Argument | Type | Required | Description |
|---|---|---|---|
content | String | Yes | The content to parse. |
requestData
| Argument | Type | Required | Description |
|---|---|---|---|
inData | Yes | ||
outData | Yes |
setDataAccessHelper
| Argument | Type | Required | Description |
|---|---|---|---|
dataAccessHelper | Yes |
setSplitMode
String in OBJ file used to split in multiple output polydata.
| Argument | Type | Required | Description |
|---|---|---|---|
splitMode | Null or String | Yes |
setTrackDuplicates
Set to true to be able to use getPointDuplicateIds() on output polydata. Requires splitMode to not be null.
| Argument | Type | Required | Description |
|---|---|---|---|
trackDuplicates | Yes | true or false (false by default) |
setUrl
Set the url of the object to load.
| Argument | Type | Required | Description |
|---|---|---|---|
url | String | Yes | the url of the object to load. |
option | IOBJReaderOptions | No | The OBJ reader options. |