ftp.nice.ch/pub/next/developer/objc/api/intuitiv3d_API.s.tar.gz#/i3dApi/Headers/i3d/i3d_api.h

This is i3d_api.h in view mode; [Download] [Up]

/*
 * Copyright 1993 by Cub'x Systemes
 * 
 * All Rights Reserved
 *
 * Permission to use, copy, and distribute this software and its
 * documentation for the  purpose of making new intuitiv'3d modules.
 * This copyright notice must appears in all copies that you distribute.
 * The name of Cub'x Systeme should not be used in advertising or publicity
 * without specific, written prior permission. 
 * CUB'X SYSTEMES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
 * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
 * CUB'X SYSTEMES BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
 * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
 * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 * SOFTWARE.
 */
 

/******************************************************************************* 
 *                                                                             *
 *     Project intuitiv'3d                                                     *
 *     -------------------                                                     *
 *                                                                             *
 *                                                                             *
 *     File: i3d_api.h                                                         *
 *                                                                             *
 *                                                                             *
 *     Creation date: Mon Jul 26 11:52:40 GMT+0200 1993                        *
 *                                                                             *
 *                                                                             *
 *     Contents:  i3d's API classes and constant definition                    *
 *                                                                             *
 *                                                                             *
 *******************************************************************************/

#import <3Dkit/next3d.h>
#import <i3d/CXOpenPanel.h>

/*******************************************************************************
 *                                                                             *
 *  Intuitiv'3d classe name are changing, please use CX3Dxxx instead of N3Dxxx *
 *                                                                             *
 *******************************************************************************/
#define CX3DLightSource   N3DLightSource
#define CX3DAttributeInsp AttributeInsp
#define CX3DNode          N3DNode
#define CX3DObject        N3DObject
#define CX3DGenericShaderInspector GenericShaderInspector
#define CX3DLightTransformInsp LightTransformInsp
#define CX3DLightDisplayInsp   LightDisplayInsp
#define CX3DLightShaderInsp    LightShaderInsp

/*******************************************************************************
 *                                                                             *
 *                           Types and useful macros                           *
 *                                                                             *
 *******************************************************************************/

typedef struct {
  float x,y;
} Point2d;

typedef struct {
  float minx,maxx;
  float miny,maxy;
} N3DRect,CX3DRect;

#define CX(n) ((n)[0])
#define CY(n) ((n)[1])
#define CZ(n) ((n)[2])

#define CRED(n)   CX(n)
#define CGREEN(n) CY(n)
#define CBLUE(n)  CZ(n)

#define ZERO(n) ((n) == 0.0)

/*
 *  Bounding box constants
 */
#define BB_MINX(b) ((b)[0])
#define BB_MAXX(b) ((b)[1])
#define BB_MINY(b) ((b)[2])
#define BB_MAXY(b) ((b)[3])
#define BB_MINZ(b) ((b)[4])
#define BB_MAXZ(b) ((b)[5])

/*
 *  Prerendering level
 */
#define PRERENDER_TEXTURE  1
#define PRERENDER_DEFAULT  2

/*******************************************************************************
 *                                                                             *
 *                        Some methods that you can call                       *
 *                                                                             *
 *******************************************************************************/

@protocol Displayer_api

- constLightSet;
- rootObject;
- scene;
- setShouldRefresh;
- justDisplay;

- renderShadowMapIn:(const char*) filename from: (float*) from toward: (float*) to shadowDetail: (float) aFloat;
- renderShadowMapIn:(const char*) filename 
               from: (float*) from 
             toward: (float*) to 
       shadowDetail: (float) aFloat
        perspective: (BOOL) doPerspective
       screenWindow: (N3DRect*) swrect
                fov: (float)   fov;

- executeRibFile:(const char*) filename panelTitle:(const char*) title;

- renderMapIn:(const char*) filename
         from: (float*) from
       toward: (float*) to
      details: (float) aFloat
         roll: (float) roll;

- renderMapIn:(const char*)filename details: (float) details transform: (RtMatrix) t;

- makeTmpFileNameIn:(char*) buff;
- destroyTmpFile:(const char*) filename;
- (int)preRenderLevel;

@end


@protocol Application_api

- unlinkThisFileSomeday:(const char*) filename;
- selectedObject;
- currentScene;
- addObjectToFree: anObject;
- currentCamera;
- (const char*) versionString;
- (BOOL) photoRealistRender;
- moduleManager;
- (const char*) tmpFolder;
- (BOOL) fileExists:(const char*) filename;
@end

@protocol Scene_api
- selectedObject;
- (BOOL) haveObjectInPath: anObject;
- firstSelectedSet;
- displayScene;
- forceDisplayScene;
- selectObject: anObject;
- addObject: anObject;
- delete: sender;
@end

@protocol Inspector_api
- ok:     sender;
- revert: sender;
- (BOOL) isRealTime;
- currentObject;
- currentScene;
@end

@protocol ModuleManager_api
- (BOOL) getPath:(char*)path forResource:(const char*)resName ofType:(const char*)aType;
@end

/*******************************************************************************
 *                                                                             *
 *                               Usefull functions                             *
 *                                                                             *
 *******************************************************************************/
extern void calcThetamaxBound(float radius,float thetamax,RtBound aBox);
extern void calcThetamaxVolumeBound(float radius,float thetamax,RtBound aBox);
extern void rotate2d(Point2d *p,float r); 
extern void CX3DMult3DPoints( RtPoint *in, unsigned int n , RtMatrix t , RtPoint *out );



These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.