This commit is contained in:
David Rose
2006-09-01 18:52:52 +00:00
parent 037864e7a0
commit a3cc24dd6f
45 changed files with 22131 additions and 22131 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -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()"

View File

@@ -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

View File

@@ -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')

View File

@@ -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

View File

@@ -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

View File

@@ -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;

View File

@@ -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

View File

@@ -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. */

View File

@@ -1,6 +1,6 @@
#ifndef _CXCORE_H_
#define _CXCORE_H_
//Python stub
#endif
#ifndef _CXCORE_H_
#define _CXCORE_H_
//Python stub
#endif

View File

@@ -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

View File

@@ -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

View File

@@ -1,5 +1,5 @@
#ifndef _HIGH_GUI_
#define _HIGH_GUI_
#ifndef _HIGH_GUI_
#define _HIGH_GUI_
#endif

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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);

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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." );

View File

@@ -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))));
}

View File

@@ -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

View File

@@ -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"

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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);

View File

@@ -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