ALTE DOCUMENTE
|
|||||||
AutoCAD T Render API
Programmer’s Guide
Version 1.32
Copyright 1997 Autodesk, Inc.
All Rights Reserved
The publication, or parts thereof, may not be reproduced in any form, by any method, for any purpose.
AUTODESK, INC. MAKES NO WARRANTY, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, REGARDING THESE MATERIALS AND MAKES SUCH MATERIALS AVAILABLE SOLELY ON AN “AS-IS” BASIS.
IN NO EVENT SHALL AUTODESK, INC. BE LIABLE TO ANYONE FOR SPECIAL, COLLATERAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH OR ARISING OUT OF PURCHASE OR USE OF THESE MATERIALS. THE SOLE AND EXCLUSIVE LIABILITY TO AUTODESK, INC., REGARDLESS OF THE FORM OF ACTION, SHALL NOT EXCEED THE PURCHASE PRICE OF THE MATERIALS DESCRIBED HEREIN.
Autodesk, Inc. reserves the right to revise and improve its products as it sees fit. This publication describes the state of this product at the time of its publication, and may not reflect the product at all times in the future.
Autodesk Trademarks
The following are registered trademarks of Autodesk, Inc., in the USA and/or other countries: 3D Plan, 3D Studio, ADE, ADI, Advanced Modeling Extension, AME, Animator Pro, ATC, AutoCAD, AutoCAD Data Extension, AutoCAD Development System, Autodesk, Autodesk Animator, Autodesk LT, the Autodesk logo, Autodesk University, AutoLISP, AutoShade, AutoSketch, AutoSolid, AutoSurf, AutoVision, Design Companion, Education by Design, Generic, Generic CADD, Generic Softw 23223j92x are, Generic 3D Drafting, Geodyssey, HOOPS, MaterialSpec, Multimedia Explorer, NAAUG, Office Series, Opus, Solution 3000, PartSpec, Regis, TinkerTech, Texture Universe, Woodbourne, WorkCenter, and World-Creating Toolkit.
The following are trademarks of Autodesk, Inc., in the USA and/or other countries: 3D Props, 3D Studio MAX, 3DSurfer, ACAD, Advanced User Interface, AME Link, Animation Partner, Animation Player, Animation Pro Player, A Studio in Every Computer, ATLAST, AUGI, AutoCAD Simulator, AutoCAD SQL Extension, AutoCAD SQL Interface, AutoCDM, Autodesk Animator Clips, Autodesk Animator Theatre, Autodesk Device Interface, Autodesk MapGuide, Autodesk PhotoEdit, Autodesk Software Developer's Kit, Autodesk WalkThrough, Autodesk World, AutoEDM, AutoFlix, AutoLathe, AutoSnap, BIPED, Bringing Information Down to Earth, Carpe Datum, Character Studio, Concept Studio, Content Explorer, DesignBlocks, DESIGNX, DesignScape, Design Your World, DXF, DWG Unplugged, Exegis, FLI, FLIC, GenCADD, Generic 3D, Heidi, Home Series, HyperWire, Inside Track, Kinetix, MapGuide, MAX DWG, Mechanical Desktop, Multiped, NetHead, ObjectARX, Octoped, PeopleTracker, Physique, Picture This Home, PlantSpec, Power and Light, Powered with Autodesk Technology, Quadruped, SketchTools, Smoke and Mirrors, Suddenly Everything Clicks, Supportdesk, Topper, Transforms Ideas Into Reality, and WHIP!.
Third Party Trademarks
ACIS ® is a registered trademark of SPATIAL TECHNOLOGY, INC.
Windows, Windows NT, Windows 95, and OpenGL are registered trademarks of Microsoft Corporation.
All brand names, product names, or trademarks belong to their respective holders.
Third Party Software Program Credits
ACIS ® Copyright © 1994, 1997 Spatial Technology, Inc., Three-Space Ltd., and Applied Geometry Corp. All rights reserved.
International CorrectSpell™ Spelling Correction System © 1995 by INSO Corporation.
All rights reserved. Reproduction or disassembly of embodied algorithms or database prohibited.
InstallShield™ 3.0. Copyright © 1997 InstallShield Software Corporation. All rights reserved.
Copyright © 1997 Microsoft Corporation. All rights reserved.
SmartHeap memory manager Copyright © 1991-1994 Arthur D. Applegate. All rights reserved.
Typefaces from the Bitstream ® typeface library copyright 1992.
Typefaces from Payne Loving Trust © 1996. All rights reserved.
The license management portion of this product is based on Élan License Manager ©1989, 1990 Élan Computer Group, Inc. All rights reserved.
Portions of this software are based on the work of the Independent JPEG Group.
GOVERNMENT USE
Use, duplication, or disclosure by the U. S. Government is subject to restrictions as set forth in FAR 12.212 (Commercial Computer Software-Restricted Rights) and DFAR 267.7202 (Rights in Technical Data and Computer Software), as applicable.
Table of Contents
Goal
High Level Design
Limitations
General Information
Initialization
Structures and Commands
Filenames
Undo
Return values
Update for AutoCAD T
AVLIB.H
New Material Features
Programmer Note!
Commands
av_background
av_colormap
av_errorstr
av_fog
av_initialize
av_light
av_loadlib
av_lsobj
av_matlib
av_rconfig
av_render
av_renderupate
av_replay
av_rfileopt
av_rmat
av_rpref
av_saveimg
av_scene
av_setuv
av_stats
ErrorCodes
Sample Applications
Make files
template
template.cpp
allmats
allmats.cpp
The goal for the AutoCAD Render API is to provide our developers with an efficient mechanism for accessing Render functionality from other applications.
The basic design is made up of two parts; an AutoCAD dynamic link library (DLL) and the interface library. The DLL (acRender.arx) is, in fact, the full featured Render application loaded by AutoCAD. acRender.arx contains hooks(exported functions) to communicate with a 3rd party Render API client. The interface library (avlib.lib) is a set of routines that communicate through an Rx connection to acRender.arx, therfore any application linked with avlib.lib must be an Rx application.
acRender.arx and the Render API library are tied to particular releases of AutoCAD since the required Rx interface libraries in AutoCAD are typically release dependant. This has the unfortunate consequence that 3rd party applications that link to avlib.lib will have to be rebuilt for each release of AutoCAD which changes the ARX footprint.
To load the library call the function av_loadlib(). This should be done in response to the AcRx::kLoadADSMsg, usually at the same time you ads_defun your functions. Additionally you should call av_initialize() each time you receive an AcRx::invkSubrMsg, usually in your top-level function handler. See the sample file template.cpp for an example. Both of these functions will return quickly if the library is already loaded and initialized.
The basic paradigm for use of avlib.lib is a set of function calls. Each function corresponds to one of the lisp callable functions described in Autocad Customization Guide. Each structure has a flags field that has a bit position for each member of the structure. If the parameter is required its bit MUST be set. If it is optional it is only examined if the bit is set. Any inappropriately set bit will be flagged as an error. On error returns (return value not equal to AvRetNorm) the flags will indicate the first parameter that was detected to be in error. The only exception to this are excessive flags all of which will be set. Note that in the descriptions below, any field not listed in a table for a command mode is not permitted, and will be flagged as errors if passed in.
For fields which take string values the table will list how many characters are allowed in the string, but one more character may be needed for the NULL terminator for the string.
All commands which specify a color use the AvColor structure:
typedef enum AvColorSystem;
typedef struct AvColor;
For RGB colors the ADS point holds the red, green and blue components, all of which are in the range 0.0 to 1.0. For HLS the point holds the hue, lightness and saturation of the color. The ranges for hue, lightness and saturation are 0.0 to 1.0.
Since the length of paths and file names is operating system specific throughout this document and the api such structure members are char *.
Memory Management
Most commands do not allocate any memory that need to be freed by the application. The exceptions to this rule are the various "List" modes which return results in resbuf chains. These return values must be freed by the user of the library with the ads_relrb() call. Additionally, several "List" modes return selection sets which should be freed with the ads_ssfree() call. Also, "List" modes that return parameters that are strings, the strings are dynamically allocated.
It is the responsibility of user applications to do undo management. Unlike the normal command paths to Render the C API path does not provide UNDO/Group UNDO/End pairs. This allows the user program to do so. If a user program fails to group actions the UNDO’ing of Render actions can not be guarenteed.
Functions returning AvExtraneousField will set the flags member of the parameters structure for each extraneous field.
Functions returning AvRequiredFieldMissing will set the flag for the first missing field found.
Functions returning AvFieldOutOfRange or AvBadFieldValue will set the flag for the first field found to cause the range or value error.
Listing commands will set the flags to indicate the parameters that are being returned.
The flags field is undefined in all other cases.
AutoCAD T introduced changes to the Render material definition that required changes to the Render API library for compatibility with AutoCAD R14. Application developers will need to link with versions of the library with the following changes:
#define AvLibVersion 0.02 ! Updated from 0.01
typedef enum AvRmatMapFlags;
typedef struct AvRmatMap;
The AutoCAD T Render material definition was modified to add real world scale and Auto-axis texture mapping. These attributes are attached to each map definition and are passed in the mappingFlags member of AvRmatMap. These fields greatly enhance the useability of texture mapping in AutoCAD Render.
AutoCAD R14 cannot receive
materials with the new mappingFlags member, while AutoCAD T has this
capability. The AvMapStyle flag is used
to build the proper resbuf list. If the
flag is set then the resbuf includes mappingFlags links. One way to tell whether AutoCAD R14 Render or
AutoCAD T Render is loaded is to get a material from a drawing using
AvRmatList. If the material returns with
AvMapStyle set, then AutoCAD T is present and mappingFlags can be used safely.
GENERAL
The av_background command is used to set the background for rendering in Render.
SYNOPSIS
#include "avlib.h"
AvErrorCode av_background(AvBackgroundParam *p);
typedef enum AvBackgroundMode;
typedef enum AvBgFit;
typedef enum AvBackgroundFlags;
typedef struct AvBackgroundParam;
DESCRIPTION
av_background() has 7 modes:
AvBackgroundSolid
Set the background to be a solid color, either specified or locked to the AutoCAD background color.
Parameter |
Req'd |
Values |
Default |
Description |
lock |
or color |
0 ... 1 |
1 |
Lock the background color to the AutoCAD background color |
solid |
or lock |
AvColor |
(1.0 1.0 1.0) |
Sets the background color to be a solid different from the AutoCAD background |
Either the lock parameter or the color1 parameter MUST but both is an error.
AvBackgroundGradient
Sets the background to be a two or three color gradient.
Parameter |
Req'd |
Values |
Default |
Description |
color1 |
Yes |
AvColor |
none |
Top color of the gradient. |
color2 |
Yes |
AvColor |
none |
Middle color of the gradient |
color3 |
Yes |
AvColor |
none |
Bottom color of the gradient |
angle |
No |
-90.0 ... 90.0 |
0.0 |
Rotation angle of the horizon of the gradient |
horizon |
No |
0.0 ... 1.0 |
0.5 |
Location of the center of the middle band of the gradient |
height |
No |
0.0 ... 1.0 |
0.3 |
Height of the middle band of the gradient |
If the height is set to 0.0 a two color gradient will be produced.
AvBackgroundImage
Set the background to be an image from a specified file.
Parameter |
Req'd |
Values |
Default |
Description |
imageFile |
Yes |
structure (see below) |
||
fit |
No |
AvBgFit |
AvBackgroundFitScale |
imageFile (see AvRmatMap in the materials section)
Parameter |
Req'd |
Values |
Default |
Description |
name |
Yes |
char *name |
none |
Name of the image file |
tile |
No |
AvTileType |
AvTileTile | |
scale |
No |
ads_point |
1.0 | |
offset |
No |
ads_point |
0.0 |
The fit parameter specifies the action on the image if it is not set the scales and offset are used (or defaulted). The AVEMAPS path will be search at render time if an absolute path is not specified. Passing an tile of AvTileDefault is not allowed. NOTE: File existance and validity is only checked at render time.
AvBackgroundMerge
Sets the background to be an image from the current AutoCAD window. This mode supported only when rendering to viewport though it may be set at any time regardless of the current render destination setting. No parameters are required.
AvBackgroundEnv
Sets the global environment map. This can be locked to the background (Solid, Gradient or Image) or an image file may be specified. Setting no flags set the default of envLock to background.
Parameter |
Req'd |
Values |
Default |
Description |
envLock |
No |
AvBoolean |
TRUE | |
envFile |
No |
filename |
none |
Either envLock or envFile can be specified but not both.
AvBackgroundList
Lists the current state of the background. This will list what the use has set not what will be rendered (see AvBackgroundMerge above). No parameters are required. The state of background is returned in the structure.
AvBackgroundUI
Calls the UI version of Background.
GENERAL
The av_colormap command is used to do save and restore AutoCAD colormaps.
SYNOPSIS
#include "avlib.h"
AvErrorCode av_colormap(AvFogParam *p);
typedef enum AvColormapMode;
typedef struct AvColormapParam;
DESCRIPTION
av_colormap() has 2 modes:
AvInitAndSave
This mode saves the current colormap and sets the current colormap to the AutoCAD default colormap. This is only effective when on 8 bit displays, of course. An AvRetError is returned if there is a currently save colormap (ie you can NOT nest calls to av_colormap().
AvRestoreAndForget
This mode restores the save colormap. An AvRetError is returned if no colormap has been saveed.
GENERAL
The av_errorstr command is used to provide internationalized error strings for each of the error codes supported by the library.
SYNOPSIS
#include "avlib.h"
char *av_errorstr(AvErrorCode *code);
DESCRIPTION
av_errorstr takes as it's parameter an AvErrorCode. Out of range error codes return an "Unknown Error" string.
GENERAL
The av_fog command is used to do fogging and depth cueing of scenes with Render. Depth Cueing is simply fogging with a dark (traditionally dark blue) color.
SYNOPSIS
#include "avlib.h"
AvErrorCode av_fog(AvFogParam *p);
typedef enum AvFogFlags;
typedef enum AvFogMode;
typedef struct AvFogParam;
DESCRIPTION
av_fog() has 3 modes:
AvFogSet
Sets the fog/depth cueing as specified by the AvFogParam structure.
Parameter |
Req'd |
Values |
Default |
Description |
enabled |
no |
AvBoolean |
TRUE | |
color |
no |
AvColor |
(1.0 1.0 1.0) |
White is fog, dark blue is traditionally depth cueing. |
nearDistance |
no |
0.0 ... 1.0 |
0.0 |
Percentage of the distanced from the camera to back of the scene that defines the near fog plane. Fogging will be a constant (nearPercent) till this point. |
farDistance |
no |
0.0 ... 1.0 |
1.0 |
Percentage of the distanced from the camera to back of the scene that defines the far fog plane. Fogging will be a constant (farPercent) beyond this point. |
nearPercent |
no |
0.0 ... 1.0 |
0.0 | |
farPercent |
no |
0.0 ... 1.0 |
1.0 | |
background |
no |
AvBoolean |
FALSE |
Fog any background along with geometry |
Fog between the near and far planes is smoothly ramped from the nearPercent to the farPercent.
Dview's clipping planes can be used to sent the bounds of the scene (basis for near and far Distance). If the clipping planes are not set the bounding boxes of the geometry will be used to determine the bounds.
AvFogList
Lists the current state of fog. No parameters are required. The structure is filled in indicating the state of fog.
AvFogUI
Calls the UI version of Fog. No parameters are required.
GENERAL
The av_initialize command is used to initialize the library and its connections to Render.
SYNOPSIS
#include "avlib.h"
AvErrorCode av_initialize(void);
DESCRIPTION
av_ initialize takes no parameters. av_initialize needs to be called after av_loadlib and before any other calls are made to the library. The one restriction is that it may only be called in response to the AcRx::kInvkSubrMsg message from the Rx dispatcher. In other words, it must be called in a function call that was defined with ads_defun. It is recommended that you call this function every time you get a call to one of your functions. It will only initialize on the first call, and return immediately thereafter.
GENERAL
The av_light command is used to create, modify, and query lights and establish North in the drawing
SYNOPSIS
#include "avlib.h"
AvErrorCode av_light(AvLightParam *p);
typedef enum AvLightFlags;
typedef enum AvLightMode;
typedef enum AvAttenType;
typedef enum AvLightType;
typedef struct AvLightParam;
DESCRIPTION
av_light() has 13 modes:
AvLightNewDistant
Create a new distant light. If any of the sun angle parameters are supplied (month, day, hour, minute, daylight, latitude, longitude, timezone) then calculate the light location using the calculated sun angle.
AvLightParam:
Parameter |
Req'd |
Values |
Default |
Description |
name |
Yes |
8 character |
None |
Light name. |
intensity |
No |
0.0 ... 1.0 |
1.0 |
Light intensity. |
color |
No |
AvColor |
(1.0,1.0,1.0) |
Light color. |
from |
No |
ads_point |
Current look-from |
Light location. |
to |
No |
ads_point |
Current look-at |
Light target. |
shadowmap- size |
No |
0 ... 4096 |
0 (no shadow map) |
Shadow map dimension in pixels. |
shadow- softness |
No |
1.0 ... 10.0 |
1.0 | |
shadow |
No |
AvBoolean |
OFF |
Shadow-casing toggle. |
shadowobjects |
No |
ads_name |
None |
Selection set of objects which bound shadow maps. |
month |
No |
1 ... 12 |
9 | |
day |
No |
1 ... 31 |
21 | |
hour |
No |
0 ... 24 |
15 | |
minute |
No |
0 ... 59 |
0 | |
daylight |
No |
AvBoolean |
OFF |
Daylight savings toggle. |
latitude |
No |
-90.0 ... 90.0 |
37.62 |
Latitude of San Francisco |
longitude |
No |
-180.0 ... 180.0 |
122.37 |
Longitude of San Francisco |
timezone |
No |
-12 ... 12 |
8 (PST) |
Offset, in hours, from GMT |
AvLightNewSpot
Create a new spotlight.
AvLightParam:
Parameter |
Req'd |
Values |
Default |
Description |
name |
Yes |
8 character |
None |
Light name. |
intensity |
No |
† |
†† |
Light intensity. |
color |
No |
AvColor |
(1.0,1.0,1.0) |
Light color. |
from |
No |
ads_point |
Current look-from |
Light location. |
to |
No |
ads_point |
Current look-at |
Light target. |
shadowmap- size |
No |
0 ... 4096 |
0 (no shadow map) |
Shadow map dimension in pixels. |
shadow- softness |
No |
1.0 ... 10.0 |
1.0 | |
shadow |
No |
AvBoolean |
OFF |
Shadow-casing toggle. |
shadowobjects |
No |
ads_name |
None |
Selection set of objects which bound shadow maps. |
attenuation |
No |
AvAttenType |
AvAttenuation-Inverse |
Light attenuation mode. |
hotspot |
No |
0.0 ... 160.0 |
44.0 |
Angle of brightest beam. |
falloff |
No |
0.0 ... 160.0 (and > hotspot) |
45.0 |
Angle of rapid intensity decay. |
† 0.0...1.0 (attenuation == AvAttenNone)
0.0...(drawing-extents/2) (attenuation == AvAttenInverse)
0.0...(drawing-extents/2)2 (attenuation == AvAttenuationInverseSquare)
†† 1.0 (attenuation == AvAttenNone)
(drawing-extents/2) (attenuation == AvAttenInverse)
(drawing-extents/2)2 (attenuation == AvAttenuationInverseSquare)
AvLightNewPoint
Create a new point light.
AvLightParam:
Parameter |
Req'd |
Values |
Default |
Description |
name |
Yes |
8 character |
None |
Light name. |
intensity |
No |
† |
†† |
Light intensity. |
color |
No |
AvColor |
(1.0,1.0,1.0) |
Light color. |
from |
No |
ads_point |
Current look-from |
Light location. |
shadowmap- size |
No |
0 ... 4096 |
0 (no shadow map) |
Shadow map dimension in pixels. |
shadow- softness |
No |
1.0 ... 10.0 |
1.0 | |
shadow |
No |
AvBoolean |
OFF |
Shadow-casing toggle. |
shadowobjects |
No |
ads_name |
None |
Selection set of objects which bound shadow maps. |
attenuation |
No |
AvAttenType |
AvAttenuation-Inverse |
Light attenuation mode. |
† 0.0...1.0 (attenuation == AvAttenNone)
0.0...(drawing-extents/2) (attenuation == AvAttenInverse)
0.0...(drawing-extents/2)2 (attenuation == AvAttenuationInverseSquare)
†† 1.0 (attenuation == AvAttenNone)
(drawing-extents/2) (attenuation == AvAttenInverse)
(drawing-extents/2)2 (attenuation == AvAttenuationInverseSquare)
AvLightAmbient
Specify settings related to ambient light.
AvLightParam:
Parameter |
Req'd |
Values |
Default |
Description |
intensity |
No |
0.0 ... 1.0 |
1.0 |
Ambient intensity. |
color |
No |
AvColor |
(1.0,1.0,1.0) |
Ambient color. |
AvLightAmbientList
Query settings related to ambient light.
AvLightParam:
Parameter |
Values |
Description |
intensity |
0.0 ... 1.0 |
Ambient intensity. |
color |
AvColor |
Ambient color. |
AvLightModify
Modify any of the settings related to an individual existing light.
AvLightParam:
Parameter |
Req'd |
Values |
Default |
Description |
name |
Yes |
8 character |
None |
Light name. |
intensity |
No |
0.0 ... 1.0 |
1.0 |
Light intensity. |
color |
No |
AvColor |
(1.0,1.0,1.0) |
Light color. |
from |
No |
ads_point |
Current look-from |
Light location. |
to |
No |
ads_point |
Current look-at |
Light target. |
shadowmap- size |
No |
0 ... 4096 |
0 (no shadow map) |
Shadow map dimension in pixels. |
shadow- softness |
No |
1.0 ... 10.0 |
1.0 | |
shadow |
No |
AvBoolean |
OFF |
Shadow-casing toggle. |
shadowobjects |
No |
ads_name |
None |
Selection set of objects which bound shadow maps. |
month |
No |
1 ... 12 |
9 | |
day |
No |
1 ... 31 |
21 | |
hour |
No |
0 ... 24 |
15 | |
minute |
No |
0 ... 59 |
0 | |
daylight |
No |
AvBoolean |
OFF |
Daylight savings toggle. |
latitude |
No |
-90.0 ... 90.0 |
37.62 | |
longitude |
No |
-180.0 ... 180.0 |
122.37 | |
timezone |
No |
-12 ... 12 |
8 (PST) | |
attenuation |
No |
AvAttenType |
AvAttenuation-Inverse |
Light attenuation mode. |
hotspot |
No |
0.0 ... 160.0 |
44.0 |
Angle of brightest beam. |
falloff |
No |
0.0 ... 160.0 (and > hotspot) |
45.0 |
Angle of rapid intensity decay. |
AvLightDelete
Delete a light.
AvLightParam:
Parameter |
Req'd |
Values |
Default |
Description |
name |
Yes |
8 character |
None |
Light name to be deleted. |
AvLightRename
Rename a light.
AvLightParam:
Parameter |
Req'd |
Values |
Default |
Description |
name |
Yes |
8 character |
None |
Light name to be renamed. |
newName |
Yes |
8 character |
None |
New light name. |
AvLightNorthLocator
Modify settings related to North location.
AvLightParam:
Parameter |
Req'd |
Values |
Default |
Description |
northUCS |
No |
string |
None |
Name of UCS to use.† |
northRotation |
No |
0.0 ... 360.0 |
None |
Rotation in WCS X/Y plane. |
† Use "WCS" to effectively disable this option.
AvLightNorthLocatorList
List North Location related information.
AvLightParam:
Parameter |
Values |
Description |
northUCS |
string |
Name of UCS to used (may be NULL).† |
northRotation |
0.0 ... 360.0 |
Rotation in WCS X/Y plane. |
† It is the caller's responsibility to free the memory which has been allocated for this string
AvLightList
Query the settings for an individual light.
AvLightParam:
Parameter |
Values |
Description |
name |
8 character |
Light name. |
intensity |
0.0 ... 1.0 |
Light intensity. |
color |
AvColor |
Light color. |
from |
ads_point |
Light location. |
to |
ads_point |
Light target. |
shadowmap- size |
0 ... 4096 |
Shadow map dimension in pixels. |
shadow- softness |
1.0 ... 10.0 | |
shadow |
AvBoolean |
Shadow-casing toggle. |
shadowobjects |
ads_name |
Selection set of objects which bound shadow maps. |
month |
1 ... 12 | |
day |
1 ... 31 | |
hour |
0 ... 24 | |
minute |
0 ... 59 | |
daylight |
AvBoolean |
Daylight savings toggle. |
latitude |
-90.0 ... 90.0 | |
longitude |
-180.0 ... 180.0 | |
timezone |
-12 ... 12 | |
attenuation |
AvAttenType |
Light attenuation mode. |
hotspot |
0.0 ... 160.0 |
Angle of brightest beam. |
type |
AvLightType |
Light type. |
falloff |
0.0 ... 160.0 (and > hotspot) |
Angle of rapid intensity decay. |
AvLightListAll
Provides the names of all lights in the drawing.
AvLightParam:
Parameter |
Values |
Description |
stringList |
struct resbuf * |
Names of lights in drawing.† |
† Each resbuf element in the chain contains the name of a light using the pointer resbuf->resval.rstring.
AvLightUI
Invoke the Lights dialog.
GENERAL
The av_loadlib command is used to load the library.
SYNOPSIS
#include "avlib.h"
AvErrorCode av_loadlib(void);
DESCRIPTION
av_loadlib takes no parameters.
GENERAL
The av_lsobj command is used to create, modify, and delete landscape objects and libraries of landscape objects.
SYNOPSIS
#include "avlib.h"
AvErrorCode av_lsobj(AvLsParam *p);
typedef enum AvLsAlign;
typedef enum AvLsMode;
typedef enum AvLsFlags;
typedef struct AvLsParam;
DESCRIPTION
av_lsobj() has 12 modes:
AvLsNew
Creates a new landscape object. The name must be the name of an object in the current landscape object library.
Parameter |
Req'd |
Values |
Default |
Description |
name |
Yes |
256 characters |
None |
The name if the new landscape object |
height |
Yes |
Greater than 0.0 |
None |
The height of the new landscape object |
position |
Yes |
ads_point |
None |
The base of the new landscape object |
alignment |
Yes |
AvLsAlign |
None |
The camera alignment and geometry specification of the new landscape object |
AvLsEdit
Modify an existing landscape object.
Parameter |
Req'd |
Values |
Default |
Description |
entity |
Yes |
ads_name |
None |
The ads_name of the object to modify |
height |
No |
Greater than 0.0 |
None |
The height of the landscape object |
position |
No |
ads_point |
None |
The base of the landscape object |
alignment |
No |
AvLsAlign |
None |
The camera alignment and geometry specification of the landscape object |
Any fields not specified are left unchanged.
AvLsList
List the values in a landscape object.
Parameter |
Req'd |
Values |
Default |
Description |
entity |
Yes |
ads_name |
None |
The ads_name of the object to list |
This command fills in the name, height, position, and alignment fields of the structure for the specified object.
AvLsLibOpen
Open a new landscape library.
Parameter |
Req'd |
Values |
Default |
Description |
name |
Yes |
Filename |
None |
The file name of the library to open |
Open the specified library and makes it the current landscape library.
AvLsLibDelete
Delete an entry from the current landscape library.
Parameter |
Req'd |
Values |
Default |
Description |
name |
Yes |
Filename |
None |
Name of the library entry to delete |
AvLsLibModify
Modify an entry in the current landscape library.
Parameter |
Req'd |
Values |
Default |
Description |
name |
Yes |
Filename |
None |
The name of the library entry to modify |
alignment |
No |
AvLsAlign |
None |
The camera alignment and geometry specification of the landscape object |
texture |
No |
Filename |
None |
The texture map for the object |
opacity |
No |
Filename |
None |
The opacity map for the object |
AvLsLibAdd
Add and entry to the current landscape library.
Parameter |
Req'd |
Values |
Default |
Description |
name |
Yes |
Filename |
None |
The name of the library entry to modify |
alignment |
Yes |
AvLsAlign |
None |
The camera alignment and geometry specification of the landscape object |
texture |
Yes |
Filename |
None |
The texture map for the object |
opacity |
Yes |
Filename |
None |
The opacity map for the object |
AvLsLibList
List the entries in the landscape library. If the name is not specified, this mode returns a list of the names of the objects in the current landscape library in the "stringList" member of the structure. If a name is provided, it returns the alignment, texture and opacity for that entry.
Parameter |
Req'd |
Values |
Default |
Description |
name |
No |
Filename |
None |
The name of the library entry to list |
AvLsLibSave
Saves the current landscape library into the given file.
Parameter |
Req'd |
Values |
Default |
Description |
name |
Yes |
Filename |
None |
File name of the landscape library to save |
AvLsNewUI
Display the "lsnew" dialog.
AvLsEditUI
Display the "lsedit" dialog.
AvLsLibUI
Display the "lslib" dialog.
GENERAL
The av_matlib command is used to manipulate Render material libraries (.mli files).
SYNOPSIS
#include "avlib.h"
AvErrorCode av_matlib(AvMatlibParam *);
typedef enum AvMatlibFlags;
/* All Possible modes for MATLIB command */
typedef enum AvMatlibMode;
/* Structure for the MATLIB command to be passed in */
typedef struct AvMatlibParam;
DESCRIPTION
av_matlib() has 6 modes:
AvMatlibImport
Import a material into the drawing from a .mli file.
AvMatlibParam:
Parameter |
Req'd |
Values |
Default |
Description |
materialName |
Yes |
16 character |
None |
Name of material to import. |
libraryName |
Yes |
AvFilename |
None |
Fully qualified .mli filename from which to import material. |
AvMatlibExport
Export a material from the drawing to a .mli file.
AvMatlibParam:
Parameter |
Req'd |
Values |
Default |
Description |
materialName |
Yes |
16 character |
None |
Name of material to export. |
libraryName |
Yes |
AvFilename |
None |
Fully qualified .mli filename to which to export material. |
AvMatlibDelete
Delete a material from the drawing.
AvMatlibParam:
Parameter |
Req'd |
Values |
Default |
Description |
materialName |
Yes |
16 character |
None |
Name of material to delete. |
AvMatlibPurge
Delete all unused materials from the drawing.
AvMatlibList
List the materials in the drawing or a .mli file.
AvMatlibParam:
Parameter |
Req'd |
Values |
Default |
Description |
libraryName |
No |
AvFilename |
None |
Fully qualified .mli filename (otherwise list materials in drawing). |
AvMatlibSet
Set the current material library.
AvMatlibParam:
Parameter |
Req'd |
Values |
Default |
Description |
libraryName |
Yes |
AvFilename |
None |
Fully qualified .mli filename to make current. |
AvMatlibRemove
Remove a material from a .mli file.
AvMatlibParam:
Parameter |
Req'd |
Values |
Default |
Description |
materialName |
Yes |
16 character |
None |
Name of material to remove. |
libraryName |
Yes |
AvFilename |
None |
Fully qualified .mli filename from which to remove material. |
AvMatlibName
Return the name of the current material library in the librayaName field of the AvMatParam structure. The caller is resposible for freeing this string..
AvMatlibUI
Invoke the Material Library dialog.
GENERAL
The av_rconfig command calls Render and tells it to reconfigure. This command has NO parameters in that all it does is enter Render's interactive reconfiguration command. No other configuration management can be accomplished by the client application.
SYNOPSIS
#include "avlib.h"
AvErrorCode av_rconfig(void);
DESCRIPTION
av_rconfig takes no parameters. See the AutoVision User's Guide and Reference for specifics on use of this command.
GENERAL
The av_render command is used to invoke the renderers and control the name of the destination file or the size and position of the crop window.
SYNOPSIS
#include "avlib.h")
AvErrorCode av_render(AvRenderParam *p);
ttypedef enum AvRenderFlags;
/* All Possible modes for RENDER command */
typedef enum AvRenderMode;
/* Structure for the RENDER command to be passed in */
typedef struct AvRenderParam;
DESCRIPTION
av_render has 2 modes:
AvRender
Invoke the renderer, honoring the current render preferences settings. Regardless of the "skip render dialog" toggle in render preferences the dialog is skipped.
AvRenderParam:
Parameter |
Req'd |
Values |
Default |
Description |
fileName |
No |
AvFilename |
None |
Name of file to output rendered image (assuming rendering destination is FILE). |
point1 |
No |
ads_point |
None |
Upper left corner of cropwindow (assuming AvRprefCropwindowToggle is ON). |
point2 |
No |
ads_point |
None |
Lower right corner of cropwindow (assuming AvRprefCropwindowToggle is ON). |
AvRenderUI
Invoke the Render dialog.
GENERAL
The av_renderupdate command is used to control the updating of the Render internal geometry database.
SYNOPSIS
#include "avlib.h"
AvErrorCode av_renderupdate(AvRenderUpdateParam *p);
typedef enum AvRenderUpdateMode;
typedef struct AvRenderUpdateParam;
DESCRIPTION
av_renderupdate has 4 modes:
AvRenderUpdateAlways
Causes the Render geometry database to be updated for every rendering.
AvRenderUpdateOff
Causes Render to update it's geometry database as it sees fit.
AvRenderUpdateNext
Forces an update of the geometry database for the next rendering then returns to the previous mode.
AvRenderUpdateNotNext
Forces the reuse of the geometry database for the next rendering then returns to the previous mode.
GENERAL
The av_replay command is used to paint an image file onto the rendering screen for viewing. In the past is was also used to provide, in concert with a merge rendering, backgrounds. This need has been eliminated with the addition of the background command.
SYNOPSIS
#include "avlib.h"
AvErrorCode av_replay(AvReplayParam *p);
typedef enum AvReplayFileType;
typedef enum AvReplayMode;
typedef enum AvReplayFlags;
typedef struct AvReplayParam;
DESCRIPTION
av_replay() has 2 modes:
AvReplay
Sets the file, filetype, size and positions of the replayed image.
Parameter |
Req'd |
Values |
Default |
Description |
filename |
yes |
filename |
none | |
type |
yes |
AvReplayFileType |
none |
TGA, TIFF, GIF |
xoff |
no |
0 |
Offset of the bottom left corner of the image from the bottom left of the display. |
|
yoff |
no |
0 |
see xoff |
|
xsize |
no |
0 > xsize > image x |
Actual X Size |
amount of the image to display |
ysize |
no |
0 > ysize > image y |
Actual Y Size |
see ysize |
The length of the filename is MAXPATHLEN characters (OS dependent from ads.h).
AvReplayUI
Calls the UI version of Replay.
GENERAL
The av_rfileopt command is used to configure the render to file functionality. Fourteen file formats are supported as well as a large number of configurations of subtypes, eg. compression, colormodes, interlacing, etc. NOTE: there is no UI mode for this command since it is available from the rpref UI and render UI modes, though indirectly.
SYNOPSIS
#include "avlib.h"
AvErrorCode av_rfileopt(AvFileOptParam *p);
typedef enum AvFileOptColor;
typedef enum AvFileOptMode;
typedef enum AvImageSize;
typedef enum AvFileOptFlags;
typedef struct AvFileOptParam;
DESCRIPTION
av_rfileopt() has 16 modes, with 2 excptions they correspond to image file types:
AvFileOptGIF
Sets the output file type to the CompuServ GIF format.
Parameter |
Req'd |
Values |
Default |
Description |
xRes |
Yes |
None |
Output image x resolution |
|
yRes |
Yes |
None |
Output image y resolution |
|
aspectRatio |
Yes |
> 0.0 |
None | |
colorMode |
Yes |
AvFileOptColor |
None |
Mono, G8, C8 |
interlace |
Yes |
1 or 2 |
None |
AvFileOptX11
Sets the output file type to X11 pixmap format.
Parameter |
Req'd |
Values |
Default |
Description |
xRes |
Yes |
None |
Output image x resolution |
|
yRes |
Yes |
None |
Output image y resolution |
|
aspectRatio |
Yes |
> 0.0 |
None | |
colorMode |
Yes |
AvFileOptColor |
None |
Mono, G8, C8 |
AvFileOptPBM
Sets the output file type to Jef Poskanzer's Portable Bitmap format.
Parameter |
Req'd |
Values |
Default |
Description |
xRes |
Yes |
None |
Output image x resolution |
|
yRes |
Yes |
None |
Output image y resolution |
|
aspectRatio |
Yes |
> 0.0 |
None | |
ascii |
Yes |
AvBoolean |
None |
TRUE ==ASCII FALSE == BINARY |
AvFileOptPGM
Sets the output file type to Jef Poskanzer's Portable Graymap format.
Parameter |
Req'd |
Values |
Default |
Description |
xRes |
Yes |
None |
Output image x resolution |
|
yRes |
Yes |
None |
Output image y resolution |
|
aspectRatio |
Yes |
> 0.0 |
None | |
ascii |
Yes |
AvBoolean |
None |
TRUE ==ASCII FALSE == BINARY |
AvFileOptPPM
Sets the output file type to Jef Poskanzer's Portable Pixmap format.
Parameter |
Req'd |
Values |
Default |
Description |
xRes |
Yes |
None |
Output image x resolution |
|
yRes |
Yes |
None |
Output image y resolution |
|
aspectRatio |
Yes |
> 0.0 |
None | |
colorMode |
Yes |
AvFileOptColor |
None |
C8, C24 |
ascii |
Yes |
AvBoolean |
None |
TRUE ==ASCII FALSE == BINARY |
AvFileOptTGA
Sets the output file type to AT&T's Targa format.
Parameter |
Req'd |
Values |
Default |
Description |
xRes |
Yes |
None |
Output image x resolution |
|
yRes |
Yes |
None |
Output image y resolution |
|
aspectRatio |
Yes |
> 0.0 |
None | |
colorMode |
Yes |
AvFileOptColor |
None |
G8, C8, C16, C24, C32 |
interlace |
No |
1, 2 or 4 |
1 |
TGA interlace modes are not commonly supported. It is recommended to set 1 |
compression |
No |
AvBoolean |
TRUE | |
bottomUp |
No |
AvBoolean |
FALSE |
AvFileOptPCX
Sets the output file type to ??? PCX format.
Parameter |
Req'd |
Values |
Default |
Description |
xRes |
Yes |
None |
Output image x resolution |
|
yRes |
Yes |
None |
Output image y resolution |
|
aspectRatio |
Yes |
> 0.0 |
None | |
colorMode |
Yes |
AvFileOptColor |
None |
Mono, G8, C8 |
AvFileOptSUN
Sets the output file type to Sun Microsystems rasterfile format.
Parameter |
Req'd |
Values |
Default |
Description |
xRes |
Yes |
None |
Output image x resolution |
|
yRes |
Yes |
None |
Output image y resolution |
|
aspectRatio |
Yes |
> 0.0 |
None | |
colorMode |
Yes |
AvFileOptColor |
None |
Mono, G8, C8, C24 |
AvFileOptBMP
Sets the output file type to Microsoft Windows Bitmap format.
Parameter |
Req'd |
Values |
Default |
Description |
xRes |
Yes |
None |
Output image x resolution |
|
yRes |
Yes |
None |
Output image y resolution |
|
aspectRatio |
Yes |
> 0.0 |
None | |
colorMode |
Yes |
AvFileOptColor |
None |
Mono, G8, C8 |
AvFileOptPS
Sets the output file type to Level 1 encapsulated postscript.
Parameter |
Req'd |
Values |
Default |
Description |
xRes |
Yes |
None |
Image resolution in the Poscript unit square |
|
yRes |
Yes |
None | ||
aspectRatio |
Yes |
> 0.0 |
None | |
colorMode |
Yes |
AvFileOptColor |
None |
Mono, G8, C8, C24 |
portrait |
No |
AvBoolean |
FALSE |
TRUE = Portrait FALSE = Landscape |
imageSize |
No |
AvImageSize |
AvFileOptAuto | |
size |
if AvFileOpt Custom |
None |
The number of x pixels in the result |
AvFileOptTIFF
Sets the output file type to Tag Indexed File Format.
Parameter |
Req'd |
Values |
Default |
Description |
xRes |
Yes |
None |
Output image x resolution |
|
yRes |
Yes |
None |
Output image y resolution |
|
aspectRatio |
Yes |
> 0.0 |
None | |
colorMode |
Yes |
AvFileOptColor |
None |
G8, C8, C24, C32 |
compression |
No |
AvBoolean |
TRUE |
AvFileOptFAX
Sets the output file type to Group 3 Fax format.
Parameter |
Req'd |
Values |
Default |
Description |
xRes |
Yes |
None |
Output image x resolution |
|
yRes |
Yes |
None |
Output image y resolution |
|
aspectRatio |
Yes |
> 0.0 |
None | |
botomUp |
No |
AvBoolean |
TRUE |
TRUE = Reversed FALSE = Standard |
AvFileOptIFF
Sets the output file type to Amiga IFF format.
Parameter |
Req'd |
Values |
Default |
Description |
xRes |
Yes |
None |
Output image x resolution |
|
yRes |
Yes |
None |
Output image y resolution |
|
aspectRatio |
Yes |
> 0.0 |
None | |
colorMode |
Yes |
AvFileOptColor |
None |
Mono, G8, C8 |
AvFileOptFITS
Sets the output file type to FITS format.
Parameter |
Req'd |
Values |
Default |
Description |
xRes |
Yes |
None |
Output image x resolution |
|
yRes |
Yes |
None |
Output image y resolution |
|
aspectRatio |
Yes |
> 0.0 |
None |
AvFileOptList
Lists the currently configured output file type.
GENERAL
The av_rmat command is used to create, duplicate, modify, attach, detach and list Render materials.
SYNOPSIS
#include "avlib.h"
AvErrorCode av_rmat(AvRmatParam *p);
typedef enum AvRmatMapFlags;
typedef enum AvTileType;
typedef struct AvRmatMap;
typedef enum AvRmatStandardFlags;
/* structure of the standard material type description. */
typedef struct AvRmatStandard;
typedef enum AvRmatMarbleFlags;
/* structure of the marble material type description. */
typedef struct AvRmatMarble;
typedef enum AvRmatGraniteFlags;
/* structure of the Granite material type description*/
typedef struct AvRmatGranite;
typedef enum AvRmatWoodFlags;
typedef struct AvRmatWood;
typedef enum AvRmatFlags;
typedef enum AvMaterialType;
typedef enum AvRmatAttachMethod;
typedef enum AvRmatMode;
/* structure of the material command */
typedef struct matParams;
unsigned long flags;
} AvRmatParam;
DESCRIPTION
In all of the commands below, parameters that specify colors are represented by the type AvColor, which holds the RGB or HLS values specifying the color. The special RGB value of (-1.0, -1.0, -1.0) is given the name "By ACI" and means that the color is determined from the AutoCAD Color Index of the object being rendered.
New behavior for AVLIB 0.2: The enum AvRmatMapFlags has a new member AvMapStyle. It flags the use of struct AvRmatMap member mappingFlags. It’s behavior when creating new materials is backward compatible with previous versions in that the field is NOT sent in the resbuf chain when the AvMapStyle flag is not set. Member mappingFlags has the following definition: 0x01 = Fixed Scale set, 0x02 = Use AutoAxis.
Many of the commands below take parameters in the AvRmatMap structure, which describes texture maps. Here is a description of its fields:
Parameter |
Req'd |
Values |
Default |
Description |
name |
Yes |
Filename |
None |
The file name of the texture map. Can be in TGA, TIFF, GIF, JPG or BMP format |
value |
No |
0.0 ... 1.0 |
1.0 |
Blend value |
tile |
No |
AvTileType |
AvTileCrop |
Crop or tile mode |
scale |
No |
ads_point |
(1.0, 1.0) |
U and V scale factor |
offset |
No |
ads_point |
(0.0, 0.0) |
U and V offset |
In the ads_point for offset and scale, it applies to the UV mapper on the material, and only the first two values are used in the point.
av_rmat has 8 modes:
AvRmatNew
Create a new material.
AvRmatParam:
Parameter |
Req'd |
Values |
Default |
Description |
matType |
Yes |
AvMaterialType |
None |
The type of material to create |
name |
Yes |
16 characters |
None |
The name of the new material |
bumpMap |
No |
AvRmatMap |
None |
Texture map used to perturb surface normals. |
reflMirror |
No |
AvBoolean |
FALSE |
Activates ray trace reflections |
reflColor |
No |
AvColor |
By ACI |
Color of reflections |
reflWeight |
No |
0.0 ... 1.0 |
0.2 |
Weight of reflection color |
reflMap |
No |
AvRmatMap |
None |
Reflection environment map |
roughness |
No |
0.0 ... 1.0 |
0.5 |
Determines size of specular highlights |
matParams |
No |
Varies |
None |
Material type-specific parameters |
The matParams union describes the parameters specific to the type of material begin created.
AvRmatStandard:
Parameter |
Req'd |
Values |
Default |
Description |
color |
No |
AvColor |
By ACI |
Main color of the material |
colorWeight |
No |
0.0 ... 1.0 |
0.7 |
Weight of main color |
patternMap |
No |
AvRmatMap |
None |
Texture map for material |
ambient |
No |
AvColor |
By ACI |
Ambient color of material |
ambWeight |
No |
0.0 ... 1.0 |
0.1 |
Weight of ambient color |
transparency |
No |
0.0 ... 1.0 |
0.0 |
Transparency of material |
opacityMap |
No |
AvRmatMap |
None |
Texture map of opacity |
Refraction |
No |
greater than 0.0 |
1.0 |
Relative index of refraction for material |
AvRmatMarble:
Parameter |
Req'd |
Values |
Default |
Description |
stoneColor |
No |
AvColor |
White |
The main color of the stone |
veinColor |
No |
AvColor |
Black |
The color of the veins |
turbulence |
No |
0 .. 100 |
3 |
The "twistiness" of the veins |
sharpness |
No |
0.0 ... 1.0 |
1.0 |
The blurring of the colors |
scale |
No |
greater than 0.0 |
0.16 |
The overall scale of the material |
AvRmatGranite:
Parameter |
Req'd |
Values |
Default |
Description |
color1 |
No |
AvColor |
White |
The first color |
amount1 |
No |
0.0 ... 1.0 |
1.0 |
Weight of the first color |
color2 |
No |
AvColor |
Dark Gray |
The second color |
amount2 |
No |
0.0 ... 1.0 |
1.0 |
Weight of the second color |
color2 |
No |
AvColor |
Black |
The third color |
amount3 |
No |
0.0 ... 1.0 |
1.0 |
Weight of the third color |
color4 |
No |
AvColor |
Light Gray |
The fourth color |
amount4 |
No |
0.0 ... 1.0 |
1.0 |
Weight of the fourth color |
sharpness |
No |
0.0 ... 1.0 |
1.0 |
The blurring of the colors |
scale |
No |
greater than 0.0 |
0.16 |
The overall scale of the material |
AvRmatWood:
Parameter |
Req'd |
Values |
Default |
Description |
lightColor |
No |
AvColor |
Light Brown |
Color of the light rings |
darkColor |
No |
AvColor |
Dark Brown |
Color of the dark rings |
ratio |
No |
0.0 ... 1.0 |
0.5 |
Ratio of light to dark rings |
density |
No |
0.0 ... 100.0 |
6.0 |
Density of the rings |
width |
No |
0.0 ... 1.0 |
0.4 |
Ring width variation |
shape |
No |
0.0 ... 1.0 |
0.2 |
Ring shape variation |
scale |
No |
greater than 0.0 |
0.16 |
The overall scale of the material |
AvRmatModify
The modify mode take exactly the same parameters as the AvRmatNew mode, except the name must refer to an existing material. Also, instead of default, fields that are left unspecified leave the object unmodified for that field, so no defaults apply.
AvRmatCopy
Copy a material.
Parameter |
Req'd |
Values |
Default |
Description |
name |
Yes |
16 characters |
None |
The name of the existing material |
newName |
Yes |
16 characters |
None |
The name of the new material |
AvRmatAttach
Attach a amterial to a selection set of objects, a layer or an ACI.
Parameter |
Req'd |
Values |
Default |
Description |
name |
Yes |
16 characters |
None |
The name of the material to attach |
aci |
No |
0 ... 255 |
None |
The ACI to attach the material to |
selectionSet |
No |
ads_name |
None |
The entities to attach the material to |
layerName |
No |
16 characters |
None |
The layer to attach the material to |
If no aci, selectionSet or layerName are specified, then this function reports back how the specified material is attached. It will set the selectionSet field to a set of all the entities that this material is attached to, it will also set the "rb" member to a resbuf chain with the layers and ACIs that it is attached to. In the resbuf chain, if the type is RTSTRING, it is a layer name, and if it is RTSHORT, it is an ACI number.
AvRmatAttachResbuf
This function call returns the resbuf chain which is the xdata required to attach a material to an entity. The chain may be use with ads_entmake or ads_entmod.
Parameter |
Req'd |
Values |
Default |
Description |
name |
Yes |
16 characters |
None |
The name of the material to attach |
AvRmatDetach
Detach materials from a selection set of objects, a layer ar an ACI.
Parameter |
Req'd |
Values |
Default |
Description |
aci |
No |
0 ... 255 |
None |
The ACI to attach the material to |
selectionSet |
No |
ads_name |
None |
The entities to attach the material to |
layerName |
No |
16 characters |
None |
The layer to attach the material to |
At least one of aci, selectionSet or layerName must be supplied.
AvRmatList
List the propoerties of a material, or the list of all materials in the drawing.
Parameter |
Req'd |
Values |
Default |
Description |
name |
No |
16 characters |
None |
The name of the material to list |
If no name is given, the AvRmatList mode returns a list of all the materials defined in the current drawing. The list is returned in the "rb" member of the AvRmatParam structure. It is a resbuf chain of RTSTRINGs. If the material name is specified, then all of the parameters of that material are filled into the AvRmatParam structure. The fields that are filled in are specified by the flags field in the structure.
AvRmatShowMat
Show what material is attached to a given object, layer or aci.
Parameter |
Req'd |
Values |
Default |
Description |
entity |
No |
ads_name |
None |
The ads_name of the entity to query |
layerName |
No |
16 characters |
None |
The layer. |
aci |
No |
0..255 |
None |
The aci. |
Return the name of the material attached to the given entity, layer or ACI in the "name" field. It also sets the "attachment" field to the method by which the material is attached if an entity is selected. Either an entity, layer or an ACI must be set.
AvRmatUI
This mode brings up the Render Rmat dialog.
GENERAL
The av_rpref command is used to control the renderer and its preference settings.
SYNOPSIS
#include "avlib.h"
AvErrorCode av_rpref(AvRprefParam *p);
typedef enum AvRprefFlags;
typedef enum AvRprefToggleFlags;
typedef struct AvRprefToggleParam;
/* All Possible modes for RPREF command */
typedef enum AvRprefMode;
typedef enum AvRprefPaletteType;
typedef enum AvRprefDestType;
typedef enum AvRprefRenderTypeParam;
typedef enum AvRprefQualityType;
typedef enum AvRprefAntiAliasType;
typedef enum AvRprefSampleType;
/* Structure for the RPREF command to be passed in */
typedef struct AvRprefParam;
DESCRIPTION
av_rpref has 4 modes:
AvRprefSet
Set common render options. Renderer-specific options apply to the current selected renderer.
AvRprefParam:
Parameter |
Req'd |
Values |
Default |
Description |
palette |
No |
AvRprefPalette-Type |
None |
Palette to use for rendering. |
destination |
No |
AvRprefDest-Type |
None |
Rendering destination. |
iconScale |
No |
> 0.0 |
1.0 |
Value to scale light icon blocks. |
renderType |
No |
AvRprefRender-TypeParam |
None |
Renderer to be used. |
selectEntities |
No |
AvBoolean |
OFF |
Option to prompt for selection set of entities to be rendered. |
smoothing-Angle |
No |
0.0 ... 90.0 |
45.0 |
Maximum angle at which to treat adjoining faces as a smooth surface. |
subSampling |
No |
1 ... 8 |
1 |
Factor by which to reduce rendered resolution. |
toggle |
No |
AvRprefToggle-Param |
NONE |
AvRprefToggle-Param:
Parameter |
Req'd |
Values |
Default |
Description |
AvRpref-Smooth-Toggle |
No |
AvBoolean |
None |
Smooth shading option. |
AvRpref-MergeToggle |
No |
AvBoolean |
None |
Merge rendering option. |
AvRpref-FinishToggle |
No |
AvBoolean |
None |
Apply finishes option. |
AvRprefShad-owToggle |
No |
AvBoolean |
None |
Render shadows option. |
AvRprefSkip-RdlgToggle |
No |
AvBoolean |
None |
Skip Render dialog for RENDER command option. |
AvRprefCrop-window-Toggle |
No |
AvBoolean |
None |
Crop window prompting option. |
AvRprefRopt
Set renderer-specific options.
AvRprefParam:
Parameter |
Req'd |
Values |
Default |
Description |
renderType |
Yes |
AvRprefRender-TypeParam |
None |
Renderer whose options are to be set. |
quality |
No |
AvRprefQuality-Type |
AvRprefGouraud |
Shading algorithm for AutoCAD Render. |
antiAlias |
No |
AvRprefAnti-AliasType |
AvRprefAnti-AliasMinimal |
Level of anti-aliasing. |
Texture-Sample |
No |
AvRprefSample-Type |
AvRprefSample-Linear |
Texture map sampling algorithm. |
minimumBias |
No |
>= 0.0 |
2.0 |
Shadow map minimum bias. |
maximumBias |
No |
>= 0.0 |
4.0 |
Shadow map maximum bias. |
discardBack-faces |
No |
AvBoolean |
OFF |
Option to discard all faces whose normal points away from the camera. |
backfaceNor-malNegative |
No |
AvBoolean |
ON |
Back facing normal points away from the camera. |
adaptive-Sampling |
No |
AvBoolean |
ON |
Adaptive sampling. |
contrast-Threshold |
No |
0.0 ... 1.0 |
0.03 |
Contrast threshold. |
AvRprefList
Query render options. All parameters are returned. If renderType is supplied, then renderer-specific items are returned which correspond to renderType. Otherwise, renderType is returned with the value of the currently selected renderer.
AvRprefParam:
Parameter |
Always Returned |
Values |
Description |
palette |
Yes |
AvRprefPalette-Type |
Palette to use for rendering. |
destination |
Yes |
AvRprefDest-Type |
Rendering destination. |
iconScale |
Yes |
> 0.0 |
Value to scale light icon blocks. |
renderType |
Yes |
AvRprefRender-TypeParam |
Renderer to be used. |
quality |
Yes |
AvRprefQuality-Type |
Shading algorithm for AutoCAD Render. |
antiAlias |
Yes |
AvRprefAnti-AliasType |
Level of anti-aliasing. |
Texture-Sample |
Yes |
AvRprefSample-Type |
Texture map sampling algorithm. |
minimumBias |
Yes |
>= 0.0 |
Shadow map minimum bias. |
maximumBias |
Yes |
>= 0.0 |
Shadow map maximum bias. |
discardBack-faces |
Yes |
AvBoolean |
Option to discard all faces whose normal points away from the camera. |
backfaceNor-malNegative |
Yes |
AvBoolean |
Back facing normal points away from the camera. |
adaptive-Sampling |
Yes |
AvBoolean |
Adaptive sampling. |
contrast-Threshold |
Yes |
0.0 ... 1.0 |
Contrast threshold. |
selectEntities |
Yes |
AvBoolean |
Option to prompt for selection set of entities to be rendered. |
smoothing-Angle |
Yes |
0.0 ... 90.0 |
Maximum angle at which to treat adjoining faces as a smooth surface. |
subSampling |
Yes |
1 ... 8 |
Factor by which to reduce rendered resolution. |
toggle |
Yes |
AvRprefToggle-Param |
AvRprefUI
Invoke the Rendering Preferences dialog.
GENERAL
The av_saveimg command is used to save the rendering in the current viewport to an image file. Only GIF, TGA, and TIFF file formats are supported. This feature has been made largely obsolete for rendering to an image file by the addition of the render to file capabilities (See av_rfileopt).
SYNOPSIS
#include "avlib.h"
AvErrorCode av_saveimg(AvSaveimgParam *p);
typedef enum AvSaveimgFileType;
typedef enum AvSaveimgPortion;
typedef enum AvSaveimgCompress;
typedef enum AvSaveimgMode;
typedef enum AvSaveimgFlags;
typedef struct AvSaveimgParam;
DESCRIPTION
av_saveimg has 2 modes:
AvSaveimg
Sets the file, filetype, source position and size for the image to be saved.
Parameter |
Req'd |
Values |
Default |
Description |
filename |
yes |
char * |
none | |
type |
yes |
AvSaveimgFileType |
none | |
portion |
no |
AvSaveimgPortion |
AvSaveimgActive | |
xoff |
no |
>= 0 |
0 | |
yoff |
no |
>= 0 |
0 | |
xsize |
no |
> 0 |
Actual X Size | |
ysize |
no |
> 0 |
Actual Y Size | |
compression |
no |
AvSaveimgCompress |
AvSaveimgRLE |
TGA or TIFF only |
The portion parameter is only applicable when saveing from a viewport. If you are configured to render to a separate display, omit it. RLE is the only compression allowed for TGA. Only PACK and LZW compression is allowed for TIFF.
AvSaveimgUI
Calls the UI version of SaveImage.
GENERAL
The av_scene command is used to create, modify, delete, rename, and list scenes. A Render scene is a named construct consisting of a view and some set of lights.
SYNOPSIS
#include "avlib.h"
AvErrorCode av_scene(AvSceneParam *p);
typedef enum AvSceneFlags;
typedef enum AvSceneMode;
typedef struct AvSceneParam;
DESCRIPTION
av_scene() has 6 modes:
AvSceneNew
Create a scene.
AvSceneParam:
Parameter |
Req'd |
Values |
Default |
Description |
sceneName |
Yes |
8 character |
None |
Name of new scene. |
view |
Yes |
string |
None |
Name of view to use in scene (if NULL use current drawing view). |
lights |
No |
struct resbuf * |
None |
If supplied, give list of light names, or NULL (meaning no lights). If not supplied, use all lights. |
AvSceneModify
Change the composition (name, view, lights) of a scene.
AvSceneParam:
Parameter |
Req'd |
Values |
Default |
Description |
sceneName |
Yes |
8 character |
None |
Name of scene to modify. |
sceneNew-Name |
No |
8 character |
None |
Name of scene to be renamed. |
view |
No |
string |
None |
Name of view to use in scene (if NULL use current drawing view). |
lights |
No |
struct resbuf * |
None |
If supplied, give list of light names, or NULL (meaning no lights). |
AvSceneDelete
Delete a scene.
AvSceneParam:
Parameter |
Req'd |
Values |
Default |
Description |
sceneName |
Yes |
8 character |
None |
Name of scene to delete. |
AvSceneSet
Select a scene to be rendered (this is, in effect, a rendering preference).
AvSceneParam:
Parameter |
Req'd |
Values |
Default |
Description |
sceneName |
Yes |
8 character |
None |
Name of scene to select for rendering. (If NULL, use default scene). |
AvSceneList
Query the list of scenes in the drawing, or the composition of a given scene.
AvSceneParam:
Parameter |
Req'd |
Values |
Default |
Description |
sceneName |
No |
8 character |
None |
Name of scene to list. If not supplied, a list all scenes is returned in 'scenes' (see below). |
view |
No |
string |
None |
Returns the name of the view contained in the scene specified in sceneName (NULL for current view).†† |
lights |
No |
struct resbuf * |
None |
Returns a list of light names contained in the scene specified in sceneName.† |
selectedScene |
No |
8 character |
None |
Returns the currently selected scene (NULL for default scene).†† |
scenes |
No |
struct resbuf * |
None |
Returns a list of scene names if sceneName is not supplied. |
† lights == 0 no lights in scene
lights->resval.rstring == "*ALL*" scene contains all lights
otherwise lights contains resbuf chain with all lights in scene
†† It is the caller's responsibility to free any memory allocated for this field.
AvSceneUI
Invokes the Scene dialog.
GENERAL
The av_setuv command is used to attach, detach, modify, or list the UV or RST mapper assigned to an entity or selection set of entities.
SYNOPSIS
#include "avlib.h"
AvErrorCode av_setuv(AvSetuvParam *p);
typedef enum AvSetuvType;
typedef enum AvSetuvMode;
typedef enum AvSetuvFlags;
typedef struct AvSetuvParam;
DESCRIPTION
av_setuv() has 5 modes:
AvSetuvAssign
Sets the mapper to the selection set of objects. Note that this command takes only a selection set of objects
Parameter |
Req'd |
Values |
Default |
Description |
selectionSet |
Yes |
ads_name |
None |
List of objects to which the mapper is to be assigned |
mappingType |
Yes |
AvSetuvType |
None | |
p1 |
Yes |
Any |
None |
For point description see below. |
p2 |
Yes |
Any |
None | |
p3 |
Yes |
Any |
None |
Must not be collinear with p1 and p2 |
p4 |
For Solid |
Any |
None |
Must not be coplanar with p1, p2, and p3 |
tile |
No (not Solid) |
AvTileType |
AvDefault |
Set an override to the tiling specified in the material. AvDefault indicates use of the materials tiling. |
scale |
No (not Solid) |
!= 0 |
(1.0, 1.0) |
This scaling will be composited with that from the material at render time |
offset |
No (not Solid) |
ads_point |
(0.0, 0.0) |
This offset will be composited with that from the material at render time |
The points specified have different meanings depending on the mappingType:
AvSetuvPlanar:
p1 is the bottom left corner of the mapper.
p2 is the bottom right corner of the mapper.
p3 is the top left corner of the mapper.
p4 is not legal.
AvSetuvCylindrical
p1 is the bottom center of the cylinder.
p2 is the top center of the cylinder.
p3 is in the direction of the wrap line.
p4 is not legal.
AvSetuvSpherical
p1 is the center of the sphere.
p2 is the north pole of the sphere.
p3 is in the direction of the wrap line.
p4 is not legal.
AvSetuvSolid
p1 is the origin of the mapper.
p2 is the U (X analog) coordinate of the mapper.
p3 is the V (Y analog) coordinate of the mapper.
p2 is the W (Z analog) coordinate of the mapper.
Note that the 3rd component of the ads_point for scale and offset is ignored.
AvSetuvAssignResbuf
Builds a resbuf that represents the specified mapper. This resbuf can be used by entmakes or entmods.
Parameter |
Req'd |
Values |
Default |
Description |
mappingType |
Yes |
AvSetuvType |
None | |
p1 |
Yes |
Any |
None |
For point description see AvSetuvAssign. |
p2 |
Yes |
Any |
None | |
p3 |
Yes |
Any |
None |
Must not be collinear with p1 and p2 |
p4 |
For Solid |
Any |
None |
Must not be coplanar with p1, p2, and p3 |
tile |
No (not Solid) |
AvTileType |
AvDefault |
Set an override to the tiling specified in the material. AvDefault indicates use of the materials tiling. |
scale |
No (not Solid) |
!= 0 |
(1.0, 1.0) |
This scaling will be composited with that from the material at render time |
offset |
No (not Solid) |
ads_point |
(0.0, 0.0) |
This offset will be composited with that from the material at render time |
The command returns a resbuf in the rb entry in the structure. This resbuf can be used to set the mapping for an entity via entmake, entmod etc.
AvSetuvDetach
Detaches any mapper that might be assigned to a selection set of objects.
Parameter |
Req'd |
Values |
Default |
Description |
selectionSet |
Yes |
ads_name |
None |
List of objects from which the mappers are to be detached. |
AvSetuvList
Returns the mapper associated with a entity.
Parameter |
Req'd |
Values |
Default |
Description |
entity |
Yes |
ads_name |
None |
Single object to which the mapper is to be listed |
The structure is filled in to indicate the type of mapper that has been assigned. If no flags are set no mapper has been explicitly assigned to the entity.
AvSetuvUI
Calls the UI version of SetUV. No parameters are required.
GENERAL
The av_stats command is used to save the statistics from the previous and all subsequent renderings to the statistics file.
SYNOPSIS
#include "avlib.h"
AvErrorCode av_stats(AvStatsParam *p);
typedef enum AvStatsMode;
typedef enum AvStatsFlags;
typedef struct AvStatsParam;
DESCRIPTION
av_stats() has 3 modes:
AvStats
Sets the filename to save stats into and saves the statistics. To stop saving statistics with each rendering call the AvStats command with no filename parameter.
Parameter |
Req'd |
Values |
Default |
Description |
filename |
no |
filename |
none |
The length of a filename is MAXPATHLEN characters (OS dependent from ads.h).
AvStatsList
Returns the statistics for the last rendering. The returned flags field indicates which values are filled in. If no values (other than the statistics filename) then no rendering has taken place yet. Due to the way the various rendering algorithms work, not all timing values are filled for all rendering types. For example shadow time is never filled in for AutoCAD Render. As AutoCAD Render combines traversal and rendering, the traversal time is combined with the rendering time and only the rendering time is returned. Likewise, since the Render renderers combine rendering and display, stats returns the rendering time which has the display time combined with it.
AvStatsUI
Calls the UI version of Stats.
/* Return Codes for Render API */
typedef enum AvErrorCode;
We provide a Microsoft Visual C++ 4.2b workbench makefile for each sample application.
The Template folder contains a skelelal project that can be used as a starting point for your own AVLib ARX application.
The Allmat folder contains a project that implements a command to display the contents of a materials library in an AutoCAD drawing, using AVLib.
00000-005000-3041
|