This is BBBeakerCamera.m in view mode; [Download] [Up]
/* BBBeakerCamera.m
*
* Here is the view that shows us the nice molecules.
*
* For more interface-info see the header file. More in depth information
* can be found in the source-code.
*
* Written by: Thomas Engel
* Created: 28.10.1993 (Copyleft)
* Last modified: 25.05.1994
*/
#import "BBBeakerCamera.h"
#import "BBAppManager.h"
#import "Preferences.subproj/BBPreferencesManager.h"
#import "Preferences.subproj/BBDefaultCamera.h"
#import "Rotator.subproj/BBRotator.h"
#import "BBBeaker.h"
#import "BBBeakerShape.h"
#import "BBBackgroundShape.h"
@implementation BBBeakerCamera
- createWorldFor:aBeaker
{
// Let's setup some basics. First the Lights. Ambient and Spotlight
// Then some color and other settings.
RtPoint fromPoint;
RtPoint toPoint;
NXColor background;
id aShape;
// Here is the camera..
fromPoint[0] = 0.0;
fromPoint[1] = 0.0;
fromPoint[2] = -40.0;
toPoint[0] = 0.0;
toPoint[1] = 0.0;
toPoint[2] = 0.0;
// Here we create the WorldShape and delete the old one.
// We will use no clipping by default!
beakerShape = [BBBeakerShape new];
[[self setWorldShape:beakerShape] free];
[self setEyeAt:fromPoint toward:toPoint roll:0.0];
[self setProjection:N3D_Perspective];
[self setClipPlanesNear:RI_EPSILON far:RI_INFINITY];
// Now some Background coloring...
background = [[[[NXApp delegate] preferences]
findDefaultFor:self]
backgroundColor];
[self setBackgroundColor:background];
[self setDrawBackgroundColor:YES];
// This is a real hack for printing other colors than black background!
// Only use it if you really have to. It really is stupid. But it works.
if( [[[[NXApp delegate] preferences]
findDefaultFor:self]
doesPrintBackgroundColor] )
{
aShape = [BBBackgroundShape new];
[aShape setBackgroundColor:background];
[aShape group:beakerShape];
}
[self setHider:N3D_HiddenRendering];
[self display];
return self;
}
- addShape:aShape
{
[aShape group:beakerShape];
return self;
}
- renderSelf:(RtToken)context
{
return self;
}
@end
/*
* History: 24.05.94 Added background color hack.
*
* 07.05.94 Fits new naming style and has new init method.
*
* 27.03.94 Cleaned up the init method.
*
* 26.03.94 Removed the setEyeZ method and switched to the original
* NeXT methods getEyeAt....
*
* 17.01.94 Moved the camera and light to the -z side.
*
* 28.12.93 Removed the rotator settings and moved them to the
* cameraWindow.
*
*
* Bugs: - Yes.
*/These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.