mirror of
https://github.com/panda3d/panda3d.git
synced 2026-03-18 10:00:59 -05:00
dos2unix
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,3 +1,3 @@
|
||||
tcsh -c ppython -c "from ShowBaseGlobal import *; d=DirectD(); d.serverReady('DRMINE-D02', 8002); run()"
|
||||
|
||||
|
||||
tcsh -c ppython -c "from ShowBaseGlobal import *; d=DirectD(); d.serverReady('DRMINE-D02', 8002); run()"
|
||||
|
||||
|
||||
|
||||
@@ -1,193 +1,193 @@
|
||||
5/25/01
|
||||
DIRECT
|
||||
|
||||
****************************************************************************
|
||||
STARTING DIRECT
|
||||
****************************************************************************
|
||||
|
||||
# IN YOUR CONFIGRC
|
||||
want-directtools #t
|
||||
want-tk #t
|
||||
# Optional: GL allows lines of different widths
|
||||
load-display pandagl
|
||||
|
||||
# IN PYTHON
|
||||
from ShowBaseGlobal import *
|
||||
|
||||
****************************************************************************
|
||||
OBJECT MANIPULATION
|
||||
****************************************************************************
|
||||
|
||||
All object manipulation is performed with left mouse button (LMB).
|
||||
Objects are selected by clicking on them with the LMB. Objects can be
|
||||
manipulated freely, or manipulation can be constrained using DIRECT
|
||||
widgets. Rotations and scales are relative to the object's Center of
|
||||
Action (COA). If widget is made visible ('v' key), this is the point
|
||||
of intersection of the three axes (red, green, blue lines).
|
||||
|
||||
FREE MANIPULATION:
|
||||
For free manipulation, the window is divided up into three regions: an
|
||||
outer frame, central region, and the four corners. Object manipulation
|
||||
depends on where mouse interaction begins.
|
||||
|
||||
Central Region:
|
||||
LMB:
|
||||
Up/Down/Left/Right: Moves object in plane parallel to camera's image
|
||||
plane
|
||||
Shift + LMB:
|
||||
Up/Down: Moves object's COA in camera's XY plane
|
||||
Left/Right: Moves object parallel to camera's X axis
|
||||
Control + LMB:
|
||||
Up/Down: Moves object's COA toward Camera (in Y and Z)
|
||||
Left/Right: Moves object parallel to camera's X axis
|
||||
Alt + LMB (off of widget):
|
||||
Away from COA: scale object up
|
||||
Towards COA: scale object down
|
||||
Outer Region:
|
||||
LMB:
|
||||
Up/Down/Left/Right: Rotates object about current COA (default is
|
||||
model's origin, modified using manipulation widget...see below).
|
||||
If mouse stays within outer frame, motion about COA is constrained
|
||||
to a single axis. (parallel to camera's X axis when in left and
|
||||
right part of the frame and parallel to the camera's Z axis when
|
||||
in the top or bottom part of the frame)
|
||||
Four corners:
|
||||
LMB:
|
||||
Up/Down/Left/Right: Roll object about current center of action.
|
||||
|
||||
CONSTRAINED/WIDGET MANIPULATION:
|
||||
For constrained/widget manipulation, object motion depends on where the
|
||||
mouse begins:
|
||||
Axis lines: 1D translation along the chosen axis
|
||||
Rotation rings: 1D rotation about orthogonal axis
|
||||
Translation discs: 2D translation in the plane of the disc
|
||||
|
||||
Pressing 'Tab' toggles between object manipulation or COA manipulation
|
||||
(indictated by widget lines turning grey). When in COA manipulation mode,
|
||||
movement of the widget does not move the object but changes the object's
|
||||
COA. Hit 'Tab' again to return to normal object manipulation mode.
|
||||
|
||||
****************************************************************************
|
||||
CAMERA MANIPULATION
|
||||
****************************************************************************
|
||||
|
||||
All camera manipulation performed with middle mouse button (MMB).
|
||||
|
||||
Camera manipulation depends on where mouse interaction begins and the
|
||||
current center of action (COA).
|
||||
|
||||
The window is divided up into three regions: an outer frame, central region,
|
||||
and the four corners. A different manipulation mode is defined for each
|
||||
region and is described below.
|
||||
|
||||
The camera center of action (COA) determines the center of rotation of any
|
||||
rotation moves and the scale factor for any translation moves.
|
||||
|
||||
The COA is set by quickly clicking (less than .25 second or 1 frame) with
|
||||
the MMB in the central region. It is defined as the intersection point of
|
||||
the ray from the camera's origin, through the mouse with the model. If no
|
||||
intersection occurs, the COA is put out along the camera's Y axis. Each
|
||||
time the MMB is clicked with no intersection the COA moves further out
|
||||
along the Y axis.
|
||||
|
||||
Pressing 'L' toggles COA lock, when on, the COA is locked in its current
|
||||
location.
|
||||
|
||||
Central Region:
|
||||
MMB:
|
||||
Up/Down: Moves camera towards mouse intersection point
|
||||
Left/Right: Yaws camera
|
||||
Control + MMB:
|
||||
Up/Down: Moves camera along view vector (perpendicular to image plane)
|
||||
Left/Right: Yaws camera
|
||||
Shift + MMB:
|
||||
Up/Down/Left/Right: shifts camera in image plane
|
||||
Outer Region:
|
||||
MMB:
|
||||
Up/Down/Left/Right: Rotates about current COA. If mouse stays within
|
||||
outer frame, motion about COA is constrained to a single axis.
|
||||
(parallel to camera's X axis when in left and right part of the frame
|
||||
and parallel to the camera's Z axis when in the top or bottom part of
|
||||
the frame)
|
||||
Shift + MMB:
|
||||
Up/Down: Pitch about camera's X axis
|
||||
Left/Right: Yaw about camera's Z axis
|
||||
Four corners:
|
||||
MMB:
|
||||
Up/Down/Left/Right: Roll about current center of action.
|
||||
|
||||
The number keys and plus minus keys can be used for motion relative to the
|
||||
COA (see hot keys below)
|
||||
|
||||
****************************************************************************
|
||||
HOTKEYS
|
||||
****************************************************************************
|
||||
|
||||
# UNDO/REDO
|
||||
[ undo
|
||||
] redo
|
||||
|
||||
# CAMERA MOVES
|
||||
+ zoomCam in
|
||||
- zoomCam out
|
||||
1 front view (render relative)
|
||||
2 back view (render relative)
|
||||
3 right view (render relative)
|
||||
4 left view (render relative)
|
||||
5 top view (render relative)
|
||||
6 bottom view (render relative)
|
||||
7 3/4 view (render relative)
|
||||
8 roll view about axis relative to camera's axis
|
||||
9 swing camera about hot point (about render's Z axis)
|
||||
0 swing camera about hot point (about render's Z axis)
|
||||
c center on hot point
|
||||
f fit on hot point
|
||||
h move camera to home (0,0,0)
|
||||
L toggle hot point lock (if set, hot point stays in current location)
|
||||
n select next possible camera COA (along last intersection ray)
|
||||
u orbit upright cam about hot point
|
||||
U upright cam
|
||||
` kill camera move task
|
||||
|
||||
# RENDER STYLE
|
||||
A show all
|
||||
control-f flash selected
|
||||
b toggle backface
|
||||
l toggle lights
|
||||
t toggle texture
|
||||
w toggle wireframe
|
||||
|
||||
# DIRECT CONTROLS
|
||||
delete delete selected object
|
||||
escape deselect all
|
||||
page_down move down selected objects hierarchy
|
||||
page_up move up selected objects hierarchy
|
||||
tab toggle widget mode (move objects or set center of action)
|
||||
F grow widget to fit current view
|
||||
i plant selected object at cursor intersection point
|
||||
m move widget in front of camera
|
||||
p set active parent to selected object
|
||||
r wrt reparent selected to active parent
|
||||
R reparent selected to active parent
|
||||
s (re)select last selected object
|
||||
v toggle widget visibility
|
||||
V toggle COA marker visibility
|
||||
< shrink widget
|
||||
> expand widget
|
||||
|
||||
# LEVEL EDITOR
|
||||
insert add new object of current object type
|
||||
space add exact copy of current object
|
||||
right move selected object right (in screen space)
|
||||
left move selected object left (in screen space)
|
||||
down move selected object down (in screen space)
|
||||
up move selected object up (in screen space)
|
||||
a auto position snap point to selected object
|
||||
j move selected object to snap point
|
||||
shift-s place suit point
|
||||
shift-c place battle cell
|
||||
|
||||
# ROBOT TOON MANAGER
|
||||
f9 take screenshot
|
||||
f10 place new random robot toon
|
||||
f11 toggle visibility of render2d
|
||||
5/25/01
|
||||
DIRECT
|
||||
|
||||
****************************************************************************
|
||||
STARTING DIRECT
|
||||
****************************************************************************
|
||||
|
||||
# IN YOUR CONFIGRC
|
||||
want-directtools #t
|
||||
want-tk #t
|
||||
# Optional: GL allows lines of different widths
|
||||
load-display pandagl
|
||||
|
||||
# IN PYTHON
|
||||
from ShowBaseGlobal import *
|
||||
|
||||
****************************************************************************
|
||||
OBJECT MANIPULATION
|
||||
****************************************************************************
|
||||
|
||||
All object manipulation is performed with left mouse button (LMB).
|
||||
Objects are selected by clicking on them with the LMB. Objects can be
|
||||
manipulated freely, or manipulation can be constrained using DIRECT
|
||||
widgets. Rotations and scales are relative to the object's Center of
|
||||
Action (COA). If widget is made visible ('v' key), this is the point
|
||||
of intersection of the three axes (red, green, blue lines).
|
||||
|
||||
FREE MANIPULATION:
|
||||
For free manipulation, the window is divided up into three regions: an
|
||||
outer frame, central region, and the four corners. Object manipulation
|
||||
depends on where mouse interaction begins.
|
||||
|
||||
Central Region:
|
||||
LMB:
|
||||
Up/Down/Left/Right: Moves object in plane parallel to camera's image
|
||||
plane
|
||||
Shift + LMB:
|
||||
Up/Down: Moves object's COA in camera's XY plane
|
||||
Left/Right: Moves object parallel to camera's X axis
|
||||
Control + LMB:
|
||||
Up/Down: Moves object's COA toward Camera (in Y and Z)
|
||||
Left/Right: Moves object parallel to camera's X axis
|
||||
Alt + LMB (off of widget):
|
||||
Away from COA: scale object up
|
||||
Towards COA: scale object down
|
||||
Outer Region:
|
||||
LMB:
|
||||
Up/Down/Left/Right: Rotates object about current COA (default is
|
||||
model's origin, modified using manipulation widget...see below).
|
||||
If mouse stays within outer frame, motion about COA is constrained
|
||||
to a single axis. (parallel to camera's X axis when in left and
|
||||
right part of the frame and parallel to the camera's Z axis when
|
||||
in the top or bottom part of the frame)
|
||||
Four corners:
|
||||
LMB:
|
||||
Up/Down/Left/Right: Roll object about current center of action.
|
||||
|
||||
CONSTRAINED/WIDGET MANIPULATION:
|
||||
For constrained/widget manipulation, object motion depends on where the
|
||||
mouse begins:
|
||||
Axis lines: 1D translation along the chosen axis
|
||||
Rotation rings: 1D rotation about orthogonal axis
|
||||
Translation discs: 2D translation in the plane of the disc
|
||||
|
||||
Pressing 'Tab' toggles between object manipulation or COA manipulation
|
||||
(indictated by widget lines turning grey). When in COA manipulation mode,
|
||||
movement of the widget does not move the object but changes the object's
|
||||
COA. Hit 'Tab' again to return to normal object manipulation mode.
|
||||
|
||||
****************************************************************************
|
||||
CAMERA MANIPULATION
|
||||
****************************************************************************
|
||||
|
||||
All camera manipulation performed with middle mouse button (MMB).
|
||||
|
||||
Camera manipulation depends on where mouse interaction begins and the
|
||||
current center of action (COA).
|
||||
|
||||
The window is divided up into three regions: an outer frame, central region,
|
||||
and the four corners. A different manipulation mode is defined for each
|
||||
region and is described below.
|
||||
|
||||
The camera center of action (COA) determines the center of rotation of any
|
||||
rotation moves and the scale factor for any translation moves.
|
||||
|
||||
The COA is set by quickly clicking (less than .25 second or 1 frame) with
|
||||
the MMB in the central region. It is defined as the intersection point of
|
||||
the ray from the camera's origin, through the mouse with the model. If no
|
||||
intersection occurs, the COA is put out along the camera's Y axis. Each
|
||||
time the MMB is clicked with no intersection the COA moves further out
|
||||
along the Y axis.
|
||||
|
||||
Pressing 'L' toggles COA lock, when on, the COA is locked in its current
|
||||
location.
|
||||
|
||||
Central Region:
|
||||
MMB:
|
||||
Up/Down: Moves camera towards mouse intersection point
|
||||
Left/Right: Yaws camera
|
||||
Control + MMB:
|
||||
Up/Down: Moves camera along view vector (perpendicular to image plane)
|
||||
Left/Right: Yaws camera
|
||||
Shift + MMB:
|
||||
Up/Down/Left/Right: shifts camera in image plane
|
||||
Outer Region:
|
||||
MMB:
|
||||
Up/Down/Left/Right: Rotates about current COA. If mouse stays within
|
||||
outer frame, motion about COA is constrained to a single axis.
|
||||
(parallel to camera's X axis when in left and right part of the frame
|
||||
and parallel to the camera's Z axis when in the top or bottom part of
|
||||
the frame)
|
||||
Shift + MMB:
|
||||
Up/Down: Pitch about camera's X axis
|
||||
Left/Right: Yaw about camera's Z axis
|
||||
Four corners:
|
||||
MMB:
|
||||
Up/Down/Left/Right: Roll about current center of action.
|
||||
|
||||
The number keys and plus minus keys can be used for motion relative to the
|
||||
COA (see hot keys below)
|
||||
|
||||
****************************************************************************
|
||||
HOTKEYS
|
||||
****************************************************************************
|
||||
|
||||
# UNDO/REDO
|
||||
[ undo
|
||||
] redo
|
||||
|
||||
# CAMERA MOVES
|
||||
+ zoomCam in
|
||||
- zoomCam out
|
||||
1 front view (render relative)
|
||||
2 back view (render relative)
|
||||
3 right view (render relative)
|
||||
4 left view (render relative)
|
||||
5 top view (render relative)
|
||||
6 bottom view (render relative)
|
||||
7 3/4 view (render relative)
|
||||
8 roll view about axis relative to camera's axis
|
||||
9 swing camera about hot point (about render's Z axis)
|
||||
0 swing camera about hot point (about render's Z axis)
|
||||
c center on hot point
|
||||
f fit on hot point
|
||||
h move camera to home (0,0,0)
|
||||
L toggle hot point lock (if set, hot point stays in current location)
|
||||
n select next possible camera COA (along last intersection ray)
|
||||
u orbit upright cam about hot point
|
||||
U upright cam
|
||||
` kill camera move task
|
||||
|
||||
# RENDER STYLE
|
||||
A show all
|
||||
control-f flash selected
|
||||
b toggle backface
|
||||
l toggle lights
|
||||
t toggle texture
|
||||
w toggle wireframe
|
||||
|
||||
# DIRECT CONTROLS
|
||||
delete delete selected object
|
||||
escape deselect all
|
||||
page_down move down selected objects hierarchy
|
||||
page_up move up selected objects hierarchy
|
||||
tab toggle widget mode (move objects or set center of action)
|
||||
F grow widget to fit current view
|
||||
i plant selected object at cursor intersection point
|
||||
m move widget in front of camera
|
||||
p set active parent to selected object
|
||||
r wrt reparent selected to active parent
|
||||
R reparent selected to active parent
|
||||
s (re)select last selected object
|
||||
v toggle widget visibility
|
||||
V toggle COA marker visibility
|
||||
< shrink widget
|
||||
> expand widget
|
||||
|
||||
# LEVEL EDITOR
|
||||
insert add new object of current object type
|
||||
space add exact copy of current object
|
||||
right move selected object right (in screen space)
|
||||
left move selected object left (in screen space)
|
||||
down move selected object down (in screen space)
|
||||
up move selected object up (in screen space)
|
||||
a auto position snap point to selected object
|
||||
j move selected object to snap point
|
||||
shift-s place suit point
|
||||
shift-c place battle cell
|
||||
|
||||
# ROBOT TOON MANAGER
|
||||
f9 take screenshot
|
||||
f10 place new random robot toon
|
||||
f11 toggle visibility of render2d
|
||||
|
||||
@@ -1,71 +1,71 @@
|
||||
HOWTO USE ADJUST()
|
||||
|
||||
What is adjust?
|
||||
|
||||
BASIC:
|
||||
|
||||
Its a simple function that allows you to quickly pop up a slider to adjust
|
||||
a value. Example:
|
||||
|
||||
myVal = 0.0
|
||||
def setMyVal(x):
|
||||
global myVal
|
||||
myVal = x
|
||||
print myVal
|
||||
|
||||
adjust(setMyVal)
|
||||
|
||||
this will print out the current value of the slider
|
||||
|
||||
ADVANCED:
|
||||
|
||||
You can use keyword arguments to configure the slider during or after
|
||||
creation, or you can configure the slider interactively
|
||||
|
||||
Useful keywords include:
|
||||
|
||||
min # min value of the slider
|
||||
max # max value of the slider
|
||||
resolution # slider resolution
|
||||
text # slider label
|
||||
|
||||
To set during creation call:
|
||||
|
||||
adjust(setMyVal, min = -10.0, max = 1000.0, resolution = 1.0, text = 'Fancy')
|
||||
|
||||
To set after creation:
|
||||
|
||||
es = adjust()
|
||||
es['command'] = setMyVal
|
||||
es['min'] = -1000.0
|
||||
es['max'] = 10.0
|
||||
es['resolution'] = 1.0
|
||||
es['text'] = 'Fancy2'
|
||||
|
||||
To configure interactively, right click (mouse button 3) on various parts
|
||||
of the slider to change settings. Click on:
|
||||
|
||||
from label -> to set min
|
||||
to label -> to set max
|
||||
slider -> to set resolution
|
||||
label -> to set slider label
|
||||
|
||||
You can pack multiple sliders into a single panel:
|
||||
|
||||
from Tkinter import *
|
||||
|
||||
def func1(x):
|
||||
print '1:', x
|
||||
|
||||
def func2(x):
|
||||
print '2:', x
|
||||
|
||||
def func3(x):
|
||||
print '3:', x
|
||||
|
||||
tl = Toplevel()
|
||||
tl.title('Fancy-multi-adjust')
|
||||
|
||||
adjust(func1, parent = tl, text = 'One')
|
||||
adjust(func2, parent = tl, text = 'Two')
|
||||
adjust(func3, parent = tl, text = 'Three')
|
||||
HOWTO USE ADJUST()
|
||||
|
||||
What is adjust?
|
||||
|
||||
BASIC:
|
||||
|
||||
Its a simple function that allows you to quickly pop up a slider to adjust
|
||||
a value. Example:
|
||||
|
||||
myVal = 0.0
|
||||
def setMyVal(x):
|
||||
global myVal
|
||||
myVal = x
|
||||
print myVal
|
||||
|
||||
adjust(setMyVal)
|
||||
|
||||
this will print out the current value of the slider
|
||||
|
||||
ADVANCED:
|
||||
|
||||
You can use keyword arguments to configure the slider during or after
|
||||
creation, or you can configure the slider interactively
|
||||
|
||||
Useful keywords include:
|
||||
|
||||
min # min value of the slider
|
||||
max # max value of the slider
|
||||
resolution # slider resolution
|
||||
text # slider label
|
||||
|
||||
To set during creation call:
|
||||
|
||||
adjust(setMyVal, min = -10.0, max = 1000.0, resolution = 1.0, text = 'Fancy')
|
||||
|
||||
To set after creation:
|
||||
|
||||
es = adjust()
|
||||
es['command'] = setMyVal
|
||||
es['min'] = -1000.0
|
||||
es['max'] = 10.0
|
||||
es['resolution'] = 1.0
|
||||
es['text'] = 'Fancy2'
|
||||
|
||||
To configure interactively, right click (mouse button 3) on various parts
|
||||
of the slider to change settings. Click on:
|
||||
|
||||
from label -> to set min
|
||||
to label -> to set max
|
||||
slider -> to set resolution
|
||||
label -> to set slider label
|
||||
|
||||
You can pack multiple sliders into a single panel:
|
||||
|
||||
from Tkinter import *
|
||||
|
||||
def func1(x):
|
||||
print '1:', x
|
||||
|
||||
def func2(x):
|
||||
print '2:', x
|
||||
|
||||
def func3(x):
|
||||
print '3:', x
|
||||
|
||||
tl = Toplevel()
|
||||
tl.title('Fancy-multi-adjust')
|
||||
|
||||
adjust(func1, parent = tl, text = 'One')
|
||||
adjust(func2, parent = tl, text = 'Two')
|
||||
adjust(func3, parent = tl, text = 'Three')
|
||||
|
||||
@@ -1,71 +1,71 @@
|
||||
|
||||
# This is a workaround to load Japanese fonts
|
||||
use-vfs 0
|
||||
|
||||
want-tk 1
|
||||
want-directtools 1
|
||||
level-editor-hoods TT
|
||||
# level-editor-hoods TT DD DG MM BR DL
|
||||
style-path-prefix /i
|
||||
|
||||
load-display pandadx8
|
||||
chan-config-sanity-check #f
|
||||
multipass-viz none
|
||||
win-width 800
|
||||
win-height 600
|
||||
fullscreen 0
|
||||
sync-video #t
|
||||
|
||||
# Configrc for running the level editor
|
||||
|
||||
model-path $TTMODELS
|
||||
model-path $DMODELS
|
||||
sound-path $TTMODELS
|
||||
dna-preload phase_4/dna/storage.dna
|
||||
|
||||
load-file-type toontown
|
||||
|
||||
window-title Toontown
|
||||
|
||||
compress-channels #t
|
||||
text-encoding utf8
|
||||
|
||||
# The level editor requires this legacy setting for now, so we will
|
||||
# not generate dna files that are incompatible with the older
|
||||
# international branches.
|
||||
temp-hpr-fix 0
|
||||
|
||||
# We must currently set this to avoid messing up some of
|
||||
# the suits' faces.
|
||||
egg-retesselate-coplanar #f
|
||||
|
||||
|
||||
# Custom ObjectTypes for Toontown.
|
||||
# "barrier" means a vertical wall, with bitmask 0x01
|
||||
# "floor" means a horizontal floor, with bitmask 0x02
|
||||
# "camera-collide" means things that the camera should avoid, with bitmask 0x04
|
||||
egg-object-type-barrier <Scalar> collide-mask { 0x01 } <Collide> { Polyset descend }
|
||||
egg-object-type-trigger <Scalar> collide-mask { 0x01 } <Collide> { Polyset descend intangible }
|
||||
egg-object-type-sphere <Scalar> collide-mask { 0x01 } <Collide> { Sphere descend }
|
||||
egg-object-type-trigger-sphere <Scalar> collide-mask { 0x01 } <Collide> { Sphere descend intangible }
|
||||
egg-object-type-floor <Scalar> collide-mask { 0x02 } <Collide> { Polyset descend }
|
||||
egg-object-type-camera-collide <Scalar> collide-mask { 0x04 } <Collide> { Polyset descend }
|
||||
egg-object-type-camera-collide-sphere <Scalar> collide-mask { 0x04 } <Collide> { Sphere descend }
|
||||
egg-object-type-camera-barrier <Scalar> collide-mask { 0x05 } <Collide> { Polyset descend }
|
||||
egg-object-type-camera-barrier-sphere <Scalar> collide-mask { 0x05 } <Collide> { Sphere descend }
|
||||
|
||||
# The modelers occasionally put <ObjectType> { model } instead of
|
||||
# <Model> { 1 }. Let's be accommodating.
|
||||
egg-object-type-model <Model> { 1 }
|
||||
egg-object-type-dcs <DCS> { 1 }
|
||||
|
||||
# Define a "shadow" object type, so we can render all shadows in their
|
||||
# own bin and have them not fight with each other (or with other
|
||||
# transparent geometry).
|
||||
egg-object-type-shadow <Scalar> bin { shadow } <Scalar> alpha { blend-no-occlude }
|
||||
cull-bin shadow 15 unsorted
|
||||
|
||||
# The ID of the server that we are compatible with
|
||||
server-version sv1.0.14
|
||||
|
||||
|
||||
|
||||
# This is a workaround to load Japanese fonts
|
||||
use-vfs 0
|
||||
|
||||
want-tk 1
|
||||
want-directtools 1
|
||||
level-editor-hoods TT
|
||||
# level-editor-hoods TT DD DG MM BR DL
|
||||
style-path-prefix /i
|
||||
|
||||
load-display pandadx8
|
||||
chan-config-sanity-check #f
|
||||
multipass-viz none
|
||||
win-width 800
|
||||
win-height 600
|
||||
fullscreen 0
|
||||
sync-video #t
|
||||
|
||||
# Configrc for running the level editor
|
||||
|
||||
model-path $TTMODELS
|
||||
model-path $DMODELS
|
||||
sound-path $TTMODELS
|
||||
dna-preload phase_4/dna/storage.dna
|
||||
|
||||
load-file-type toontown
|
||||
|
||||
window-title Toontown
|
||||
|
||||
compress-channels #t
|
||||
text-encoding utf8
|
||||
|
||||
# The level editor requires this legacy setting for now, so we will
|
||||
# not generate dna files that are incompatible with the older
|
||||
# international branches.
|
||||
temp-hpr-fix 0
|
||||
|
||||
# We must currently set this to avoid messing up some of
|
||||
# the suits' faces.
|
||||
egg-retesselate-coplanar #f
|
||||
|
||||
|
||||
# Custom ObjectTypes for Toontown.
|
||||
# "barrier" means a vertical wall, with bitmask 0x01
|
||||
# "floor" means a horizontal floor, with bitmask 0x02
|
||||
# "camera-collide" means things that the camera should avoid, with bitmask 0x04
|
||||
egg-object-type-barrier <Scalar> collide-mask { 0x01 } <Collide> { Polyset descend }
|
||||
egg-object-type-trigger <Scalar> collide-mask { 0x01 } <Collide> { Polyset descend intangible }
|
||||
egg-object-type-sphere <Scalar> collide-mask { 0x01 } <Collide> { Sphere descend }
|
||||
egg-object-type-trigger-sphere <Scalar> collide-mask { 0x01 } <Collide> { Sphere descend intangible }
|
||||
egg-object-type-floor <Scalar> collide-mask { 0x02 } <Collide> { Polyset descend }
|
||||
egg-object-type-camera-collide <Scalar> collide-mask { 0x04 } <Collide> { Polyset descend }
|
||||
egg-object-type-camera-collide-sphere <Scalar> collide-mask { 0x04 } <Collide> { Sphere descend }
|
||||
egg-object-type-camera-barrier <Scalar> collide-mask { 0x05 } <Collide> { Polyset descend }
|
||||
egg-object-type-camera-barrier-sphere <Scalar> collide-mask { 0x05 } <Collide> { Sphere descend }
|
||||
|
||||
# The modelers occasionally put <ObjectType> { model } instead of
|
||||
# <Model> { 1 }. Let's be accommodating.
|
||||
egg-object-type-model <Model> { 1 }
|
||||
egg-object-type-dcs <DCS> { 1 }
|
||||
|
||||
# Define a "shadow" object type, so we can render all shadows in their
|
||||
# own bin and have them not fight with each other (or with other
|
||||
# transparent geometry).
|
||||
egg-object-type-shadow <Scalar> bin { shadow } <Scalar> alpha { blend-no-occlude }
|
||||
cull-bin shadow 15 unsorted
|
||||
|
||||
# The ID of the server that we are compatible with
|
||||
server-version sv1.0.14
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
set PATH=lib
|
||||
set PYTHONPATH=.;lib-tk
|
||||
set TTMODELS=/i/alpha/player/install/ttmodels
|
||||
set DMODELS=/i/alpha/player/install/dmodels
|
||||
set CFG_PATH=.
|
||||
set CONFIG_CONFIG=:configpath=CFG_PATH
|
||||
python.exe direct\leveleditor\LevelEditor.py
|
||||
set PATH=lib
|
||||
set PYTHONPATH=.;lib-tk
|
||||
set TTMODELS=/i/alpha/player/install/ttmodels
|
||||
set DMODELS=/i/alpha/player/install/dmodels
|
||||
set CFG_PATH=.
|
||||
set CONFIG_CONFIG=:configpath=CFG_PATH
|
||||
python.exe direct\leveleditor\LevelEditor.py
|
||||
|
||||
@@ -1232,13 +1232,13 @@ handle_define_directive(const string &args, int first_line,
|
||||
}
|
||||
}
|
||||
|
||||
// ok one memory leak here..
|
||||
Manifests::iterator mi = _manifests.find(manifest->_name);
|
||||
if(mi != _manifests.end())
|
||||
{
|
||||
// i do not see a goodway to compare the old and new hmmmm
|
||||
//cerr << "Warning Overwriting Constant " << manifest->_name << "\n";
|
||||
delete mi->second;
|
||||
// ok one memory leak here..
|
||||
Manifests::iterator mi = _manifests.find(manifest->_name);
|
||||
if(mi != _manifests.end())
|
||||
{
|
||||
// i do not see a goodway to compare the old and new hmmmm
|
||||
//cerr << "Warning Overwriting Constant " << manifest->_name << "\n";
|
||||
delete mi->second;
|
||||
}
|
||||
|
||||
_manifests[manifest->_name] = manifest;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#ifndef _CV_H_
|
||||
#define _CV_H_
|
||||
|
||||
typedef struct CvCapture CvCapture;
|
||||
|
||||
typedef struct CvMemStorage CvMemStorage;
|
||||
typedef struct CvHaarClassifierCascade CvHaarClassifierCascade;
|
||||
#ifndef _CV_H_
|
||||
#define _CV_H_
|
||||
|
||||
typedef struct CvCapture CvCapture;
|
||||
|
||||
typedef struct CvMemStorage CvMemStorage;
|
||||
typedef struct CvHaarClassifierCascade CvHaarClassifierCascade;
|
||||
#endif
|
||||
@@ -1,13 +1,13 @@
|
||||
|
||||
|
||||
#ifndef _CVTYPES_H_
|
||||
#define _CVTYPES_H_
|
||||
|
||||
|
||||
struct CvHaarClassifierCascade
|
||||
|
||||
|
||||
|
||||
#endif /*_CVTYPES_H_*/
|
||||
|
||||
/* End of file. */
|
||||
|
||||
|
||||
#ifndef _CVTYPES_H_
|
||||
#define _CVTYPES_H_
|
||||
|
||||
|
||||
struct CvHaarClassifierCascade
|
||||
|
||||
|
||||
|
||||
#endif /*_CVTYPES_H_*/
|
||||
|
||||
/* End of file. */
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#ifndef _CXCORE_H_
|
||||
#define _CXCORE_H_
|
||||
|
||||
//Python stub
|
||||
|
||||
#endif
|
||||
#ifndef _CXCORE_H_
|
||||
#define _CXCORE_H_
|
||||
|
||||
//Python stub
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
#ifndef _CXCORE_ERROR_H_
|
||||
#define _CXCORE_ERROR_H_
|
||||
|
||||
//python stub
|
||||
|
||||
|
||||
#ifndef _CXCORE_ERROR_H_
|
||||
#define _CXCORE_ERROR_H_
|
||||
|
||||
//python stub
|
||||
|
||||
#endif
|
||||
@@ -1,78 +1,78 @@
|
||||
#ifndef _CXCORE_TYPES_H_
|
||||
#define _CXCORE_TYPES_H_
|
||||
|
||||
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
typedef struct IplImage
|
||||
{
|
||||
int nSize; /* sizeof(IplImage) */
|
||||
int ID; /* version (=0)*/
|
||||
int nChannels; /* Most of OpenCV functions support 1,2,3 or 4 channels */
|
||||
int alphaChannel; /* ignored by OpenCV */
|
||||
int depth; /* pixel depth in bits: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16S,
|
||||
IPL_DEPTH_32S, IPL_DEPTH_32F and IPL_DEPTH_64F are supported */
|
||||
char colorModel[4]; /* ignored by OpenCV */
|
||||
char channelSeq[4]; /* ditto */
|
||||
int dataOrder; /* 0 - interleaved color channels, 1 - separate color channels.
|
||||
cvCreateImage can only create interleaved images */
|
||||
int origin; /* 0 - top-left origin,
|
||||
1 - bottom-left origin (Windows bitmaps style) */
|
||||
int align; /* Alignment of image rows (4 or 8).
|
||||
OpenCV ignores it and uses widthStep instead */
|
||||
int width; /* image width in pixels */
|
||||
int height; /* image height in pixels */
|
||||
struct _IplROI *roi;/* image ROI. if NULL, the whole image is selected */
|
||||
struct _IplImage *maskROI; /* must be NULL */
|
||||
void *imageId; /* ditto */
|
||||
struct _IplTileInfo *tileInfo; /* ditto */
|
||||
int imageSize; /* image data size in bytes
|
||||
(==image->height*image->widthStep
|
||||
in case of interleaved data)*/
|
||||
char *imageData; /* pointer to aligned image data */
|
||||
int widthStep; /* size of aligned image row in bytes */
|
||||
int BorderMode[4]; /* ignored by OpenCV */
|
||||
int BorderConst[4]; /* ditto */
|
||||
char *imageDataOrigin; /* pointer to very origin of image data
|
||||
(not necessarily aligned) -
|
||||
needed for correct deallocation */
|
||||
} IplImage;
|
||||
|
||||
struct IplROI
|
||||
{
|
||||
int coi; /* 0 - no COI (all channels are selected), 1 - 0th channel is selected ...*/
|
||||
int xOffset;
|
||||
int yOffset;
|
||||
int width;
|
||||
int height;
|
||||
};
|
||||
|
||||
|
||||
|
||||
typedef struct CvRect
|
||||
{
|
||||
int x;
|
||||
int y;
|
||||
int width;
|
||||
int height;
|
||||
}
|
||||
CvRect;
|
||||
|
||||
struct CvMemBlock;
|
||||
struct CvMemStorage;
|
||||
struct CvSeq;
|
||||
struct CvSize;
|
||||
struct CvArr;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Python stub
|
||||
|
||||
#endif
|
||||
#ifndef _CXCORE_TYPES_H_
|
||||
#define _CXCORE_TYPES_H_
|
||||
|
||||
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
typedef struct IplImage
|
||||
{
|
||||
int nSize; /* sizeof(IplImage) */
|
||||
int ID; /* version (=0)*/
|
||||
int nChannels; /* Most of OpenCV functions support 1,2,3 or 4 channels */
|
||||
int alphaChannel; /* ignored by OpenCV */
|
||||
int depth; /* pixel depth in bits: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16S,
|
||||
IPL_DEPTH_32S, IPL_DEPTH_32F and IPL_DEPTH_64F are supported */
|
||||
char colorModel[4]; /* ignored by OpenCV */
|
||||
char channelSeq[4]; /* ditto */
|
||||
int dataOrder; /* 0 - interleaved color channels, 1 - separate color channels.
|
||||
cvCreateImage can only create interleaved images */
|
||||
int origin; /* 0 - top-left origin,
|
||||
1 - bottom-left origin (Windows bitmaps style) */
|
||||
int align; /* Alignment of image rows (4 or 8).
|
||||
OpenCV ignores it and uses widthStep instead */
|
||||
int width; /* image width in pixels */
|
||||
int height; /* image height in pixels */
|
||||
struct _IplROI *roi;/* image ROI. if NULL, the whole image is selected */
|
||||
struct _IplImage *maskROI; /* must be NULL */
|
||||
void *imageId; /* ditto */
|
||||
struct _IplTileInfo *tileInfo; /* ditto */
|
||||
int imageSize; /* image data size in bytes
|
||||
(==image->height*image->widthStep
|
||||
in case of interleaved data)*/
|
||||
char *imageData; /* pointer to aligned image data */
|
||||
int widthStep; /* size of aligned image row in bytes */
|
||||
int BorderMode[4]; /* ignored by OpenCV */
|
||||
int BorderConst[4]; /* ditto */
|
||||
char *imageDataOrigin; /* pointer to very origin of image data
|
||||
(not necessarily aligned) -
|
||||
needed for correct deallocation */
|
||||
} IplImage;
|
||||
|
||||
struct IplROI
|
||||
{
|
||||
int coi; /* 0 - no COI (all channels are selected), 1 - 0th channel is selected ...*/
|
||||
int xOffset;
|
||||
int yOffset;
|
||||
int width;
|
||||
int height;
|
||||
};
|
||||
|
||||
|
||||
|
||||
typedef struct CvRect
|
||||
{
|
||||
int x;
|
||||
int y;
|
||||
int width;
|
||||
int height;
|
||||
}
|
||||
CvRect;
|
||||
|
||||
struct CvMemBlock;
|
||||
struct CvMemStorage;
|
||||
struct CvSeq;
|
||||
struct CvSize;
|
||||
struct CvArr;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Python stub
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifndef _HIGH_GUI_
|
||||
#define _HIGH_GUI_
|
||||
|
||||
|
||||
#ifndef _HIGH_GUI_
|
||||
#define _HIGH_GUI_
|
||||
|
||||
|
||||
#endif
|
||||
@@ -1,21 +1,21 @@
|
||||
Multi-Texturing in Maya.
|
||||
|
||||
A good rule of thumb is to create your Multi-Layered shader first to get an idea of what kind of blendmode you want. You can do that by using Maya's kLayeredShader.
|
||||
|
||||
Following blendmode from Maya is supported directly in Panda.
|
||||
|
||||
"Multiply" => "Modulate"
|
||||
"Over" => "Decal"
|
||||
"Add" => "Add"
|
||||
|
||||
More blendmodes will be supported very soon. You should be able to pview this change if you restart Maya from the "runmaya.bat" (or however you restart maya).
|
||||
|
||||
Once the shader is setup, you should create the texture coordinates or uvsets for your multitexture. Make sure, the uvset name matches the shader names that you made
|
||||
in the kLayeredShader. For Example, if the two shaders (not the texure file name) in your kLayeredShader are called "base" and "top", then your geometry (that will have
|
||||
the layeresShader) will have two uvsets called "base" and "top".
|
||||
|
||||
After this you will link the uvsets to the appropriate shaders.
|
||||
|
||||
A reminder note: by default the alpha channel of the texture on the bottom is dropped in the conversion. If you want to retain the alpha channel of your texture,
|
||||
please make a connection to the alpha channel in Maya when setting up the shader (alpha on the layerShader will be highlighted in yellow).
|
||||
|
||||
Multi-Texturing in Maya.
|
||||
|
||||
A good rule of thumb is to create your Multi-Layered shader first to get an idea of what kind of blendmode you want. You can do that by using Maya's kLayeredShader.
|
||||
|
||||
Following blendmode from Maya is supported directly in Panda.
|
||||
|
||||
"Multiply" => "Modulate"
|
||||
"Over" => "Decal"
|
||||
"Add" => "Add"
|
||||
|
||||
More blendmodes will be supported very soon. You should be able to pview this change if you restart Maya from the "runmaya.bat" (or however you restart maya).
|
||||
|
||||
Once the shader is setup, you should create the texture coordinates or uvsets for your multitexture. Make sure, the uvset name matches the shader names that you made
|
||||
in the kLayeredShader. For Example, if the two shaders (not the texure file name) in your kLayeredShader are called "base" and "top", then your geometry (that will have
|
||||
the layeresShader) will have two uvsets called "base" and "top".
|
||||
|
||||
After this you will link the uvsets to the appropriate shaders.
|
||||
|
||||
A reminder note: by default the alpha channel of the texture on the bottom is dropped in the conversion. If you want to retain the alpha channel of your texture,
|
||||
please make a connection to the alpha channel in Maya when setting up the shader (alpha on the layerShader will be highlighted in yellow).
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -25,19 +25,19 @@
|
||||
// on pc cygwin from 3 minutes to 17 seconds ?? really need to explore interigate to figure out what is
|
||||
// going on ..
|
||||
//
|
||||
template<class Key, class Compare = less<int> > class ov_multiset
|
||||
{
|
||||
};
|
||||
|
||||
template<class Key, class Compare = less<int> > class ov_set
|
||||
{
|
||||
};
|
||||
|
||||
template<class Key, class Compare = less<int> > class ordered_vector
|
||||
{
|
||||
};
|
||||
|
||||
#else // cppparser
|
||||
template<class Key, class Compare = less<int> > class ov_multiset
|
||||
{
|
||||
};
|
||||
|
||||
template<class Key, class Compare = less<int> > class ov_set
|
||||
{
|
||||
};
|
||||
|
||||
template<class Key, class Compare = less<int> > class ordered_vector
|
||||
{
|
||||
};
|
||||
|
||||
#else // cppparser
|
||||
|
||||
|
||||
#include "pandabase.h"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,19 +1,19 @@
|
||||
// Filename: loaderOptions.cxx
|
||||
// Created by: drose (05Oct05)
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// PANDA 3D SOFTWARE
|
||||
// Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved
|
||||
//
|
||||
// All use of this software is subject to the terms of the Panda 3d
|
||||
// Software license. You should have received a copy of this license
|
||||
// along with this source code; you will also find a current copy of
|
||||
// the license at http://etc.cmu.edu/panda3d/docs/license/ .
|
||||
//
|
||||
// To contact the maintainers of this program write to
|
||||
// panda3d-general@lists.sourceforge.net .
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "loaderOptions.h"
|
||||
// Filename: loaderOptions.cxx
|
||||
// Created by: drose (05Oct05)
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// PANDA 3D SOFTWARE
|
||||
// Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved
|
||||
//
|
||||
// All use of this software is subject to the terms of the Panda 3d
|
||||
// Software license. You should have received a copy of this license
|
||||
// along with this source code; you will also find a current copy of
|
||||
// the license at http://etc.cmu.edu/panda3d/docs/license/ .
|
||||
//
|
||||
// To contact the maintainers of this program write to
|
||||
// panda3d-general@lists.sourceforge.net .
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "loaderOptions.h"
|
||||
|
||||
@@ -229,19 +229,19 @@ void MaxEggPlugin::UpdateUI() {
|
||||
//Columns have not been setup, so initialize the control
|
||||
ListView_SetExtendedListViewStyleEx(lv, LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT,
|
||||
LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);
|
||||
|
||||
pCol.fmt = LVCFMT_LEFT;
|
||||
pCol.cx = 96;
|
||||
pCol.pszText = "Filename";
|
||||
pCol.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
|
||||
pCol.iSubItem = 0;
|
||||
ListView_InsertColumn(lv, 0, &pCol);
|
||||
|
||||
pCol.cx = 44;
|
||||
pCol.pszText = "Type";
|
||||
ListView_InsertColumn(lv, 1, &pCol);
|
||||
}
|
||||
|
||||
|
||||
pCol.fmt = LVCFMT_LEFT;
|
||||
pCol.cx = 96;
|
||||
pCol.pszText = "Filename";
|
||||
pCol.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
|
||||
pCol.iSubItem = 0;
|
||||
ListView_InsertColumn(lv, 0, &pCol);
|
||||
|
||||
pCol.cx = 44;
|
||||
pCol.pszText = "Type";
|
||||
ListView_InsertColumn(lv, 1, &pCol);
|
||||
}
|
||||
|
||||
//Add the eggs to the list
|
||||
ListView_DeleteAllItems(lv);
|
||||
LV_ITEM Item;
|
||||
@@ -310,10 +310,10 @@ void MaxEggPlugin::DoExport() {
|
||||
if (eggList[i]->checked && eggList[i]->successful)
|
||||
if (eggList[i]->anim_type != MaxEggExpOptions::AT_chan) {
|
||||
char buf[1024];
|
||||
PROCESS_INFORMATION pi;
|
||||
STARTUPINFO si;
|
||||
|
||||
memset(&si,0,sizeof(si));
|
||||
PROCESS_INFORMATION pi;
|
||||
STARTUPINFO si;
|
||||
|
||||
memset(&si,0,sizeof(si));
|
||||
si.cb= sizeof(si);
|
||||
|
||||
sprintf(buf, "Pview %s.egg?", eggList[i]->shortName);
|
||||
|
||||
@@ -118,259 +118,259 @@ class MaxEggPlugin : public HelperObject
|
||||
|
||||
|
||||
|
||||
const double meshVerts[252][3] = {
|
||||
{0.729464, 0.714986, -0.919852},
|
||||
{0.466137, 0.160201, -0.594656},
|
||||
{-0.265897, 0.714986, -1.14704},
|
||||
{0.466137, 0.160201, -0.594656},
|
||||
{-0.177333, 0.160201, -0.741523},
|
||||
{-0.265897, 0.714986, -1.14704},
|
||||
{-0.265897, 0.714986, -1.14704},
|
||||
{-0.177333, 0.160201, -0.741523},
|
||||
{-1.06411, 0.714986, -0.510479},
|
||||
{-0.177333, 0.160201, -0.741523},
|
||||
{-0.693356, 0.160201, -0.330009},
|
||||
{-1.06411, 0.714986, -0.510479},
|
||||
{-1.06411, 0.714986, 0.510479},
|
||||
{-1.06411, 0.714986, -0.510479},
|
||||
{-0.693356, 0.160201, 0.330009},
|
||||
{-0.693356, 0.160201, -0.330009},
|
||||
{-0.693356, 0.160201, 0.330009},
|
||||
{-1.06411, 0.714986, -0.510479},
|
||||
{-0.265897, 0.714986, 1.14704},
|
||||
{-1.06411, 0.714986, 0.510479},
|
||||
{-0.177333, 0.160201, 0.741523},
|
||||
{-0.693356, 0.160201, 0.330009},
|
||||
{-0.177333, 0.160201, 0.741523},
|
||||
{-1.06411, 0.714986, 0.510479},
|
||||
{0.729464, 0.714986, 0.919852},
|
||||
{-0.265897, 0.714986, 1.14704},
|
||||
{0.466137, 0.160201, 0.594656},
|
||||
{-0.177333, 0.160201, 0.741523},
|
||||
{0.466137, 0.160201, 0.594656},
|
||||
{-0.265897, 0.714986, 1.14704},
|
||||
{1.17244, 0.714986, 0.0},
|
||||
{0.729464, 0.714986, 0.919852},
|
||||
{0.752508, 0.160201, 0.0},
|
||||
{0.466137, 0.160201, 0.594656},
|
||||
{0.752508, 0.160201, 0.0},
|
||||
{0.729464, 0.714986, 0.919852},
|
||||
{0.729464, 0.714986, -0.919852},
|
||||
{1.17244, 0.714986, 0.0},
|
||||
{0.466137, 0.160201, -0.594656},
|
||||
{0.752508, 0.160201, 0.0},
|
||||
{0.466137, 0.160201, -0.594656},
|
||||
{1.17244, 0.714986, 0.0},
|
||||
{-0.286334, 1.44995, -1.26822},
|
||||
{0.814187, 1.44995, -1.01703},
|
||||
{-0.265897, 0.714986, -1.14704},
|
||||
{0.729464, 0.714986, -0.919852},
|
||||
{-0.265897, 0.714986, -1.14704},
|
||||
{0.814187, 1.44995, -1.01703},
|
||||
{-1.16888, 1.44995, -0.564412},
|
||||
{-0.286334, 1.44995, -1.26822},
|
||||
{-1.06411, 0.714986, -0.510479},
|
||||
{-0.265897, 0.714986, -1.14704},
|
||||
{-1.06411, 0.714986, -0.510479},
|
||||
{-0.286334, 1.44995, -1.26822},
|
||||
{-1.16888, 1.44995, 0.564411},
|
||||
{-1.16888, 1.44995, -0.564412},
|
||||
{-1.06411, 0.714986, 0.510479},
|
||||
{-1.06411, 0.714986, -0.510479},
|
||||
{-1.06411, 0.714986, 0.510479},
|
||||
{-1.16888, 1.44995, -0.564412},
|
||||
{-1.16888, 1.44995, 0.564411},
|
||||
{-1.06411, 0.714986, 0.510479},
|
||||
{-0.286334, 1.44995, 1.26822},
|
||||
{-1.06411, 0.714986, 0.510479},
|
||||
{-0.265897, 0.714986, 1.14704},
|
||||
{-0.286334, 1.44995, 1.26822},
|
||||
{-0.286334, 1.44995, 1.26822},
|
||||
{-0.265897, 0.714986, 1.14704},
|
||||
{0.814187, 1.44995, 1.01703},
|
||||
{-0.265897, 0.714986, 1.14704},
|
||||
{0.729464, 0.714986, 0.919852},
|
||||
{0.814187, 1.44995, 1.01703},
|
||||
{1.30396, 1.44995, 0.0},
|
||||
{0.814187, 1.44995, 1.01703},
|
||||
{1.17244, 0.714986, 0.0},
|
||||
{0.729464, 0.714986, 0.919852},
|
||||
{1.17244, 0.714986, 0.0},
|
||||
{0.814187, 1.44995, 1.01703},
|
||||
{1.30396, 1.44995, 0.0},
|
||||
{1.17244, 0.714986, 0.0},
|
||||
{0.814187, 1.44995, -1.01703},
|
||||
{1.17244, 0.714986, 0.0},
|
||||
{0.729464, 0.714986, -0.919852},
|
||||
{0.814187, 1.44995, -1.01703},
|
||||
{-0.286334, 1.44995, -1.26822},
|
||||
{-0.227573, 2.16723, -1.05763},
|
||||
{0.814187, 1.44995, -1.01703},
|
||||
{0.814187, 1.44995, -1.01703},
|
||||
{-0.227573, 2.16723, -1.05763},
|
||||
{0.690208, 2.16723, -0.848157},
|
||||
{-1.16888, 1.44995, -0.564412},
|
||||
{-0.963577, 2.16723, -0.470692},
|
||||
{-0.286334, 1.44995, -1.26822},
|
||||
{-0.286334, 1.44995, -1.26822},
|
||||
{-0.963577, 2.16723, -0.470692},
|
||||
{-0.227573, 2.16723, -1.05763},
|
||||
{-1.16888, 1.44995, -0.564412},
|
||||
{-1.16888, 1.44995, 0.564411},
|
||||
{-0.963577, 2.16723, -0.470692},
|
||||
{-1.16888, 1.44995, 0.564411},
|
||||
{-0.963577, 2.16723, 0.470692},
|
||||
{-0.963577, 2.16723, -0.470692},
|
||||
{-1.16888, 1.44995, 0.564411},
|
||||
{-0.286334, 1.44995, 1.26822},
|
||||
{-0.963577, 2.16723, 0.470692},
|
||||
{-0.286334, 1.44995, 1.26822},
|
||||
{-0.227574, 2.16723, 1.05763},
|
||||
{-0.963577, 2.16723, 0.470692},
|
||||
{-0.286334, 1.44995, 1.26822},
|
||||
{0.814187, 1.44995, 1.01703},
|
||||
{-0.227574, 2.16723, 1.05763},
|
||||
{0.814187, 1.44995, 1.01703},
|
||||
{0.690208, 2.16723, 0.848157},
|
||||
{-0.227574, 2.16723, 1.05763},
|
||||
{0.814187, 1.44995, 1.01703},
|
||||
{1.30396, 1.44995, 0.0},
|
||||
{0.690208, 2.16723, 0.848157},
|
||||
{1.30396, 1.44995, 0.0},
|
||||
{1.09866, 2.16723, 0.0},
|
||||
{0.690208, 2.16723, 0.848157},
|
||||
{0.814187, 1.44995, -1.01703},
|
||||
{0.690208, 2.16723, -0.848157},
|
||||
{1.30396, 1.44995, 0.0},
|
||||
{1.30396, 1.44995, 0.0},
|
||||
{0.690208, 2.16723, -0.848157},
|
||||
{1.09866, 2.16723, 0.0},
|
||||
{-0.227573, 2.16723, -1.05763},
|
||||
{-0.154893, 2.72566, -0.759032},
|
||||
{0.690208, 2.16723, -0.848157},
|
||||
{0.690208, 2.16723, -0.848157},
|
||||
{-0.154893, 2.72566, -0.759032},
|
||||
{0.50377, 2.72566, -0.608696},
|
||||
{-0.963577, 2.16723, -0.470692},
|
||||
{-0.683099, 2.72566, -0.337801},
|
||||
{-0.227573, 2.16723, -1.05763},
|
||||
{-0.227573, 2.16723, -1.05763},
|
||||
{-0.683099, 2.72566, -0.337801},
|
||||
{-0.154893, 2.72566, -0.759032},
|
||||
{-0.963577, 2.16723, -0.470692},
|
||||
{-0.963577, 2.16723, 0.470692},
|
||||
{-0.683099, 2.72566, -0.337801},
|
||||
{-0.963577, 2.16723, 0.470692},
|
||||
{-0.683099, 2.72566, 0.337801},
|
||||
{-0.683099, 2.72566, -0.337801},
|
||||
{-0.963577, 2.16723, 0.470692},
|
||||
{-0.227574, 2.16723, 1.05763},
|
||||
{-0.683099, 2.72566, 0.337801},
|
||||
{-0.227574, 2.16723, 1.05763},
|
||||
{-0.154893, 2.72566, 0.759032},
|
||||
{-0.683099, 2.72566, 0.337801},
|
||||
{-0.227574, 2.16723, 1.05763},
|
||||
{0.690208, 2.16723, 0.848157},
|
||||
{-0.154893, 2.72566, 0.759032},
|
||||
{0.690208, 2.16723, 0.848157},
|
||||
{0.50377, 2.72566, 0.608696},
|
||||
{-0.154893, 2.72566, 0.759032},
|
||||
{0.690208, 2.16723, 0.848157},
|
||||
{1.09866, 2.16723, 0.0},
|
||||
{0.50377, 2.72566, 0.608696},
|
||||
{1.09866, 2.16723, 0.0},
|
||||
{0.796903, 2.72566, 0.0},
|
||||
{0.50377, 2.72566, 0.608696},
|
||||
{1.09866, 2.16723, 0.0},
|
||||
{0.690208, 2.16723, -0.848157},
|
||||
{0.796903, 2.72566, 0.0},
|
||||
{0.690208, 2.16723, -0.848157},
|
||||
{0.50377, 2.72566, -0.608696},
|
||||
{0.796903, 2.72566, 0.0},
|
||||
{0.50377, 2.72566, -0.608696},
|
||||
{-0.154893, 2.72566, -0.759032},
|
||||
{0.259722, 3.11175, -0.299638},
|
||||
{-0.154893, 2.72566, -0.759032},
|
||||
{-0.0645132, 3.11175, -0.373643},
|
||||
{0.259722, 3.11175, -0.299638},
|
||||
{-0.154893, 2.72566, -0.759032},
|
||||
{-0.683099, 2.72566, -0.337801},
|
||||
{-0.0645132, 3.11175, -0.373643},
|
||||
{-0.683099, 2.72566, -0.337801},
|
||||
{-0.324529, 3.11175, -0.166287},
|
||||
{-0.0645132, 3.11175, -0.373643},
|
||||
{-0.683099, 2.72566, -0.337801},
|
||||
{-0.683099, 2.72566, 0.337801},
|
||||
{-0.324529, 3.11175, -0.166287},
|
||||
{-0.683099, 2.72566, 0.337801},
|
||||
{-0.324529, 3.11175, 0.166287},
|
||||
{-0.324529, 3.11175, -0.166287},
|
||||
{-0.683099, 2.72566, 0.337801},
|
||||
{-0.154893, 2.72566, 0.759032},
|
||||
{-0.324529, 3.11175, 0.166287},
|
||||
{-0.154893, 2.72566, 0.759032},
|
||||
{-0.0645132, 3.11175, 0.373642},
|
||||
{-0.324529, 3.11175, 0.166287},
|
||||
{-0.154893, 2.72566, 0.759032},
|
||||
{0.50377, 2.72566, 0.608696},
|
||||
{-0.0645132, 3.11175, 0.373642},
|
||||
{0.50377, 2.72566, 0.608696},
|
||||
{0.259722, 3.11175, 0.299638},
|
||||
{-0.0645132, 3.11175, 0.373642},
|
||||
{0.50377, 2.72566, 0.608696},
|
||||
{0.796903, 2.72566, 0.0},
|
||||
{0.259722, 3.11175, 0.299638},
|
||||
{0.796903, 2.72566, 0.0},
|
||||
{0.40402, 3.11175, 0.0},
|
||||
{0.259722, 3.11175, 0.299638},
|
||||
{0.796903, 2.72566, 0.0},
|
||||
{0.50377, 2.72566, -0.608696},
|
||||
{0.40402, 3.11175, 0.0},
|
||||
{0.50377, 2.72566, -0.608696},
|
||||
{0.259722, 3.11175, -0.299638},
|
||||
{0.40402, 3.11175, 0.0},
|
||||
{-0.177333, 0.160201, -0.741523},
|
||||
{0.466137, 0.160201, -0.594656},
|
||||
{-0.00334214, 0.00443203, 0.0},
|
||||
{-0.693356, 0.160201, -0.330009},
|
||||
{-0.177333, 0.160201, -0.741523},
|
||||
{-0.00334214, 0.00443203, 0.0},
|
||||
{-0.693356, 0.160201, 0.330009},
|
||||
{-0.693356, 0.160201, -0.330009},
|
||||
{-0.00334214, 0.00443203, 0.0},
|
||||
{-0.177333, 0.160201, 0.741523},
|
||||
{-0.693356, 0.160201, 0.330009},
|
||||
{-0.00334214, 0.00443203, 0.0},
|
||||
{0.466137, 0.160201, 0.594656},
|
||||
{-0.177333, 0.160201, 0.741523},
|
||||
{-0.00334214, 0.00443203, 0.0},
|
||||
{0.752508, 0.160201, 0.0},
|
||||
{0.466137, 0.160201, 0.594656},
|
||||
{-0.00334214, 0.00443203, 0.0},
|
||||
{0.466137, 0.160201, -0.594656},
|
||||
{0.752508, 0.160201, 0.0},
|
||||
{-0.00334214, 0.00443203, 0.0},
|
||||
{0.259722, 3.11175, -0.299638},
|
||||
{-0.0645132, 3.11175, -0.373643},
|
||||
{0.0207683, 3.20912, 0.0},
|
||||
{-0.0645132, 3.11175, -0.373643},
|
||||
{-0.324529, 3.11175, -0.166287},
|
||||
{0.0207683, 3.20912, 0.0},
|
||||
{-0.324529, 3.11175, -0.166287},
|
||||
{-0.324529, 3.11175, 0.166287},
|
||||
{0.0207683, 3.20912, 0.0},
|
||||
{-0.324529, 3.11175, 0.166287},
|
||||
{-0.0645132, 3.11175, 0.373642},
|
||||
{0.0207683, 3.20912, 0.0},
|
||||
{-0.0645132, 3.11175, 0.373642},
|
||||
{0.259722, 3.11175, 0.299638},
|
||||
{0.0207683, 3.20912, 0.0},
|
||||
{0.259722, 3.11175, 0.299638},
|
||||
{0.40402, 3.11175, 0.0},
|
||||
{0.0207683, 3.20912, 0.0},
|
||||
{0.40402, 3.11175, 0.0},
|
||||
{0.259722, 3.11175, -0.299638},
|
||||
{0.0207683, 3.20912, 0.0}
|
||||
};
|
||||
|
||||
const double meshVerts[252][3] = {
|
||||
{0.729464, 0.714986, -0.919852},
|
||||
{0.466137, 0.160201, -0.594656},
|
||||
{-0.265897, 0.714986, -1.14704},
|
||||
{0.466137, 0.160201, -0.594656},
|
||||
{-0.177333, 0.160201, -0.741523},
|
||||
{-0.265897, 0.714986, -1.14704},
|
||||
{-0.265897, 0.714986, -1.14704},
|
||||
{-0.177333, 0.160201, -0.741523},
|
||||
{-1.06411, 0.714986, -0.510479},
|
||||
{-0.177333, 0.160201, -0.741523},
|
||||
{-0.693356, 0.160201, -0.330009},
|
||||
{-1.06411, 0.714986, -0.510479},
|
||||
{-1.06411, 0.714986, 0.510479},
|
||||
{-1.06411, 0.714986, -0.510479},
|
||||
{-0.693356, 0.160201, 0.330009},
|
||||
{-0.693356, 0.160201, -0.330009},
|
||||
{-0.693356, 0.160201, 0.330009},
|
||||
{-1.06411, 0.714986, -0.510479},
|
||||
{-0.265897, 0.714986, 1.14704},
|
||||
{-1.06411, 0.714986, 0.510479},
|
||||
{-0.177333, 0.160201, 0.741523},
|
||||
{-0.693356, 0.160201, 0.330009},
|
||||
{-0.177333, 0.160201, 0.741523},
|
||||
{-1.06411, 0.714986, 0.510479},
|
||||
{0.729464, 0.714986, 0.919852},
|
||||
{-0.265897, 0.714986, 1.14704},
|
||||
{0.466137, 0.160201, 0.594656},
|
||||
{-0.177333, 0.160201, 0.741523},
|
||||
{0.466137, 0.160201, 0.594656},
|
||||
{-0.265897, 0.714986, 1.14704},
|
||||
{1.17244, 0.714986, 0.0},
|
||||
{0.729464, 0.714986, 0.919852},
|
||||
{0.752508, 0.160201, 0.0},
|
||||
{0.466137, 0.160201, 0.594656},
|
||||
{0.752508, 0.160201, 0.0},
|
||||
{0.729464, 0.714986, 0.919852},
|
||||
{0.729464, 0.714986, -0.919852},
|
||||
{1.17244, 0.714986, 0.0},
|
||||
{0.466137, 0.160201, -0.594656},
|
||||
{0.752508, 0.160201, 0.0},
|
||||
{0.466137, 0.160201, -0.594656},
|
||||
{1.17244, 0.714986, 0.0},
|
||||
{-0.286334, 1.44995, -1.26822},
|
||||
{0.814187, 1.44995, -1.01703},
|
||||
{-0.265897, 0.714986, -1.14704},
|
||||
{0.729464, 0.714986, -0.919852},
|
||||
{-0.265897, 0.714986, -1.14704},
|
||||
{0.814187, 1.44995, -1.01703},
|
||||
{-1.16888, 1.44995, -0.564412},
|
||||
{-0.286334, 1.44995, -1.26822},
|
||||
{-1.06411, 0.714986, -0.510479},
|
||||
{-0.265897, 0.714986, -1.14704},
|
||||
{-1.06411, 0.714986, -0.510479},
|
||||
{-0.286334, 1.44995, -1.26822},
|
||||
{-1.16888, 1.44995, 0.564411},
|
||||
{-1.16888, 1.44995, -0.564412},
|
||||
{-1.06411, 0.714986, 0.510479},
|
||||
{-1.06411, 0.714986, -0.510479},
|
||||
{-1.06411, 0.714986, 0.510479},
|
||||
{-1.16888, 1.44995, -0.564412},
|
||||
{-1.16888, 1.44995, 0.564411},
|
||||
{-1.06411, 0.714986, 0.510479},
|
||||
{-0.286334, 1.44995, 1.26822},
|
||||
{-1.06411, 0.714986, 0.510479},
|
||||
{-0.265897, 0.714986, 1.14704},
|
||||
{-0.286334, 1.44995, 1.26822},
|
||||
{-0.286334, 1.44995, 1.26822},
|
||||
{-0.265897, 0.714986, 1.14704},
|
||||
{0.814187, 1.44995, 1.01703},
|
||||
{-0.265897, 0.714986, 1.14704},
|
||||
{0.729464, 0.714986, 0.919852},
|
||||
{0.814187, 1.44995, 1.01703},
|
||||
{1.30396, 1.44995, 0.0},
|
||||
{0.814187, 1.44995, 1.01703},
|
||||
{1.17244, 0.714986, 0.0},
|
||||
{0.729464, 0.714986, 0.919852},
|
||||
{1.17244, 0.714986, 0.0},
|
||||
{0.814187, 1.44995, 1.01703},
|
||||
{1.30396, 1.44995, 0.0},
|
||||
{1.17244, 0.714986, 0.0},
|
||||
{0.814187, 1.44995, -1.01703},
|
||||
{1.17244, 0.714986, 0.0},
|
||||
{0.729464, 0.714986, -0.919852},
|
||||
{0.814187, 1.44995, -1.01703},
|
||||
{-0.286334, 1.44995, -1.26822},
|
||||
{-0.227573, 2.16723, -1.05763},
|
||||
{0.814187, 1.44995, -1.01703},
|
||||
{0.814187, 1.44995, -1.01703},
|
||||
{-0.227573, 2.16723, -1.05763},
|
||||
{0.690208, 2.16723, -0.848157},
|
||||
{-1.16888, 1.44995, -0.564412},
|
||||
{-0.963577, 2.16723, -0.470692},
|
||||
{-0.286334, 1.44995, -1.26822},
|
||||
{-0.286334, 1.44995, -1.26822},
|
||||
{-0.963577, 2.16723, -0.470692},
|
||||
{-0.227573, 2.16723, -1.05763},
|
||||
{-1.16888, 1.44995, -0.564412},
|
||||
{-1.16888, 1.44995, 0.564411},
|
||||
{-0.963577, 2.16723, -0.470692},
|
||||
{-1.16888, 1.44995, 0.564411},
|
||||
{-0.963577, 2.16723, 0.470692},
|
||||
{-0.963577, 2.16723, -0.470692},
|
||||
{-1.16888, 1.44995, 0.564411},
|
||||
{-0.286334, 1.44995, 1.26822},
|
||||
{-0.963577, 2.16723, 0.470692},
|
||||
{-0.286334, 1.44995, 1.26822},
|
||||
{-0.227574, 2.16723, 1.05763},
|
||||
{-0.963577, 2.16723, 0.470692},
|
||||
{-0.286334, 1.44995, 1.26822},
|
||||
{0.814187, 1.44995, 1.01703},
|
||||
{-0.227574, 2.16723, 1.05763},
|
||||
{0.814187, 1.44995, 1.01703},
|
||||
{0.690208, 2.16723, 0.848157},
|
||||
{-0.227574, 2.16723, 1.05763},
|
||||
{0.814187, 1.44995, 1.01703},
|
||||
{1.30396, 1.44995, 0.0},
|
||||
{0.690208, 2.16723, 0.848157},
|
||||
{1.30396, 1.44995, 0.0},
|
||||
{1.09866, 2.16723, 0.0},
|
||||
{0.690208, 2.16723, 0.848157},
|
||||
{0.814187, 1.44995, -1.01703},
|
||||
{0.690208, 2.16723, -0.848157},
|
||||
{1.30396, 1.44995, 0.0},
|
||||
{1.30396, 1.44995, 0.0},
|
||||
{0.690208, 2.16723, -0.848157},
|
||||
{1.09866, 2.16723, 0.0},
|
||||
{-0.227573, 2.16723, -1.05763},
|
||||
{-0.154893, 2.72566, -0.759032},
|
||||
{0.690208, 2.16723, -0.848157},
|
||||
{0.690208, 2.16723, -0.848157},
|
||||
{-0.154893, 2.72566, -0.759032},
|
||||
{0.50377, 2.72566, -0.608696},
|
||||
{-0.963577, 2.16723, -0.470692},
|
||||
{-0.683099, 2.72566, -0.337801},
|
||||
{-0.227573, 2.16723, -1.05763},
|
||||
{-0.227573, 2.16723, -1.05763},
|
||||
{-0.683099, 2.72566, -0.337801},
|
||||
{-0.154893, 2.72566, -0.759032},
|
||||
{-0.963577, 2.16723, -0.470692},
|
||||
{-0.963577, 2.16723, 0.470692},
|
||||
{-0.683099, 2.72566, -0.337801},
|
||||
{-0.963577, 2.16723, 0.470692},
|
||||
{-0.683099, 2.72566, 0.337801},
|
||||
{-0.683099, 2.72566, -0.337801},
|
||||
{-0.963577, 2.16723, 0.470692},
|
||||
{-0.227574, 2.16723, 1.05763},
|
||||
{-0.683099, 2.72566, 0.337801},
|
||||
{-0.227574, 2.16723, 1.05763},
|
||||
{-0.154893, 2.72566, 0.759032},
|
||||
{-0.683099, 2.72566, 0.337801},
|
||||
{-0.227574, 2.16723, 1.05763},
|
||||
{0.690208, 2.16723, 0.848157},
|
||||
{-0.154893, 2.72566, 0.759032},
|
||||
{0.690208, 2.16723, 0.848157},
|
||||
{0.50377, 2.72566, 0.608696},
|
||||
{-0.154893, 2.72566, 0.759032},
|
||||
{0.690208, 2.16723, 0.848157},
|
||||
{1.09866, 2.16723, 0.0},
|
||||
{0.50377, 2.72566, 0.608696},
|
||||
{1.09866, 2.16723, 0.0},
|
||||
{0.796903, 2.72566, 0.0},
|
||||
{0.50377, 2.72566, 0.608696},
|
||||
{1.09866, 2.16723, 0.0},
|
||||
{0.690208, 2.16723, -0.848157},
|
||||
{0.796903, 2.72566, 0.0},
|
||||
{0.690208, 2.16723, -0.848157},
|
||||
{0.50377, 2.72566, -0.608696},
|
||||
{0.796903, 2.72566, 0.0},
|
||||
{0.50377, 2.72566, -0.608696},
|
||||
{-0.154893, 2.72566, -0.759032},
|
||||
{0.259722, 3.11175, -0.299638},
|
||||
{-0.154893, 2.72566, -0.759032},
|
||||
{-0.0645132, 3.11175, -0.373643},
|
||||
{0.259722, 3.11175, -0.299638},
|
||||
{-0.154893, 2.72566, -0.759032},
|
||||
{-0.683099, 2.72566, -0.337801},
|
||||
{-0.0645132, 3.11175, -0.373643},
|
||||
{-0.683099, 2.72566, -0.337801},
|
||||
{-0.324529, 3.11175, -0.166287},
|
||||
{-0.0645132, 3.11175, -0.373643},
|
||||
{-0.683099, 2.72566, -0.337801},
|
||||
{-0.683099, 2.72566, 0.337801},
|
||||
{-0.324529, 3.11175, -0.166287},
|
||||
{-0.683099, 2.72566, 0.337801},
|
||||
{-0.324529, 3.11175, 0.166287},
|
||||
{-0.324529, 3.11175, -0.166287},
|
||||
{-0.683099, 2.72566, 0.337801},
|
||||
{-0.154893, 2.72566, 0.759032},
|
||||
{-0.324529, 3.11175, 0.166287},
|
||||
{-0.154893, 2.72566, 0.759032},
|
||||
{-0.0645132, 3.11175, 0.373642},
|
||||
{-0.324529, 3.11175, 0.166287},
|
||||
{-0.154893, 2.72566, 0.759032},
|
||||
{0.50377, 2.72566, 0.608696},
|
||||
{-0.0645132, 3.11175, 0.373642},
|
||||
{0.50377, 2.72566, 0.608696},
|
||||
{0.259722, 3.11175, 0.299638},
|
||||
{-0.0645132, 3.11175, 0.373642},
|
||||
{0.50377, 2.72566, 0.608696},
|
||||
{0.796903, 2.72566, 0.0},
|
||||
{0.259722, 3.11175, 0.299638},
|
||||
{0.796903, 2.72566, 0.0},
|
||||
{0.40402, 3.11175, 0.0},
|
||||
{0.259722, 3.11175, 0.299638},
|
||||
{0.796903, 2.72566, 0.0},
|
||||
{0.50377, 2.72566, -0.608696},
|
||||
{0.40402, 3.11175, 0.0},
|
||||
{0.50377, 2.72566, -0.608696},
|
||||
{0.259722, 3.11175, -0.299638},
|
||||
{0.40402, 3.11175, 0.0},
|
||||
{-0.177333, 0.160201, -0.741523},
|
||||
{0.466137, 0.160201, -0.594656},
|
||||
{-0.00334214, 0.00443203, 0.0},
|
||||
{-0.693356, 0.160201, -0.330009},
|
||||
{-0.177333, 0.160201, -0.741523},
|
||||
{-0.00334214, 0.00443203, 0.0},
|
||||
{-0.693356, 0.160201, 0.330009},
|
||||
{-0.693356, 0.160201, -0.330009},
|
||||
{-0.00334214, 0.00443203, 0.0},
|
||||
{-0.177333, 0.160201, 0.741523},
|
||||
{-0.693356, 0.160201, 0.330009},
|
||||
{-0.00334214, 0.00443203, 0.0},
|
||||
{0.466137, 0.160201, 0.594656},
|
||||
{-0.177333, 0.160201, 0.741523},
|
||||
{-0.00334214, 0.00443203, 0.0},
|
||||
{0.752508, 0.160201, 0.0},
|
||||
{0.466137, 0.160201, 0.594656},
|
||||
{-0.00334214, 0.00443203, 0.0},
|
||||
{0.466137, 0.160201, -0.594656},
|
||||
{0.752508, 0.160201, 0.0},
|
||||
{-0.00334214, 0.00443203, 0.0},
|
||||
{0.259722, 3.11175, -0.299638},
|
||||
{-0.0645132, 3.11175, -0.373643},
|
||||
{0.0207683, 3.20912, 0.0},
|
||||
{-0.0645132, 3.11175, -0.373643},
|
||||
{-0.324529, 3.11175, -0.166287},
|
||||
{0.0207683, 3.20912, 0.0},
|
||||
{-0.324529, 3.11175, -0.166287},
|
||||
{-0.324529, 3.11175, 0.166287},
|
||||
{0.0207683, 3.20912, 0.0},
|
||||
{-0.324529, 3.11175, 0.166287},
|
||||
{-0.0645132, 3.11175, 0.373642},
|
||||
{0.0207683, 3.20912, 0.0},
|
||||
{-0.0645132, 3.11175, 0.373642},
|
||||
{0.259722, 3.11175, 0.299638},
|
||||
{0.0207683, 3.20912, 0.0},
|
||||
{0.259722, 3.11175, 0.299638},
|
||||
{0.40402, 3.11175, 0.0},
|
||||
{0.0207683, 3.20912, 0.0},
|
||||
{0.40402, 3.11175, 0.0},
|
||||
{0.259722, 3.11175, -0.299638},
|
||||
{0.0207683, 3.20912, 0.0}
|
||||
};
|
||||
|
||||
#endif // __MaxEggPlugin__H
|
||||
|
||||
@@ -1,219 +1,219 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "maxResource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_PANEL DIALOGEX 0, 0, 109, 192
|
||||
STYLE DS_SETFONT | WS_CHILD | WS_VISIBLE
|
||||
FONT 8, "MS Sans Serif", 0, 0, 0x1
|
||||
BEGIN
|
||||
CTEXT "Panda 3D EGG Exporter",IDC_PANEL_TITLE,6,6,96,11,
|
||||
WS_BORDER
|
||||
LTEXT "Eggs",IDC_EGGS_LABEL,6,19,62,8
|
||||
CONTROL "Custom1",IDC_LIST_EGGS,"SysListView32",LVS_REPORT |
|
||||
LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER |
|
||||
WS_TABSTOP,6,28,96,69,WS_EX_CLIENTEDGE
|
||||
CONTROL "Add...",IDC_ADD_EGG,"CustButton",WS_TABSTOP,6,102,24,12
|
||||
CONTROL "Edit...",IDC_EDIT_EGG,"CustButton",WS_TABSTOP,36,102,30,
|
||||
12
|
||||
CONTROL "Remove",IDC_REMOVE_EGG,"CustButton",WS_TABSTOP,72,102,
|
||||
30,12
|
||||
CONTROL "Overwrite Existing Files",IDC_OVERWRITE_CHECK,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,6,126,103,8,
|
||||
WS_EX_TRANSPARENT
|
||||
CONTROL "Export Now",IDC_EXPORT,"CustButton",WS_TABSTOP,5,164,96,
|
||||
18
|
||||
CONTROL "Pview Output",IDC_PVIEW_CHECK,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,6,138,103,8,WS_EX_TRANSPARENT
|
||||
CONTROL "Log Output",IDC_LOGGING,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,6,148,90,11
|
||||
END
|
||||
|
||||
IDD_EGG_DETAILS DIALOGEX 0, 0, 256, 169
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CAPTION "Export Settings"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
LTEXT "Export Type:",IDC_STATIC,6,5,54,8
|
||||
CONTROL "Model",IDC_MODEL,"Button",BS_AUTORADIOBUTTON,54,4,38,12
|
||||
CONTROL "Animation",IDC_ANIMATION,"Button",BS_AUTORADIOBUTTON,96,
|
||||
4,50,12
|
||||
CONTROL "Both",IDC_BOTH,"Button",BS_AUTORADIOBUTTON,150,4,35,12
|
||||
CONTROL "Pose",IDC_POSE,"Button",BS_AUTORADIOBUTTON,186,4,36,12
|
||||
GROUPBOX "Options",IDC_STATIC,6,18,246,126,WS_GROUP
|
||||
LTEXT "Filename",IDC_STATIC,12,30,66,8
|
||||
CONTROL "Custom1",IDC_FILENAME,"CustEdit",WS_TABSTOP,12,42,180,
|
||||
12
|
||||
CONTROL "Browse...",IDC_BROWSE,"CustButton",WS_TABSTOP,198,42,48,
|
||||
12
|
||||
CONTROL "Export Entire Scene",IDC_EXPORT_ALL,"Button",
|
||||
BS_AUTORADIOBUTTON | WS_GROUP,12,60,114,8
|
||||
CONTROL "Export Meshes:",IDC_EXPORT_SELECTED,"Button",
|
||||
BS_AUTORADIOBUTTON,12,71,114,8
|
||||
LISTBOX IDC_LIST_EXPORT,12,84,114,36,LBS_SORT |
|
||||
LBS_NOINTEGRALHEIGHT | LBS_NOSEL | WS_VSCROLL |
|
||||
WS_TABSTOP
|
||||
CONTROL "Add...",IDC_ADD_EXPORT,"CustButton",WS_TABSTOP,12,126,
|
||||
54,12
|
||||
CONTROL "Remove...",IDC_REMOVE_EXPORT,"CustButton",WS_TABSTOP,72,
|
||||
126,54,12
|
||||
CONTROL "Export All Frames",IDC_EXP_ALL_FRAMES,"Button",
|
||||
BS_AUTORADIOBUTTON | WS_GROUP,144,60,96,8
|
||||
CONTROL "Use Range:",IDC_EXP_SEL_FRAMES,"Button",
|
||||
BS_AUTORADIOBUTTON | BS_VCENTER,144,70,102,11
|
||||
LTEXT "Start Frame",IDC_SF_LABEL,144,86,42,8,WS_DISABLED
|
||||
CONTROL "Custom4",IDC_SF,"CustEdit",WS_DISABLED | WS_TABSTOP,186,
|
||||
84,48,12
|
||||
LTEXT "End Frame",IDC_EF_LABEL,144,103,42,8,WS_DISABLED
|
||||
CONTROL "Custom5",IDC_EF,"CustEdit",WS_DISABLED | WS_TABSTOP,186,
|
||||
101,48,12
|
||||
CONTROL "Double-sided Polygons",IDC_CHECK1,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,144,126,102,12
|
||||
CONTROL "OK",IDC_OK,"CustButton",WS_TABSTOP,162,150,42,12
|
||||
CONTROL "Cancel",IDC_CANCEL,"CustButton",WS_TABSTOP,210,150,42,
|
||||
12
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_PANEL, DIALOG
|
||||
BEGIN
|
||||
BOTTOMMARGIN, 182
|
||||
END
|
||||
|
||||
IDD_EGG_DETAILS, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 249
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 162
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 3,0,0,0
|
||||
PRODUCTVERSION 3,0,0,0
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "FileVersion", "4.0.0.0"
|
||||
VALUE "InternalName", "MaxEgg"
|
||||
VALUE "OriginalFilename", "MaxEgg.dle"
|
||||
VALUE "ProductName", "3ds max"
|
||||
VALUE "ProductVersion", "4.0.0.0"
|
||||
VALUE "FileDescription", "Panda3D .egg exporter"
|
||||
VALUE "Comments", "TECH: "
|
||||
VALUE "LegalTrademarks", "3D Studio MAX, Biped, Character Studio, Heidi, Kinetix and Physique are registered trademarks and 3ds max, combustion, Discreet, DWG Unplugged, DXF, FLI and FLC are trademarks of Autodesk, Inc."
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_LIBDESCRIPTION "Panda3D .egg exporter"
|
||||
IDS_CATEGORY "Exporters"
|
||||
IDS_CLASS_NAME "Panda3D"
|
||||
IDS_PARAMS "Parameters"
|
||||
IDS_SPIN "Spin"
|
||||
END
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "maxResource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_PANEL DIALOGEX 0, 0, 109, 192
|
||||
STYLE DS_SETFONT | WS_CHILD | WS_VISIBLE
|
||||
FONT 8, "MS Sans Serif", 0, 0, 0x1
|
||||
BEGIN
|
||||
CTEXT "Panda 3D EGG Exporter",IDC_PANEL_TITLE,6,6,96,11,
|
||||
WS_BORDER
|
||||
LTEXT "Eggs",IDC_EGGS_LABEL,6,19,62,8
|
||||
CONTROL "Custom1",IDC_LIST_EGGS,"SysListView32",LVS_REPORT |
|
||||
LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER |
|
||||
WS_TABSTOP,6,28,96,69,WS_EX_CLIENTEDGE
|
||||
CONTROL "Add...",IDC_ADD_EGG,"CustButton",WS_TABSTOP,6,102,24,12
|
||||
CONTROL "Edit...",IDC_EDIT_EGG,"CustButton",WS_TABSTOP,36,102,30,
|
||||
12
|
||||
CONTROL "Remove",IDC_REMOVE_EGG,"CustButton",WS_TABSTOP,72,102,
|
||||
30,12
|
||||
CONTROL "Overwrite Existing Files",IDC_OVERWRITE_CHECK,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,6,126,103,8,
|
||||
WS_EX_TRANSPARENT
|
||||
CONTROL "Export Now",IDC_EXPORT,"CustButton",WS_TABSTOP,5,164,96,
|
||||
18
|
||||
CONTROL "Pview Output",IDC_PVIEW_CHECK,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,6,138,103,8,WS_EX_TRANSPARENT
|
||||
CONTROL "Log Output",IDC_LOGGING,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,6,148,90,11
|
||||
END
|
||||
|
||||
IDD_EGG_DETAILS DIALOGEX 0, 0, 256, 169
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CAPTION "Export Settings"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
LTEXT "Export Type:",IDC_STATIC,6,5,54,8
|
||||
CONTROL "Model",IDC_MODEL,"Button",BS_AUTORADIOBUTTON,54,4,38,12
|
||||
CONTROL "Animation",IDC_ANIMATION,"Button",BS_AUTORADIOBUTTON,96,
|
||||
4,50,12
|
||||
CONTROL "Both",IDC_BOTH,"Button",BS_AUTORADIOBUTTON,150,4,35,12
|
||||
CONTROL "Pose",IDC_POSE,"Button",BS_AUTORADIOBUTTON,186,4,36,12
|
||||
GROUPBOX "Options",IDC_STATIC,6,18,246,126,WS_GROUP
|
||||
LTEXT "Filename",IDC_STATIC,12,30,66,8
|
||||
CONTROL "Custom1",IDC_FILENAME,"CustEdit",WS_TABSTOP,12,42,180,
|
||||
12
|
||||
CONTROL "Browse...",IDC_BROWSE,"CustButton",WS_TABSTOP,198,42,48,
|
||||
12
|
||||
CONTROL "Export Entire Scene",IDC_EXPORT_ALL,"Button",
|
||||
BS_AUTORADIOBUTTON | WS_GROUP,12,60,114,8
|
||||
CONTROL "Export Meshes:",IDC_EXPORT_SELECTED,"Button",
|
||||
BS_AUTORADIOBUTTON,12,71,114,8
|
||||
LISTBOX IDC_LIST_EXPORT,12,84,114,36,LBS_SORT |
|
||||
LBS_NOINTEGRALHEIGHT | LBS_NOSEL | WS_VSCROLL |
|
||||
WS_TABSTOP
|
||||
CONTROL "Add...",IDC_ADD_EXPORT,"CustButton",WS_TABSTOP,12,126,
|
||||
54,12
|
||||
CONTROL "Remove...",IDC_REMOVE_EXPORT,"CustButton",WS_TABSTOP,72,
|
||||
126,54,12
|
||||
CONTROL "Export All Frames",IDC_EXP_ALL_FRAMES,"Button",
|
||||
BS_AUTORADIOBUTTON | WS_GROUP,144,60,96,8
|
||||
CONTROL "Use Range:",IDC_EXP_SEL_FRAMES,"Button",
|
||||
BS_AUTORADIOBUTTON | BS_VCENTER,144,70,102,11
|
||||
LTEXT "Start Frame",IDC_SF_LABEL,144,86,42,8,WS_DISABLED
|
||||
CONTROL "Custom4",IDC_SF,"CustEdit",WS_DISABLED | WS_TABSTOP,186,
|
||||
84,48,12
|
||||
LTEXT "End Frame",IDC_EF_LABEL,144,103,42,8,WS_DISABLED
|
||||
CONTROL "Custom5",IDC_EF,"CustEdit",WS_DISABLED | WS_TABSTOP,186,
|
||||
101,48,12
|
||||
CONTROL "Double-sided Polygons",IDC_CHECK1,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,144,126,102,12
|
||||
CONTROL "OK",IDC_OK,"CustButton",WS_TABSTOP,162,150,42,12
|
||||
CONTROL "Cancel",IDC_CANCEL,"CustButton",WS_TABSTOP,210,150,42,
|
||||
12
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_PANEL, DIALOG
|
||||
BEGIN
|
||||
BOTTOMMARGIN, 182
|
||||
END
|
||||
|
||||
IDD_EGG_DETAILS, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 249
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 162
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 3,0,0,0
|
||||
PRODUCTVERSION 3,0,0,0
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "FileVersion", "4.0.0.0"
|
||||
VALUE "InternalName", "MaxEgg"
|
||||
VALUE "OriginalFilename", "MaxEgg.dle"
|
||||
VALUE "ProductName", "3ds max"
|
||||
VALUE "ProductVersion", "4.0.0.0"
|
||||
VALUE "FileDescription", "Panda3D .egg exporter"
|
||||
VALUE "Comments", "TECH: "
|
||||
VALUE "LegalTrademarks", "3D Studio MAX, Biped, Character Studio, Heidi, Kinetix and Physique are registered trademarks and 3ds max, combustion, Discreet, DWG Unplugged, DXF, FLI and FLC are trademarks of Autodesk, Inc."
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_LIBDESCRIPTION "Panda3D .egg exporter"
|
||||
IDS_CATEGORY "Exporters"
|
||||
IDS_CLASS_NAME "Panda3D"
|
||||
IDS_PARAMS "Parameters"
|
||||
IDS_SPIN "Spin"
|
||||
END
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
|
||||
@@ -173,17 +173,17 @@ int AddNodeCB::filter(INode *node) {
|
||||
|
||||
Object *obj = node->EvalWorldState(0).obj;
|
||||
Control *c = node->GetTMController();
|
||||
NURBSSet getSet;
|
||||
NURBSSet getSet;
|
||||
bool is_bone = (node->GetBoneNodeOnOff() || //True for bones
|
||||
(c && //True for bipeds
|
||||
((c->ClassID() == BIPSLAVE_CONTROL_CLASS_ID) ||
|
||||
(c->ClassID() == BIPBODY_CONTROL_CLASS_ID) ||
|
||||
((c->ClassID() == BIPSLAVE_CONTROL_CLASS_ID) ||
|
||||
(c->ClassID() == BIPBODY_CONTROL_CLASS_ID) ||
|
||||
(c->ClassID() == FOOTPRINT_CLASS_ID))));
|
||||
|
||||
|
||||
if (IsDlgButtonChecked(hWnd, IDC_ANIMATION) == BST_CHECKED)
|
||||
return is_bone && !ph->FindNode(node->GetHandle());
|
||||
else
|
||||
|
||||
|
||||
if (IsDlgButtonChecked(hWnd, IDC_ANIMATION) == BST_CHECKED)
|
||||
return is_bone && !ph->FindNode(node->GetHandle());
|
||||
else
|
||||
return (
|
||||
!is_bone &&
|
||||
((obj->SuperClassID() == GEOMOBJECT_CLASS_ID && //Allow geometrics
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,28 +1,28 @@
|
||||
// Filename: maxEggLoader.h
|
||||
// Created by: jyelon (15jul05)
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// PANDA 3D SOFTWARE
|
||||
// Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved
|
||||
//
|
||||
// All use of this software is subject to the terms of the Panda 3d
|
||||
// Software license. You should have received a copy of this license
|
||||
// along with this source code; you will also find a current copy of
|
||||
// the license at http://etc.cmu.edu/panda3d/docs/license/ .
|
||||
//
|
||||
// To contact the maintainers of this program write to
|
||||
// panda3d-general@lists.sourceforge.net .
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef MAXEGGLOADER_H
|
||||
#define MAXEGGLOADER_H
|
||||
|
||||
class EggData;
|
||||
|
||||
bool MaxLoadEggData(EggData *data, bool merge, bool model, bool anim);
|
||||
bool MaxLoadEggFile(const char *name, bool merge, bool model, bool anim);
|
||||
|
||||
#endif
|
||||
|
||||
// Filename: maxEggLoader.h
|
||||
// Created by: jyelon (15jul05)
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// PANDA 3D SOFTWARE
|
||||
// Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved
|
||||
//
|
||||
// All use of this software is subject to the terms of the Panda 3d
|
||||
// Software license. You should have received a copy of this license
|
||||
// along with this source code; you will also find a current copy of
|
||||
// the license at http://etc.cmu.edu/panda3d/docs/license/ .
|
||||
//
|
||||
// To contact the maintainers of this program write to
|
||||
// panda3d-general@lists.sourceforge.net .
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef MAXEGGLOADER_H
|
||||
#define MAXEGGLOADER_H
|
||||
|
||||
class EggData;
|
||||
|
||||
bool MaxLoadEggData(EggData *data, bool merge, bool model, bool anim);
|
||||
bool MaxLoadEggFile(const char *name, bool merge, bool model, bool anim);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -72,12 +72,12 @@ from_INode(INode *max_node) {
|
||||
|
||||
//Check to see if the node's controller is a biped
|
||||
//If so treat it as a joint
|
||||
// Get the node's transform control
|
||||
Control *c = max_node->GetTMController();
|
||||
// Get the node's transform control
|
||||
Control *c = max_node->GetTMController();
|
||||
if (_max_node->GetBoneNodeOnOff() ||
|
||||
(c && //c exists and it's type is a biped
|
||||
((c->ClassID() == BIPSLAVE_CONTROL_CLASS_ID) ||
|
||||
(c->ClassID() == BIPBODY_CONTROL_CLASS_ID) ||
|
||||
((c->ClassID() == BIPSLAVE_CONTROL_CLASS_ID) ||
|
||||
(c->ClassID() == BIPBODY_CONTROL_CLASS_ID) ||
|
||||
(c->ClassID() == FOOTPRINT_CLASS_ID)))) {
|
||||
Logger::Log( MTEC, Logger::SAT_MEDIUM_LEVEL, "Found a joint." );
|
||||
|
||||
|
||||
@@ -90,11 +90,11 @@ bool MaxNodeTree::node_in_list(ULONG handle, ULONG *list, int len) {
|
||||
}
|
||||
|
||||
bool MaxNodeTree::is_joint(INode *node) {
|
||||
Control *c = node->GetTMController();
|
||||
Control *c = node->GetTMController();
|
||||
return (node->GetBoneNodeOnOff() || //joints
|
||||
(c && //bipeds
|
||||
((c->ClassID() == BIPSLAVE_CONTROL_CLASS_ID) ||
|
||||
(c->ClassID() == BIPBODY_CONTROL_CLASS_ID) ||
|
||||
((c->ClassID() == BIPSLAVE_CONTROL_CLASS_ID) ||
|
||||
(c->ClassID() == BIPBODY_CONTROL_CLASS_ID) ||
|
||||
(c->ClassID() == FOOTPRINT_CLASS_ID))));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,53 +1,53 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by MaxEgg.rc
|
||||
//
|
||||
#define IDS_LIBDESCRIPTION 1
|
||||
#define IDS_CATEGORY 2
|
||||
#define IDS_CLASS_NAME 3
|
||||
#define IDS_PARAMS 4
|
||||
#define IDS_SPIN 5
|
||||
#define IDD_PANEL 101
|
||||
#define IDD_EGG_DETAILS 102
|
||||
#define IDC_EGGS_LABEL 1019
|
||||
#define IDC_ADD_EGG 1021
|
||||
#define IDC_EDIT_EGG 1022
|
||||
#define IDC_REMOVE_EGG 1023
|
||||
#define IDC_LIST_EGGS 1024
|
||||
#define IDC_OVERWRITE_CHECK 1027
|
||||
#define IDC_EXPORT 1028
|
||||
#define IDC_PANEL_TITLE 1029
|
||||
#define IDC_OVERWRITE_CHECK2 1030
|
||||
#define IDC_PVIEW_CHECK 1030
|
||||
#define IDC_MODEL 1033
|
||||
#define IDC_ANIMATION 1034
|
||||
#define IDC_BOTH 1035
|
||||
#define IDC_POSE 1036
|
||||
#define IDC_FILENAME 1038
|
||||
#define IDC_BROWSE 1039
|
||||
#define IDC_EXPORT_ALL 1040
|
||||
#define IDC_EXPORT_SELECTED 1041
|
||||
#define IDC_ADD_EXPORT 1043
|
||||
#define IDC_LIST_EXPORT 1044
|
||||
#define IDC_REMOVE_EXPORT 1046
|
||||
#define IDC_EXP_ALL_FRAMES 1049
|
||||
#define IDC_EXP_SEL_FRAMES 1050
|
||||
#define IDC_SF 1051
|
||||
#define IDC_SF_LABEL 1052
|
||||
#define IDC_EF 1053
|
||||
#define IDC_CHECK1 1054
|
||||
#define IDC_EF_LABEL 1057
|
||||
#define IDC_OK 1058
|
||||
#define IDC_CANCEL 1059
|
||||
#define IDC_LOGGING 1060
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 103
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1061
|
||||
#define _APS_NEXT_SYMED_VALUE 102
|
||||
#endif
|
||||
#endif
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by MaxEgg.rc
|
||||
//
|
||||
#define IDS_LIBDESCRIPTION 1
|
||||
#define IDS_CATEGORY 2
|
||||
#define IDS_CLASS_NAME 3
|
||||
#define IDS_PARAMS 4
|
||||
#define IDS_SPIN 5
|
||||
#define IDD_PANEL 101
|
||||
#define IDD_EGG_DETAILS 102
|
||||
#define IDC_EGGS_LABEL 1019
|
||||
#define IDC_ADD_EGG 1021
|
||||
#define IDC_EDIT_EGG 1022
|
||||
#define IDC_REMOVE_EGG 1023
|
||||
#define IDC_LIST_EGGS 1024
|
||||
#define IDC_OVERWRITE_CHECK 1027
|
||||
#define IDC_EXPORT 1028
|
||||
#define IDC_PANEL_TITLE 1029
|
||||
#define IDC_OVERWRITE_CHECK2 1030
|
||||
#define IDC_PVIEW_CHECK 1030
|
||||
#define IDC_MODEL 1033
|
||||
#define IDC_ANIMATION 1034
|
||||
#define IDC_BOTH 1035
|
||||
#define IDC_POSE 1036
|
||||
#define IDC_FILENAME 1038
|
||||
#define IDC_BROWSE 1039
|
||||
#define IDC_EXPORT_ALL 1040
|
||||
#define IDC_EXPORT_SELECTED 1041
|
||||
#define IDC_ADD_EXPORT 1043
|
||||
#define IDC_LIST_EXPORT 1044
|
||||
#define IDC_REMOVE_EXPORT 1046
|
||||
#define IDC_EXP_ALL_FRAMES 1049
|
||||
#define IDC_EXP_SEL_FRAMES 1050
|
||||
#define IDC_SF 1051
|
||||
#define IDC_SF_LABEL 1052
|
||||
#define IDC_EF 1053
|
||||
#define IDC_CHECK1 1054
|
||||
#define IDC_EF_LABEL 1057
|
||||
#define IDC_OK 1058
|
||||
#define IDC_CANCEL 1059
|
||||
#define IDC_LOGGING 1060
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 103
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1061
|
||||
#define _APS_NEXT_SYMED_VALUE 102
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#include "maxDllEntry.cxx"
|
||||
#include "maxLogger.cxx"
|
||||
#include "maxEgg.cxx"
|
||||
#include "maxEggExpOptions.cxx"
|
||||
#include "maxNodeDesc.cxx"
|
||||
#include "maxNodeTree.cxx"
|
||||
#include "maxToEgg.cxx"
|
||||
#include "maxToEggConverter.cxx"
|
||||
#include "maxDllEntry.cxx"
|
||||
#include "maxLogger.cxx"
|
||||
#include "maxEgg.cxx"
|
||||
#include "maxEggExpOptions.cxx"
|
||||
#include "maxNodeDesc.cxx"
|
||||
#include "maxNodeTree.cxx"
|
||||
#include "maxToEgg.cxx"
|
||||
#include "maxToEggConverter.cxx"
|
||||
|
||||
@@ -1,269 +1,269 @@
|
||||
// Filename: maxEggImport.cxx
|
||||
// Created by: jyelon (15Jul05)
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// PANDA 3D SOFTWARE
|
||||
// Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved
|
||||
//
|
||||
// All use of this software is subject to the terms of the Panda 3d
|
||||
// Software license. You should have received a copy of this license
|
||||
// along with this source code; you will also find a current copy of
|
||||
// the license at http://etc.cmu.edu/panda3d/docs/license/ .
|
||||
//
|
||||
// To contact the maintainers of this program write to
|
||||
// panda3d-general@lists.sourceforge.net .
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// This is the wrapper code for the max importer plugin.
|
||||
// It includes:
|
||||
//
|
||||
// - user interface dialogs and popups
|
||||
// - plugin initialization/registration
|
||||
//
|
||||
// It does not include the actual code to traverse the EggData.
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
// MAX includes
|
||||
#include "maxEggLoader.h"
|
||||
#include "Max.h"
|
||||
#include "maxImportRes.h"
|
||||
#include "istdplug.h"
|
||||
|
||||
// panda includes.
|
||||
#include "notifyCategoryProxy.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
class MaxEggImporter : public SceneImport
|
||||
{
|
||||
public:
|
||||
// GUI-related methods
|
||||
MaxEggImporter();
|
||||
~MaxEggImporter();
|
||||
int ExtCount(); // Number of extensions supported
|
||||
const TCHAR * Ext(int n); // Extension #n (i.e. "EGG")
|
||||
const TCHAR * LongDesc(); // Long ASCII description (i.e. "Egg Importer")
|
||||
const TCHAR * ShortDesc(); // Short ASCII description (i.e. "Egg")
|
||||
const TCHAR * AuthorName(); // ASCII Author name
|
||||
const TCHAR * CopyrightMessage();// ASCII Copyright message
|
||||
const TCHAR * OtherMessage1(); // Other message #1
|
||||
const TCHAR * OtherMessage2(); // Other message #2
|
||||
unsigned int Version(); // Version number * 100 (i.e. v3.01 = 301)
|
||||
void ShowAbout(HWND hWnd); // Show DLL's "About..." box
|
||||
int DoImport(const TCHAR *name,ImpInterface *ei,Interface *i, BOOL suppressPrompts);
|
||||
|
||||
public:
|
||||
// GUI-related fields
|
||||
static BOOL _merge;
|
||||
static BOOL _importmodel;
|
||||
static BOOL _importanim;
|
||||
};
|
||||
|
||||
BOOL MaxEggImporter::_merge = TRUE;
|
||||
BOOL MaxEggImporter::_importmodel = TRUE;
|
||||
BOOL MaxEggImporter::_importanim = FALSE;
|
||||
|
||||
MaxEggImporter::MaxEggImporter()
|
||||
{
|
||||
}
|
||||
|
||||
MaxEggImporter::~MaxEggImporter()
|
||||
{
|
||||
}
|
||||
|
||||
int MaxEggImporter::ExtCount()
|
||||
{
|
||||
// Number of different extensions handled by this importer.
|
||||
return 1;
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::Ext(int n)
|
||||
{
|
||||
// Fetch the extensions handled by this importer.
|
||||
switch(n) {
|
||||
case 0: return _T("egg");
|
||||
default: return _T("");
|
||||
}
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::LongDesc()
|
||||
{
|
||||
return _T("Panda3D Egg Importer");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::ShortDesc()
|
||||
{
|
||||
return _T("Panda3D Egg");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::AuthorName()
|
||||
{
|
||||
return _T("Joshua Yelon");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::CopyrightMessage()
|
||||
{
|
||||
return _T("Copyight (c) 2005 Josh Yelon");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::OtherMessage1()
|
||||
{
|
||||
return _T("");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::OtherMessage2()
|
||||
{
|
||||
return _T("");
|
||||
}
|
||||
|
||||
unsigned int MaxEggImporter::Version()
|
||||
{
|
||||
return 100;
|
||||
}
|
||||
|
||||
static BOOL CALLBACK AboutBoxDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (msg) {
|
||||
case WM_INITDIALOG:
|
||||
CenterWindow(hWnd, GetParent(hWnd));
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam)) {
|
||||
case IDOK:
|
||||
EndDialog(hWnd, 1);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void MaxEggImporter::ShowAbout(HWND hWnd)
|
||||
{
|
||||
DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_ABOUTBOX),
|
||||
hWnd, AboutBoxDlgProc, 0);
|
||||
}
|
||||
|
||||
|
||||
static BOOL CALLBACK ImportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
MaxEggImporter *imp = (MaxEggImporter*)GetWindowLong(hWnd,GWL_USERDATA);
|
||||
switch (msg) {
|
||||
case WM_INITDIALOG:
|
||||
imp = (MaxEggImporter*)lParam;
|
||||
SetWindowLong(hWnd,GWL_USERDATA,lParam);
|
||||
CenterWindow(hWnd, GetParent(hWnd));
|
||||
CheckDlgButton(hWnd, IDC_MERGE, imp->_merge);
|
||||
CheckDlgButton(hWnd, IDC_IMPORTMODEL, imp->_importmodel);
|
||||
CheckDlgButton(hWnd, IDC_IMPORTANIM, imp->_importanim);
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam)) {
|
||||
case IDOK:
|
||||
imp->_merge = IsDlgButtonChecked(hWnd, IDC_MERGE);
|
||||
imp->_importmodel = IsDlgButtonChecked(hWnd, IDC_IMPORTMODEL);
|
||||
imp->_importanim = IsDlgButtonChecked(hWnd, IDC_IMPORTANIM);
|
||||
EndDialog(hWnd, 1);
|
||||
break;
|
||||
case IDCANCEL:
|
||||
EndDialog(hWnd, 0);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int MaxEggImporter::DoImport(const TCHAR *name,ImpInterface *ii,Interface *i, BOOL suppressPrompts)
|
||||
{
|
||||
// Prompt the user with our dialogbox.
|
||||
if (!DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_IMPORT_DLG),
|
||||
i->GetMAXHWnd(), ImportDlgProc, (LPARAM)this)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
std::ostringstream log;
|
||||
Notify::ptr()->set_ostream_ptr(&log, false);
|
||||
bool ok = MaxLoadEggFile(name, _merge ? true:false, _importmodel ? true:false, _importanim ? true:false);
|
||||
string txt = log.str();
|
||||
if (txt != "") MessageBox(NULL, txt.c_str(), "Panda3D Importer", MB_OK);
|
||||
else {
|
||||
if (!ok) MessageBox(NULL, "Import Failed, unknown reason\n", "Panda3D Importer", MB_OK);
|
||||
}
|
||||
Notify::ptr()->set_ostream_ptr(NULL, false);
|
||||
return 1;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Plugin Initialization
|
||||
//
|
||||
// The following code enables Max to load this DLL, get a list
|
||||
// of the classes defined in this DLL, and provides a means for
|
||||
// Max to create instances of those classes.
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
HINSTANCE hInstance;
|
||||
|
||||
BOOL WINAPI DllMain(HINSTANCE hinstDLL,ULONG fdwReason,LPVOID lpvReserved)
|
||||
{
|
||||
static int controlsInit = FALSE;
|
||||
hInstance = hinstDLL;
|
||||
|
||||
if (!controlsInit) {
|
||||
controlsInit = TRUE;
|
||||
InitCustomControls(hInstance);
|
||||
InitCommonControls();
|
||||
}
|
||||
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
#define PANDAEGGIMP_CLASS_ID1 0x377193ab
|
||||
#define PANDAEGGIMP_CLASS_ID2 0x897afe12
|
||||
|
||||
class MaxEggImporterClassDesc: public ClassDesc
|
||||
{
|
||||
public:
|
||||
int IsPublic() {return 1;}
|
||||
void *Create(BOOL loading = FALSE) {return new MaxEggImporter;}
|
||||
const TCHAR *ClassName() {return _T("MaxEggImporter");}
|
||||
SClass_ID SuperClassID() {return SCENE_IMPORT_CLASS_ID;}
|
||||
Class_ID ClassID() {return Class_ID(PANDAEGGIMP_CLASS_ID1,PANDAEGGIMP_CLASS_ID2);}
|
||||
const TCHAR *Category() {return _T("Chrutilities");}
|
||||
};
|
||||
|
||||
static MaxEggImporterClassDesc MaxEggImporterDesc;
|
||||
|
||||
__declspec( dllexport ) const TCHAR* LibDescription()
|
||||
{
|
||||
return _T("Panda3D Egg Importer");
|
||||
}
|
||||
|
||||
__declspec( dllexport ) int LibNumberClasses()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
__declspec( dllexport ) ClassDesc* LibClassDesc(int i)
|
||||
{
|
||||
switch(i) {
|
||||
case 0: return &MaxEggImporterDesc;
|
||||
default: return 0;
|
||||
}
|
||||
}
|
||||
|
||||
__declspec( dllexport ) ULONG LibVersion()
|
||||
{
|
||||
return VERSION_3DSMAX;
|
||||
}
|
||||
|
||||
// Filename: maxEggImport.cxx
|
||||
// Created by: jyelon (15Jul05)
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// PANDA 3D SOFTWARE
|
||||
// Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved
|
||||
//
|
||||
// All use of this software is subject to the terms of the Panda 3d
|
||||
// Software license. You should have received a copy of this license
|
||||
// along with this source code; you will also find a current copy of
|
||||
// the license at http://etc.cmu.edu/panda3d/docs/license/ .
|
||||
//
|
||||
// To contact the maintainers of this program write to
|
||||
// panda3d-general@lists.sourceforge.net .
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// This is the wrapper code for the max importer plugin.
|
||||
// It includes:
|
||||
//
|
||||
// - user interface dialogs and popups
|
||||
// - plugin initialization/registration
|
||||
//
|
||||
// It does not include the actual code to traverse the EggData.
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
// MAX includes
|
||||
#include "maxEggLoader.h"
|
||||
#include "Max.h"
|
||||
#include "maxImportRes.h"
|
||||
#include "istdplug.h"
|
||||
|
||||
// panda includes.
|
||||
#include "notifyCategoryProxy.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
class MaxEggImporter : public SceneImport
|
||||
{
|
||||
public:
|
||||
// GUI-related methods
|
||||
MaxEggImporter();
|
||||
~MaxEggImporter();
|
||||
int ExtCount(); // Number of extensions supported
|
||||
const TCHAR * Ext(int n); // Extension #n (i.e. "EGG")
|
||||
const TCHAR * LongDesc(); // Long ASCII description (i.e. "Egg Importer")
|
||||
const TCHAR * ShortDesc(); // Short ASCII description (i.e. "Egg")
|
||||
const TCHAR * AuthorName(); // ASCII Author name
|
||||
const TCHAR * CopyrightMessage();// ASCII Copyright message
|
||||
const TCHAR * OtherMessage1(); // Other message #1
|
||||
const TCHAR * OtherMessage2(); // Other message #2
|
||||
unsigned int Version(); // Version number * 100 (i.e. v3.01 = 301)
|
||||
void ShowAbout(HWND hWnd); // Show DLL's "About..." box
|
||||
int DoImport(const TCHAR *name,ImpInterface *ei,Interface *i, BOOL suppressPrompts);
|
||||
|
||||
public:
|
||||
// GUI-related fields
|
||||
static BOOL _merge;
|
||||
static BOOL _importmodel;
|
||||
static BOOL _importanim;
|
||||
};
|
||||
|
||||
BOOL MaxEggImporter::_merge = TRUE;
|
||||
BOOL MaxEggImporter::_importmodel = TRUE;
|
||||
BOOL MaxEggImporter::_importanim = FALSE;
|
||||
|
||||
MaxEggImporter::MaxEggImporter()
|
||||
{
|
||||
}
|
||||
|
||||
MaxEggImporter::~MaxEggImporter()
|
||||
{
|
||||
}
|
||||
|
||||
int MaxEggImporter::ExtCount()
|
||||
{
|
||||
// Number of different extensions handled by this importer.
|
||||
return 1;
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::Ext(int n)
|
||||
{
|
||||
// Fetch the extensions handled by this importer.
|
||||
switch(n) {
|
||||
case 0: return _T("egg");
|
||||
default: return _T("");
|
||||
}
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::LongDesc()
|
||||
{
|
||||
return _T("Panda3D Egg Importer");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::ShortDesc()
|
||||
{
|
||||
return _T("Panda3D Egg");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::AuthorName()
|
||||
{
|
||||
return _T("Joshua Yelon");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::CopyrightMessage()
|
||||
{
|
||||
return _T("Copyight (c) 2005 Josh Yelon");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::OtherMessage1()
|
||||
{
|
||||
return _T("");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::OtherMessage2()
|
||||
{
|
||||
return _T("");
|
||||
}
|
||||
|
||||
unsigned int MaxEggImporter::Version()
|
||||
{
|
||||
return 100;
|
||||
}
|
||||
|
||||
static BOOL CALLBACK AboutBoxDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (msg) {
|
||||
case WM_INITDIALOG:
|
||||
CenterWindow(hWnd, GetParent(hWnd));
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam)) {
|
||||
case IDOK:
|
||||
EndDialog(hWnd, 1);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void MaxEggImporter::ShowAbout(HWND hWnd)
|
||||
{
|
||||
DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_ABOUTBOX),
|
||||
hWnd, AboutBoxDlgProc, 0);
|
||||
}
|
||||
|
||||
|
||||
static BOOL CALLBACK ImportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
MaxEggImporter *imp = (MaxEggImporter*)GetWindowLong(hWnd,GWL_USERDATA);
|
||||
switch (msg) {
|
||||
case WM_INITDIALOG:
|
||||
imp = (MaxEggImporter*)lParam;
|
||||
SetWindowLong(hWnd,GWL_USERDATA,lParam);
|
||||
CenterWindow(hWnd, GetParent(hWnd));
|
||||
CheckDlgButton(hWnd, IDC_MERGE, imp->_merge);
|
||||
CheckDlgButton(hWnd, IDC_IMPORTMODEL, imp->_importmodel);
|
||||
CheckDlgButton(hWnd, IDC_IMPORTANIM, imp->_importanim);
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam)) {
|
||||
case IDOK:
|
||||
imp->_merge = IsDlgButtonChecked(hWnd, IDC_MERGE);
|
||||
imp->_importmodel = IsDlgButtonChecked(hWnd, IDC_IMPORTMODEL);
|
||||
imp->_importanim = IsDlgButtonChecked(hWnd, IDC_IMPORTANIM);
|
||||
EndDialog(hWnd, 1);
|
||||
break;
|
||||
case IDCANCEL:
|
||||
EndDialog(hWnd, 0);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int MaxEggImporter::DoImport(const TCHAR *name,ImpInterface *ii,Interface *i, BOOL suppressPrompts)
|
||||
{
|
||||
// Prompt the user with our dialogbox.
|
||||
if (!DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_IMPORT_DLG),
|
||||
i->GetMAXHWnd(), ImportDlgProc, (LPARAM)this)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
std::ostringstream log;
|
||||
Notify::ptr()->set_ostream_ptr(&log, false);
|
||||
bool ok = MaxLoadEggFile(name, _merge ? true:false, _importmodel ? true:false, _importanim ? true:false);
|
||||
string txt = log.str();
|
||||
if (txt != "") MessageBox(NULL, txt.c_str(), "Panda3D Importer", MB_OK);
|
||||
else {
|
||||
if (!ok) MessageBox(NULL, "Import Failed, unknown reason\n", "Panda3D Importer", MB_OK);
|
||||
}
|
||||
Notify::ptr()->set_ostream_ptr(NULL, false);
|
||||
return 1;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Plugin Initialization
|
||||
//
|
||||
// The following code enables Max to load this DLL, get a list
|
||||
// of the classes defined in this DLL, and provides a means for
|
||||
// Max to create instances of those classes.
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
HINSTANCE hInstance;
|
||||
|
||||
BOOL WINAPI DllMain(HINSTANCE hinstDLL,ULONG fdwReason,LPVOID lpvReserved)
|
||||
{
|
||||
static int controlsInit = FALSE;
|
||||
hInstance = hinstDLL;
|
||||
|
||||
if (!controlsInit) {
|
||||
controlsInit = TRUE;
|
||||
InitCustomControls(hInstance);
|
||||
InitCommonControls();
|
||||
}
|
||||
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
#define PANDAEGGIMP_CLASS_ID1 0x377193ab
|
||||
#define PANDAEGGIMP_CLASS_ID2 0x897afe12
|
||||
|
||||
class MaxEggImporterClassDesc: public ClassDesc
|
||||
{
|
||||
public:
|
||||
int IsPublic() {return 1;}
|
||||
void *Create(BOOL loading = FALSE) {return new MaxEggImporter;}
|
||||
const TCHAR *ClassName() {return _T("MaxEggImporter");}
|
||||
SClass_ID SuperClassID() {return SCENE_IMPORT_CLASS_ID;}
|
||||
Class_ID ClassID() {return Class_ID(PANDAEGGIMP_CLASS_ID1,PANDAEGGIMP_CLASS_ID2);}
|
||||
const TCHAR *Category() {return _T("Chrutilities");}
|
||||
};
|
||||
|
||||
static MaxEggImporterClassDesc MaxEggImporterDesc;
|
||||
|
||||
__declspec( dllexport ) const TCHAR* LibDescription()
|
||||
{
|
||||
return _T("Panda3D Egg Importer");
|
||||
}
|
||||
|
||||
__declspec( dllexport ) int LibNumberClasses()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
__declspec( dllexport ) ClassDesc* LibClassDesc(int i)
|
||||
{
|
||||
switch(i) {
|
||||
case 0: return &MaxEggImporterDesc;
|
||||
default: return 0;
|
||||
}
|
||||
}
|
||||
|
||||
__declspec( dllexport ) ULONG LibVersion()
|
||||
{
|
||||
return VERSION_3DSMAX;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
EXPORTS
|
||||
LibDescription @1
|
||||
LibNumberClasses @2
|
||||
LibClassDesc @3
|
||||
LibVersion @4
|
||||
SECTIONS
|
||||
.data READ WRITE
|
||||
EXPORTS
|
||||
LibDescription @1
|
||||
LibNumberClasses @2
|
||||
LibClassDesc @3
|
||||
LibVersion @4
|
||||
SECTIONS
|
||||
.data READ WRITE
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by maxImportRes.rc
|
||||
//
|
||||
#define IDD_PANEL 101
|
||||
#define IDD_ABOUTBOX 102
|
||||
#define IDD_IMPORT_DLG 103
|
||||
#define IDC_MERGE 1002
|
||||
#define IDC_IMPORTMODEL 1003
|
||||
#define IDC_IMPORTANIM 1004
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 105
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1020
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by maxImportRes.rc
|
||||
//
|
||||
#define IDD_PANEL 101
|
||||
#define IDD_ABOUTBOX 102
|
||||
#define IDD_IMPORT_DLG 103
|
||||
#define IDC_MERGE 1002
|
||||
#define IDC_IMPORTMODEL 1003
|
||||
#define IDC_IMPORTANIM 1004
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 105
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1020
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -1,122 +1,122 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "maxImportRes.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_ABOUTBOX, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 176
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 60
|
||||
END
|
||||
|
||||
IDD_IMPORT_DLG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 187
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 71
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"maxImportRes.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 0, 0, 183, 67
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "About Panda3D Egg Importer"
|
||||
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,66,45,50,14
|
||||
CTEXT "Panda3D Egg Importer\n\nCarnegie Mellon\nEntertainment Technology Center",
|
||||
IDC_STATIC,7,7,169,36
|
||||
END
|
||||
|
||||
IDD_IMPORT_DLG DIALOGEX 0, 0, 194, 78
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Panda3D Egg Import"
|
||||
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,137,10,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,137,30,50,14
|
||||
CONTROL "Merge with Current Scene",IDC_MERGE,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,15,20,106,10
|
||||
GROUPBOX "Input Options",IDC_STATIC,5,7,126,64
|
||||
CONTROL "Import Model",IDC_IMPORTMODEL,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,15,41,73,10
|
||||
CONTROL "Import Animation",IDC_IMPORTANIM,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,15,54,73,10
|
||||
END
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "maxImportRes.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_ABOUTBOX, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 176
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 60
|
||||
END
|
||||
|
||||
IDD_IMPORT_DLG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 187
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 71
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"maxImportRes.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 0, 0, 183, 67
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "About Panda3D Egg Importer"
|
||||
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,66,45,50,14
|
||||
CTEXT "Panda3D Egg Importer\n\nCarnegie Mellon\nEntertainment Technology Center",
|
||||
IDC_STATIC,7,7,169,36
|
||||
END
|
||||
|
||||
IDD_IMPORT_DLG DIALOGEX 0, 0, 194, 78
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Panda3D Egg Import"
|
||||
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,137,10,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,137,30,50,14
|
||||
CONTROL "Merge with Current Scene",IDC_MERGE,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,15,20,106,10
|
||||
GROUPBOX "Input Options",IDC_STATIC,5,7,126,64
|
||||
CONTROL "Import Model",IDC_IMPORTMODEL,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,15,41,73,10
|
||||
CONTROL "Import Animation",IDC_IMPORTANIM,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,15,54,73,10
|
||||
END
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
|
||||
@@ -1,269 +1,269 @@
|
||||
// Filename: maxEggImport.cxx
|
||||
// Created by: jyelon (15Jul05)
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// PANDA 3D SOFTWARE
|
||||
// Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved
|
||||
//
|
||||
// All use of this software is subject to the terms of the Panda 3d
|
||||
// Software license. You should have received a copy of this license
|
||||
// along with this source code; you will also find a current copy of
|
||||
// the license at http://etc.cmu.edu/panda3d/docs/license/ .
|
||||
//
|
||||
// To contact the maintainers of this program write to
|
||||
// panda3d-general@lists.sourceforge.net .
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// This is the wrapper code for the max importer plugin.
|
||||
// It includes:
|
||||
//
|
||||
// - user interface dialogs and popups
|
||||
// - plugin initialization/registration
|
||||
//
|
||||
// It does not include the actual code to traverse the EggData.
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
// MAX includes
|
||||
#include "maxEggLoader.h"
|
||||
#include "Max.h"
|
||||
#include "maxImportRes.h"
|
||||
#include "istdplug.h"
|
||||
|
||||
// panda includes.
|
||||
#include "notifyCategoryProxy.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
class MaxEggImporter : public SceneImport
|
||||
{
|
||||
public:
|
||||
// GUI-related methods
|
||||
MaxEggImporter();
|
||||
~MaxEggImporter();
|
||||
int ExtCount(); // Number of extensions supported
|
||||
const TCHAR * Ext(int n); // Extension #n (i.e. "EGG")
|
||||
const TCHAR * LongDesc(); // Long ASCII description (i.e. "Egg Importer")
|
||||
const TCHAR * ShortDesc(); // Short ASCII description (i.e. "Egg")
|
||||
const TCHAR * AuthorName(); // ASCII Author name
|
||||
const TCHAR * CopyrightMessage();// ASCII Copyright message
|
||||
const TCHAR * OtherMessage1(); // Other message #1
|
||||
const TCHAR * OtherMessage2(); // Other message #2
|
||||
unsigned int Version(); // Version number * 100 (i.e. v3.01 = 301)
|
||||
void ShowAbout(HWND hWnd); // Show DLL's "About..." box
|
||||
int DoImport(const TCHAR *name,ImpInterface *ei,Interface *i, BOOL suppressPrompts);
|
||||
|
||||
public:
|
||||
// GUI-related fields
|
||||
static BOOL _merge;
|
||||
static BOOL _importmodel;
|
||||
static BOOL _importanim;
|
||||
};
|
||||
|
||||
BOOL MaxEggImporter::_merge = TRUE;
|
||||
BOOL MaxEggImporter::_importmodel = TRUE;
|
||||
BOOL MaxEggImporter::_importanim = FALSE;
|
||||
|
||||
MaxEggImporter::MaxEggImporter()
|
||||
{
|
||||
}
|
||||
|
||||
MaxEggImporter::~MaxEggImporter()
|
||||
{
|
||||
}
|
||||
|
||||
int MaxEggImporter::ExtCount()
|
||||
{
|
||||
// Number of different extensions handled by this importer.
|
||||
return 1;
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::Ext(int n)
|
||||
{
|
||||
// Fetch the extensions handled by this importer.
|
||||
switch(n) {
|
||||
case 0: return _T("egg");
|
||||
default: return _T("");
|
||||
}
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::LongDesc()
|
||||
{
|
||||
return _T("Panda3D Egg Importer");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::ShortDesc()
|
||||
{
|
||||
return _T("Panda3D Egg");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::AuthorName()
|
||||
{
|
||||
return _T("Joshua Yelon");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::CopyrightMessage()
|
||||
{
|
||||
return _T("Copyight (c) 2005 Josh Yelon");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::OtherMessage1()
|
||||
{
|
||||
return _T("");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::OtherMessage2()
|
||||
{
|
||||
return _T("");
|
||||
}
|
||||
|
||||
unsigned int MaxEggImporter::Version()
|
||||
{
|
||||
return 100;
|
||||
}
|
||||
|
||||
static BOOL CALLBACK AboutBoxDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (msg) {
|
||||
case WM_INITDIALOG:
|
||||
CenterWindow(hWnd, GetParent(hWnd));
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam)) {
|
||||
case IDOK:
|
||||
EndDialog(hWnd, 1);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void MaxEggImporter::ShowAbout(HWND hWnd)
|
||||
{
|
||||
DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_ABOUTBOX),
|
||||
hWnd, AboutBoxDlgProc, 0);
|
||||
}
|
||||
|
||||
|
||||
static BOOL CALLBACK ImportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
MaxEggImporter *imp = (MaxEggImporter*)GetWindowLong(hWnd,GWL_USERDATA);
|
||||
switch (msg) {
|
||||
case WM_INITDIALOG:
|
||||
imp = (MaxEggImporter*)lParam;
|
||||
SetWindowLong(hWnd,GWL_USERDATA,lParam);
|
||||
CenterWindow(hWnd, GetParent(hWnd));
|
||||
CheckDlgButton(hWnd, IDC_MERGE, imp->_merge);
|
||||
CheckDlgButton(hWnd, IDC_IMPORTMODEL, imp->_importmodel);
|
||||
CheckDlgButton(hWnd, IDC_IMPORTANIM, imp->_importanim);
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam)) {
|
||||
case IDOK:
|
||||
imp->_merge = IsDlgButtonChecked(hWnd, IDC_MERGE);
|
||||
imp->_importmodel = IsDlgButtonChecked(hWnd, IDC_IMPORTMODEL);
|
||||
imp->_importanim = IsDlgButtonChecked(hWnd, IDC_IMPORTANIM);
|
||||
EndDialog(hWnd, 1);
|
||||
break;
|
||||
case IDCANCEL:
|
||||
EndDialog(hWnd, 0);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int MaxEggImporter::DoImport(const TCHAR *name,ImpInterface *ii,Interface *i, BOOL suppressPrompts)
|
||||
{
|
||||
// Prompt the user with our dialogbox.
|
||||
if (!DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_IMPORT_DLG),
|
||||
i->GetMAXHWnd(), ImportDlgProc, (LPARAM)this)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
std::ostringstream log;
|
||||
Notify::ptr()->set_ostream_ptr(&log, false);
|
||||
bool ok = MaxLoadEggFile(name, _merge ? true:false, _importmodel ? true:false, _importanim ? true:false);
|
||||
string txt = log.str();
|
||||
if (txt != "") MessageBox(NULL, txt.c_str(), "Panda3D Importer", MB_OK);
|
||||
else {
|
||||
if (!ok) MessageBox(NULL, "Import Failed, unknown reason\n", "Panda3D Importer", MB_OK);
|
||||
}
|
||||
Notify::ptr()->set_ostream_ptr(NULL, false);
|
||||
return 1;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Plugin Initialization
|
||||
//
|
||||
// The following code enables Max to load this DLL, get a list
|
||||
// of the classes defined in this DLL, and provides a means for
|
||||
// Max to create instances of those classes.
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
HINSTANCE hInstance;
|
||||
|
||||
BOOL WINAPI DllMain(HINSTANCE hinstDLL,ULONG fdwReason,LPVOID lpvReserved)
|
||||
{
|
||||
static int controlsInit = FALSE;
|
||||
hInstance = hinstDLL;
|
||||
|
||||
if (!controlsInit) {
|
||||
controlsInit = TRUE;
|
||||
InitCustomControls(hInstance);
|
||||
InitCommonControls();
|
||||
}
|
||||
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
#define PANDAEGGIMP_CLASS_ID1 0x377193ab
|
||||
#define PANDAEGGIMP_CLASS_ID2 0x897afe12
|
||||
|
||||
class MaxEggImporterClassDesc: public ClassDesc
|
||||
{
|
||||
public:
|
||||
int IsPublic() {return 1;}
|
||||
void *Create(BOOL loading = FALSE) {return new MaxEggImporter;}
|
||||
const TCHAR *ClassName() {return _T("MaxEggImporter");}
|
||||
SClass_ID SuperClassID() {return SCENE_IMPORT_CLASS_ID;}
|
||||
Class_ID ClassID() {return Class_ID(PANDAEGGIMP_CLASS_ID1,PANDAEGGIMP_CLASS_ID2);}
|
||||
const TCHAR *Category() {return _T("Chrutilities");}
|
||||
};
|
||||
|
||||
static MaxEggImporterClassDesc MaxEggImporterDesc;
|
||||
|
||||
__declspec( dllexport ) const TCHAR* LibDescription()
|
||||
{
|
||||
return _T("Panda3D Egg Importer");
|
||||
}
|
||||
|
||||
__declspec( dllexport ) int LibNumberClasses()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
__declspec( dllexport ) ClassDesc* LibClassDesc(int i)
|
||||
{
|
||||
switch(i) {
|
||||
case 0: return &MaxEggImporterDesc;
|
||||
default: return 0;
|
||||
}
|
||||
}
|
||||
|
||||
__declspec( dllexport ) ULONG LibVersion()
|
||||
{
|
||||
return VERSION_3DSMAX;
|
||||
}
|
||||
|
||||
// Filename: maxEggImport.cxx
|
||||
// Created by: jyelon (15Jul05)
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// PANDA 3D SOFTWARE
|
||||
// Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved
|
||||
//
|
||||
// All use of this software is subject to the terms of the Panda 3d
|
||||
// Software license. You should have received a copy of this license
|
||||
// along with this source code; you will also find a current copy of
|
||||
// the license at http://etc.cmu.edu/panda3d/docs/license/ .
|
||||
//
|
||||
// To contact the maintainers of this program write to
|
||||
// panda3d-general@lists.sourceforge.net .
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// This is the wrapper code for the max importer plugin.
|
||||
// It includes:
|
||||
//
|
||||
// - user interface dialogs and popups
|
||||
// - plugin initialization/registration
|
||||
//
|
||||
// It does not include the actual code to traverse the EggData.
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
// MAX includes
|
||||
#include "maxEggLoader.h"
|
||||
#include "Max.h"
|
||||
#include "maxImportRes.h"
|
||||
#include "istdplug.h"
|
||||
|
||||
// panda includes.
|
||||
#include "notifyCategoryProxy.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
class MaxEggImporter : public SceneImport
|
||||
{
|
||||
public:
|
||||
// GUI-related methods
|
||||
MaxEggImporter();
|
||||
~MaxEggImporter();
|
||||
int ExtCount(); // Number of extensions supported
|
||||
const TCHAR * Ext(int n); // Extension #n (i.e. "EGG")
|
||||
const TCHAR * LongDesc(); // Long ASCII description (i.e. "Egg Importer")
|
||||
const TCHAR * ShortDesc(); // Short ASCII description (i.e. "Egg")
|
||||
const TCHAR * AuthorName(); // ASCII Author name
|
||||
const TCHAR * CopyrightMessage();// ASCII Copyright message
|
||||
const TCHAR * OtherMessage1(); // Other message #1
|
||||
const TCHAR * OtherMessage2(); // Other message #2
|
||||
unsigned int Version(); // Version number * 100 (i.e. v3.01 = 301)
|
||||
void ShowAbout(HWND hWnd); // Show DLL's "About..." box
|
||||
int DoImport(const TCHAR *name,ImpInterface *ei,Interface *i, BOOL suppressPrompts);
|
||||
|
||||
public:
|
||||
// GUI-related fields
|
||||
static BOOL _merge;
|
||||
static BOOL _importmodel;
|
||||
static BOOL _importanim;
|
||||
};
|
||||
|
||||
BOOL MaxEggImporter::_merge = TRUE;
|
||||
BOOL MaxEggImporter::_importmodel = TRUE;
|
||||
BOOL MaxEggImporter::_importanim = FALSE;
|
||||
|
||||
MaxEggImporter::MaxEggImporter()
|
||||
{
|
||||
}
|
||||
|
||||
MaxEggImporter::~MaxEggImporter()
|
||||
{
|
||||
}
|
||||
|
||||
int MaxEggImporter::ExtCount()
|
||||
{
|
||||
// Number of different extensions handled by this importer.
|
||||
return 1;
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::Ext(int n)
|
||||
{
|
||||
// Fetch the extensions handled by this importer.
|
||||
switch(n) {
|
||||
case 0: return _T("egg");
|
||||
default: return _T("");
|
||||
}
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::LongDesc()
|
||||
{
|
||||
return _T("Panda3D Egg Importer");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::ShortDesc()
|
||||
{
|
||||
return _T("Panda3D Egg");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::AuthorName()
|
||||
{
|
||||
return _T("Joshua Yelon");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::CopyrightMessage()
|
||||
{
|
||||
return _T("Copyight (c) 2005 Josh Yelon");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::OtherMessage1()
|
||||
{
|
||||
return _T("");
|
||||
}
|
||||
|
||||
const TCHAR * MaxEggImporter::OtherMessage2()
|
||||
{
|
||||
return _T("");
|
||||
}
|
||||
|
||||
unsigned int MaxEggImporter::Version()
|
||||
{
|
||||
return 100;
|
||||
}
|
||||
|
||||
static BOOL CALLBACK AboutBoxDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (msg) {
|
||||
case WM_INITDIALOG:
|
||||
CenterWindow(hWnd, GetParent(hWnd));
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam)) {
|
||||
case IDOK:
|
||||
EndDialog(hWnd, 1);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void MaxEggImporter::ShowAbout(HWND hWnd)
|
||||
{
|
||||
DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_ABOUTBOX),
|
||||
hWnd, AboutBoxDlgProc, 0);
|
||||
}
|
||||
|
||||
|
||||
static BOOL CALLBACK ImportDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
MaxEggImporter *imp = (MaxEggImporter*)GetWindowLong(hWnd,GWL_USERDATA);
|
||||
switch (msg) {
|
||||
case WM_INITDIALOG:
|
||||
imp = (MaxEggImporter*)lParam;
|
||||
SetWindowLong(hWnd,GWL_USERDATA,lParam);
|
||||
CenterWindow(hWnd, GetParent(hWnd));
|
||||
CheckDlgButton(hWnd, IDC_MERGE, imp->_merge);
|
||||
CheckDlgButton(hWnd, IDC_IMPORTMODEL, imp->_importmodel);
|
||||
CheckDlgButton(hWnd, IDC_IMPORTANIM, imp->_importanim);
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam)) {
|
||||
case IDOK:
|
||||
imp->_merge = IsDlgButtonChecked(hWnd, IDC_MERGE);
|
||||
imp->_importmodel = IsDlgButtonChecked(hWnd, IDC_IMPORTMODEL);
|
||||
imp->_importanim = IsDlgButtonChecked(hWnd, IDC_IMPORTANIM);
|
||||
EndDialog(hWnd, 1);
|
||||
break;
|
||||
case IDCANCEL:
|
||||
EndDialog(hWnd, 0);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int MaxEggImporter::DoImport(const TCHAR *name,ImpInterface *ii,Interface *i, BOOL suppressPrompts)
|
||||
{
|
||||
// Prompt the user with our dialogbox.
|
||||
if (!DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_IMPORT_DLG),
|
||||
i->GetMAXHWnd(), ImportDlgProc, (LPARAM)this)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
std::ostringstream log;
|
||||
Notify::ptr()->set_ostream_ptr(&log, false);
|
||||
bool ok = MaxLoadEggFile(name, _merge ? true:false, _importmodel ? true:false, _importanim ? true:false);
|
||||
string txt = log.str();
|
||||
if (txt != "") MessageBox(NULL, txt.c_str(), "Panda3D Importer", MB_OK);
|
||||
else {
|
||||
if (!ok) MessageBox(NULL, "Import Failed, unknown reason\n", "Panda3D Importer", MB_OK);
|
||||
}
|
||||
Notify::ptr()->set_ostream_ptr(NULL, false);
|
||||
return 1;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Plugin Initialization
|
||||
//
|
||||
// The following code enables Max to load this DLL, get a list
|
||||
// of the classes defined in this DLL, and provides a means for
|
||||
// Max to create instances of those classes.
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
HINSTANCE hInstance;
|
||||
|
||||
BOOL WINAPI DllMain(HINSTANCE hinstDLL,ULONG fdwReason,LPVOID lpvReserved)
|
||||
{
|
||||
static int controlsInit = FALSE;
|
||||
hInstance = hinstDLL;
|
||||
|
||||
if (!controlsInit) {
|
||||
controlsInit = TRUE;
|
||||
InitCustomControls(hInstance);
|
||||
InitCommonControls();
|
||||
}
|
||||
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
#define PANDAEGGIMP_CLASS_ID1 0x377193ab
|
||||
#define PANDAEGGIMP_CLASS_ID2 0x897afe12
|
||||
|
||||
class MaxEggImporterClassDesc: public ClassDesc
|
||||
{
|
||||
public:
|
||||
int IsPublic() {return 1;}
|
||||
void *Create(BOOL loading = FALSE) {return new MaxEggImporter;}
|
||||
const TCHAR *ClassName() {return _T("MaxEggImporter");}
|
||||
SClass_ID SuperClassID() {return SCENE_IMPORT_CLASS_ID;}
|
||||
Class_ID ClassID() {return Class_ID(PANDAEGGIMP_CLASS_ID1,PANDAEGGIMP_CLASS_ID2);}
|
||||
const TCHAR *Category() {return _T("Chrutilities");}
|
||||
};
|
||||
|
||||
static MaxEggImporterClassDesc MaxEggImporterDesc;
|
||||
|
||||
__declspec( dllexport ) const TCHAR* LibDescription()
|
||||
{
|
||||
return _T("Panda3D Egg Importer");
|
||||
}
|
||||
|
||||
__declspec( dllexport ) int LibNumberClasses()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
__declspec( dllexport ) ClassDesc* LibClassDesc(int i)
|
||||
{
|
||||
switch(i) {
|
||||
case 0: return &MaxEggImporterDesc;
|
||||
default: return 0;
|
||||
}
|
||||
}
|
||||
|
||||
__declspec( dllexport ) ULONG LibVersion()
|
||||
{
|
||||
return VERSION_3DSMAX;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
EXPORTS
|
||||
LibDescription @1
|
||||
LibNumberClasses @2
|
||||
LibClassDesc @3
|
||||
LibVersion @4
|
||||
SECTIONS
|
||||
.data READ WRITE
|
||||
EXPORTS
|
||||
LibDescription @1
|
||||
LibNumberClasses @2
|
||||
LibClassDesc @3
|
||||
LibVersion @4
|
||||
SECTIONS
|
||||
.data READ WRITE
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by maxImportRes.rc
|
||||
//
|
||||
#define IDD_PANEL 101
|
||||
#define IDD_ABOUTBOX 102
|
||||
#define IDD_IMPORT_DLG 103
|
||||
#define IDC_MERGE 1002
|
||||
#define IDC_IMPORTMODEL 1003
|
||||
#define IDC_IMPORTANIM 1004
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 105
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1020
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by maxImportRes.rc
|
||||
//
|
||||
#define IDD_PANEL 101
|
||||
#define IDD_ABOUTBOX 102
|
||||
#define IDD_IMPORT_DLG 103
|
||||
#define IDC_MERGE 1002
|
||||
#define IDC_IMPORTMODEL 1003
|
||||
#define IDC_IMPORTANIM 1004
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 105
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1020
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -1,122 +1,122 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "maxImportRes.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_ABOUTBOX, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 176
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 60
|
||||
END
|
||||
|
||||
IDD_IMPORT_DLG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 187
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 71
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"maxImportRes.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 0, 0, 183, 67
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "About Panda3D Egg Importer"
|
||||
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,66,45,50,14
|
||||
CTEXT "Panda3D Egg Importer\n\nCarnegie Mellon\nEntertainment Technology Center",
|
||||
IDC_STATIC,7,7,169,36
|
||||
END
|
||||
|
||||
IDD_IMPORT_DLG DIALOGEX 0, 0, 194, 78
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Panda3D Egg Import"
|
||||
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,137,10,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,137,30,50,14
|
||||
CONTROL "Merge with Current Scene",IDC_MERGE,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,15,20,106,10
|
||||
GROUPBOX "Input Options",IDC_STATIC,5,7,126,64
|
||||
CONTROL "Import Model",IDC_IMPORTMODEL,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,15,41,73,10
|
||||
CONTROL "Import Animation",IDC_IMPORTANIM,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,15,54,73,10
|
||||
END
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "maxImportRes.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_ABOUTBOX, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 176
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 60
|
||||
END
|
||||
|
||||
IDD_IMPORT_DLG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 187
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 71
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"maxImportRes.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 0, 0, 183, 67
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "About Panda3D Egg Importer"
|
||||
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,66,45,50,14
|
||||
CTEXT "Panda3D Egg Importer\n\nCarnegie Mellon\nEntertainment Technology Center",
|
||||
IDC_STATIC,7,7,169,36
|
||||
END
|
||||
|
||||
IDD_IMPORT_DLG DIALOGEX 0, 0, 194, 78
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Panda3D Egg Import"
|
||||
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,137,10,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,137,30,50,14
|
||||
CONTROL "Merge with Current Scene",IDC_MERGE,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,15,20,106,10
|
||||
GROUPBOX "Input Options",IDC_STATIC,5,7,126,64
|
||||
CONTROL "Import Model",IDC_IMPORTMODEL,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,15,41,73,10
|
||||
CONTROL "Import Animation",IDC_IMPORTANIM,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,15,54,73,10
|
||||
END
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "config_maya.cxx"
|
||||
#include "mayaApi.cxx"
|
||||
#include "mayaShader.cxx"
|
||||
#include "mayaShaderColorDef.cxx"
|
||||
#include "mayaShaders.cxx"
|
||||
#include "maya_funcs.cxx"
|
||||
#include "config_maya.cxx"
|
||||
#include "mayaApi.cxx"
|
||||
#include "mayaShader.cxx"
|
||||
#include "mayaShaderColorDef.cxx"
|
||||
#include "mayaShaders.cxx"
|
||||
#include "maya_funcs.cxx"
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
// Filename: mayaEggLoader.h
|
||||
// Created by: jyelon (20jul05)
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// PANDA 3D SOFTWARE
|
||||
// Copyright (c) 2001 - 2005, Disney Enterprises, Inc. All rights reserved
|
||||
//
|
||||
// All use of this software is subject to the terms of the Panda 3d
|
||||
// Software license. You should have received a copy of this license
|
||||
// along with this source code; you will also find a current copy of
|
||||
// the license at http://etc.cmu.edu/panda3d/docs/license/ .
|
||||
//
|
||||
// To contact the maintainers of this program write to
|
||||
// panda3d-general@lists.sourceforge.net .
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef MAYAEGGLOADER_H
|
||||
#define MAYAEGGLOADER_H
|
||||
|
||||
class EggData;
|
||||
|
||||
bool MayaLoadEggData(EggData *data, bool merge, bool model, bool anim);
|
||||
bool MayaLoadEggFile(const char *name, bool merge, bool model, bool anim);
|
||||
|
||||
#endif
|
||||
|
||||
// Filename: mayaEggLoader.h
|
||||
// Created by: jyelon (20jul05)
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// PANDA 3D SOFTWARE
|
||||
// Copyright (c) 2001 - 2005, Disney Enterprises, Inc. All rights reserved
|
||||
//
|
||||
// All use of this software is subject to the terms of the Panda 3d
|
||||
// Software license. You should have received a copy of this license
|
||||
// along with this source code; you will also find a current copy of
|
||||
// the license at http://etc.cmu.edu/panda3d/docs/license/ .
|
||||
//
|
||||
// To contact the maintainers of this program write to
|
||||
// panda3d-general@lists.sourceforge.net .
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef MAYAEGGLOADER_H
|
||||
#define MAYAEGGLOADER_H
|
||||
|
||||
class EggData;
|
||||
|
||||
bool MayaLoadEggData(EggData *data, bool merge, bool model, bool anim);
|
||||
bool MayaLoadEggFile(const char *name, bool merge, bool model, bool anim);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,110 +1,110 @@
|
||||
|
||||
global proc int eggImportOptions ( string $parent,
|
||||
string $action,
|
||||
string $initialSettings,
|
||||
string $resultCallback )
|
||||
//
|
||||
// Description:
|
||||
// This script posts the OBJ file translator options.
|
||||
// The optionsString is of the form:
|
||||
// varName1=value1;varName2=value2;...
|
||||
//
|
||||
// Parameters:
|
||||
// $parent - the elf parent layout for this options layout. It is
|
||||
// always a scrollLayout.
|
||||
// $action - the action that is to be performed with this invokation
|
||||
// of this proc. Valid options are:
|
||||
// "query" - construct the options string and pass it
|
||||
// to the resultCallback.
|
||||
// "post" - post all the elf controls.
|
||||
// $initialSettings - the current options string in effect at the
|
||||
// time this script is invoked.
|
||||
// $resultCallback -
|
||||
// This is the proc to be called with the result string.
|
||||
// resultCallback ( string $optionsString )
|
||||
//
|
||||
// Returns:
|
||||
// 1 if successfull.
|
||||
// 0 otherwise.
|
||||
//
|
||||
{
|
||||
int $bResult;
|
||||
string $currentOptions;
|
||||
string $optionList[];
|
||||
string $optionBreakDown[];
|
||||
int $index;
|
||||
|
||||
if ($action == "post") {
|
||||
setParent $parent;
|
||||
|
||||
columnLayout -adj true objTypeCol;
|
||||
radioButtonGrp
|
||||
-l "Merge with Current Scene"
|
||||
-nrb 2 -cw3 175 75 75
|
||||
-la2 "On" "Off" objMerge;
|
||||
radioButtonGrp
|
||||
-l "Import Model"
|
||||
-nrb 2 -cw3 175 75 75
|
||||
-la2 "On" "Off" objModel;
|
||||
radioButtonGrp
|
||||
-l "Import Animation"
|
||||
-nrb 2 -cw3 175 75 75
|
||||
-la2 "On" "Off" objAnim;
|
||||
|
||||
$currentOptions = $initialSettings;
|
||||
if (size($currentOptions) > 0) {
|
||||
tokenize($currentOptions, ";", $optionList);
|
||||
for ($index = 0; $index < size($optionList); $index++) {
|
||||
tokenize($optionList[$index], "=", $optionBreakDown);
|
||||
|
||||
if ($optionBreakDown[0] == "merge") {
|
||||
if ($optionBreakDown[1] == "0") {
|
||||
radioButtonGrp -e -sl 2 objMerge;
|
||||
} else {
|
||||
radioButtonGrp -e -sl 1 objMerge;
|
||||
}
|
||||
} else if ($optionBreakDown[0] == "model") {
|
||||
if ($optionBreakDown[1] == "0") {
|
||||
radioButtonGrp -e -sl 2 objModel;
|
||||
} else {
|
||||
radioButtonGrp -e -sl 1 objModel;
|
||||
}
|
||||
} else if ($optionBreakDown[0] == "anim") {
|
||||
if ($optionBreakDown[1] == "0") {
|
||||
radioButtonGrp -e -sl 2 objAnim;
|
||||
} else {
|
||||
radioButtonGrp -e -sl 1 objAnim;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$result = 1;
|
||||
|
||||
} else if ($action == "query") {
|
||||
|
||||
if (`radioButtonGrp -q -sl objMerge` == 1) {
|
||||
$currentOptions = $currentOptions + "merge=1";
|
||||
} else {
|
||||
$currentOptions = $currentOptions + "merge=0";
|
||||
}
|
||||
|
||||
if (`radioButtonGrp -q -sl objModel` == 1) {
|
||||
$currentOptions = $currentOptions + ";model=1";
|
||||
} else {
|
||||
$currentOptions = $currentOptions + ";model=0";
|
||||
}
|
||||
|
||||
if (`radioButtonGrp -q -sl objAnim` == 1) {
|
||||
$currentOptions = $currentOptions + ";anim=1";
|
||||
} else {
|
||||
$currentOptions = $currentOptions + ";anim=0";
|
||||
}
|
||||
|
||||
eval($resultCallback+" \""+$currentOptions+"\"");
|
||||
$result = 1;
|
||||
} else {
|
||||
$bResult = 0;
|
||||
}
|
||||
|
||||
return $bResult;
|
||||
}
|
||||
|
||||
global proc int eggImportOptions ( string $parent,
|
||||
string $action,
|
||||
string $initialSettings,
|
||||
string $resultCallback )
|
||||
//
|
||||
// Description:
|
||||
// This script posts the OBJ file translator options.
|
||||
// The optionsString is of the form:
|
||||
// varName1=value1;varName2=value2;...
|
||||
//
|
||||
// Parameters:
|
||||
// $parent - the elf parent layout for this options layout. It is
|
||||
// always a scrollLayout.
|
||||
// $action - the action that is to be performed with this invokation
|
||||
// of this proc. Valid options are:
|
||||
// "query" - construct the options string and pass it
|
||||
// to the resultCallback.
|
||||
// "post" - post all the elf controls.
|
||||
// $initialSettings - the current options string in effect at the
|
||||
// time this script is invoked.
|
||||
// $resultCallback -
|
||||
// This is the proc to be called with the result string.
|
||||
// resultCallback ( string $optionsString )
|
||||
//
|
||||
// Returns:
|
||||
// 1 if successfull.
|
||||
// 0 otherwise.
|
||||
//
|
||||
{
|
||||
int $bResult;
|
||||
string $currentOptions;
|
||||
string $optionList[];
|
||||
string $optionBreakDown[];
|
||||
int $index;
|
||||
|
||||
if ($action == "post") {
|
||||
setParent $parent;
|
||||
|
||||
columnLayout -adj true objTypeCol;
|
||||
radioButtonGrp
|
||||
-l "Merge with Current Scene"
|
||||
-nrb 2 -cw3 175 75 75
|
||||
-la2 "On" "Off" objMerge;
|
||||
radioButtonGrp
|
||||
-l "Import Model"
|
||||
-nrb 2 -cw3 175 75 75
|
||||
-la2 "On" "Off" objModel;
|
||||
radioButtonGrp
|
||||
-l "Import Animation"
|
||||
-nrb 2 -cw3 175 75 75
|
||||
-la2 "On" "Off" objAnim;
|
||||
|
||||
$currentOptions = $initialSettings;
|
||||
if (size($currentOptions) > 0) {
|
||||
tokenize($currentOptions, ";", $optionList);
|
||||
for ($index = 0; $index < size($optionList); $index++) {
|
||||
tokenize($optionList[$index], "=", $optionBreakDown);
|
||||
|
||||
if ($optionBreakDown[0] == "merge") {
|
||||
if ($optionBreakDown[1] == "0") {
|
||||
radioButtonGrp -e -sl 2 objMerge;
|
||||
} else {
|
||||
radioButtonGrp -e -sl 1 objMerge;
|
||||
}
|
||||
} else if ($optionBreakDown[0] == "model") {
|
||||
if ($optionBreakDown[1] == "0") {
|
||||
radioButtonGrp -e -sl 2 objModel;
|
||||
} else {
|
||||
radioButtonGrp -e -sl 1 objModel;
|
||||
}
|
||||
} else if ($optionBreakDown[0] == "anim") {
|
||||
if ($optionBreakDown[1] == "0") {
|
||||
radioButtonGrp -e -sl 2 objAnim;
|
||||
} else {
|
||||
radioButtonGrp -e -sl 1 objAnim;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$result = 1;
|
||||
|
||||
} else if ($action == "query") {
|
||||
|
||||
if (`radioButtonGrp -q -sl objMerge` == 1) {
|
||||
$currentOptions = $currentOptions + "merge=1";
|
||||
} else {
|
||||
$currentOptions = $currentOptions + "merge=0";
|
||||
}
|
||||
|
||||
if (`radioButtonGrp -q -sl objModel` == 1) {
|
||||
$currentOptions = $currentOptions + ";model=1";
|
||||
} else {
|
||||
$currentOptions = $currentOptions + ";model=0";
|
||||
}
|
||||
|
||||
if (`radioButtonGrp -q -sl objAnim` == 1) {
|
||||
$currentOptions = $currentOptions + ";anim=1";
|
||||
} else {
|
||||
$currentOptions = $currentOptions + ";anim=0";
|
||||
}
|
||||
|
||||
eval($resultCallback+" \""+$currentOptions+"\"");
|
||||
$result = 1;
|
||||
} else {
|
||||
$bResult = 0;
|
||||
}
|
||||
|
||||
return $bResult;
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#include "pStatClientData.cxx"
|
||||
#include "pStatGraph.cxx"
|
||||
#include "pStatListener.cxx"
|
||||
#include "pStatMonitor.cxx"
|
||||
#include "pStatPianoRoll.cxx"
|
||||
#include "pStatReader.cxx"
|
||||
#include "pStatServer.cxx"
|
||||
#include "pStatStripChart.cxx"
|
||||
#include "pStatThreadData.cxx"
|
||||
#include "pStatView.cxx"
|
||||
#include "pStatViewLevel.cxx"
|
||||
#include "pStatClientData.cxx"
|
||||
#include "pStatGraph.cxx"
|
||||
#include "pStatListener.cxx"
|
||||
#include "pStatMonitor.cxx"
|
||||
#include "pStatPianoRoll.cxx"
|
||||
#include "pStatReader.cxx"
|
||||
#include "pStatServer.cxx"
|
||||
#include "pStatStripChart.cxx"
|
||||
#include "pStatThreadData.cxx"
|
||||
#include "pStatView.cxx"
|
||||
#include "pStatViewLevel.cxx"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,42 +1,42 @@
|
||||
#!perl
|
||||
|
||||
# find last checked-in modification to [filename]
|
||||
|
||||
if($#ARGV==-1) {
|
||||
die "Usage: lastchng.pl [filename]\nfinds last checked-in modification to file\n";
|
||||
}
|
||||
|
||||
if(!(-e $ARGV[0])) {
|
||||
die "file '".$ARGV[0]."' doesnt exist!\n";
|
||||
}
|
||||
|
||||
open(INPUT_STREAM,"cvs log $ARGV[0] |");
|
||||
|
||||
$firstrev=null;
|
||||
$secondrev=null;
|
||||
|
||||
while($line=<INPUT_STREAM>) {
|
||||
if($line =~ /^revision (\S*)$/) {
|
||||
# print $line."\n";
|
||||
if($firstrev==null) {
|
||||
$firstrev=$1;
|
||||
} else {
|
||||
$secondrev=$1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
close(INPUT_STREAM);
|
||||
|
||||
if($firstrev==null) {
|
||||
die "Couldn't find first revision of $ARGV[0]!\n";
|
||||
}
|
||||
$revstr="-r$firstrev";
|
||||
if($secondrev!=null) {
|
||||
$revstr = "-r$secondrev ".$revstr;
|
||||
}
|
||||
|
||||
$cvsline="cvs diff $revstr ".$ARGV[0];
|
||||
print $cvsline,"\n";
|
||||
system($cvsline);
|
||||
exit(0);
|
||||
#!perl
|
||||
|
||||
# find last checked-in modification to [filename]
|
||||
|
||||
if($#ARGV==-1) {
|
||||
die "Usage: lastchng.pl [filename]\nfinds last checked-in modification to file\n";
|
||||
}
|
||||
|
||||
if(!(-e $ARGV[0])) {
|
||||
die "file '".$ARGV[0]."' doesnt exist!\n";
|
||||
}
|
||||
|
||||
open(INPUT_STREAM,"cvs log $ARGV[0] |");
|
||||
|
||||
$firstrev=null;
|
||||
$secondrev=null;
|
||||
|
||||
while($line=<INPUT_STREAM>) {
|
||||
if($line =~ /^revision (\S*)$/) {
|
||||
# print $line."\n";
|
||||
if($firstrev==null) {
|
||||
$firstrev=$1;
|
||||
} else {
|
||||
$secondrev=$1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
close(INPUT_STREAM);
|
||||
|
||||
if($firstrev==null) {
|
||||
die "Couldn't find first revision of $ARGV[0]!\n";
|
||||
}
|
||||
$revstr="-r$firstrev";
|
||||
if($secondrev!=null) {
|
||||
$revstr = "-r$secondrev ".$revstr;
|
||||
}
|
||||
|
||||
$cvsline="cvs diff $revstr ".$ARGV[0];
|
||||
print $cvsline,"\n";
|
||||
system($cvsline);
|
||||
exit(0);
|
||||
|
||||
@@ -1,45 +1,45 @@
|
||||
#!perl
|
||||
|
||||
# find last checked-in modification to [filename]
|
||||
|
||||
if($#ARGV==-1) {
|
||||
die "Usage: lastchng.pl [filename]\nfinds last checked-in modification to file\n";
|
||||
}
|
||||
|
||||
if(!(-e $ARGV[0])) {
|
||||
die "file '".$ARGV[0]."' doesnt exist!\n";
|
||||
}
|
||||
|
||||
open(INPUT_STREAM,"cvs log $ARGV[0] |");
|
||||
|
||||
$firstrev=null;
|
||||
$secondrev=null;
|
||||
|
||||
while($line=<INPUT_STREAM>) {
|
||||
if($line =~ /^revision (\S*)$/) {
|
||||
# print $line."\n";
|
||||
if($firstrev==null) {
|
||||
$firstrev=$1;
|
||||
} else {
|
||||
$secondrev=$1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
close(INPUT_STREAM);
|
||||
|
||||
if($firstrev==null) {
|
||||
die "Couldn't find first revision of $ARGV[0]!\n";
|
||||
}
|
||||
$revstr="-r$firstrev";
|
||||
if($secondrev!=null) {
|
||||
$revstr = "-r$secondrev ".$revstr;
|
||||
}
|
||||
|
||||
$cvsline="cvs update -p -r".$secondrev." ".$ARGV[0]." > junk";
|
||||
$windiffline="windiff junk ".$ARGV[0];
|
||||
print $cvsline,"\n";
|
||||
system($cvsline);
|
||||
print $windiffline,"\n";
|
||||
system($windiffline);
|
||||
exit(0);
|
||||
#!perl
|
||||
|
||||
# find last checked-in modification to [filename]
|
||||
|
||||
if($#ARGV==-1) {
|
||||
die "Usage: lastchng.pl [filename]\nfinds last checked-in modification to file\n";
|
||||
}
|
||||
|
||||
if(!(-e $ARGV[0])) {
|
||||
die "file '".$ARGV[0]."' doesnt exist!\n";
|
||||
}
|
||||
|
||||
open(INPUT_STREAM,"cvs log $ARGV[0] |");
|
||||
|
||||
$firstrev=null;
|
||||
$secondrev=null;
|
||||
|
||||
while($line=<INPUT_STREAM>) {
|
||||
if($line =~ /^revision (\S*)$/) {
|
||||
# print $line."\n";
|
||||
if($firstrev==null) {
|
||||
$firstrev=$1;
|
||||
} else {
|
||||
$secondrev=$1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
close(INPUT_STREAM);
|
||||
|
||||
if($firstrev==null) {
|
||||
die "Couldn't find first revision of $ARGV[0]!\n";
|
||||
}
|
||||
$revstr="-r$firstrev";
|
||||
if($secondrev!=null) {
|
||||
$revstr = "-r$secondrev ".$revstr;
|
||||
}
|
||||
|
||||
$cvsline="cvs update -p -r".$secondrev." ".$ARGV[0]." > junk";
|
||||
$windiffline="windiff junk ".$ARGV[0];
|
||||
print $cvsline,"\n";
|
||||
system($cvsline);
|
||||
print $windiffline,"\n";
|
||||
system($windiffline);
|
||||
exit(0);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user