mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -04:00
add default-lod-type
This commit is contained in:
parent
823524e43c
commit
8ce0e1070d
@ -67,6 +67,7 @@
|
|||||||
loaderFileTypeRegistry.h \
|
loaderFileTypeRegistry.h \
|
||||||
loaderOptions.I loaderOptions.h \
|
loaderOptions.I loaderOptions.h \
|
||||||
lodNode.I lodNode.h \
|
lodNode.I lodNode.h \
|
||||||
|
lodNodeType.h \
|
||||||
materialAttrib.I materialAttrib.h \
|
materialAttrib.I materialAttrib.h \
|
||||||
materialCollection.I materialCollection.h \
|
materialCollection.I materialCollection.h \
|
||||||
modelFlattenRequest.I modelFlattenRequest.h \
|
modelFlattenRequest.I modelFlattenRequest.h \
|
||||||
@ -175,6 +176,7 @@
|
|||||||
loaderFileTypeRegistry.cxx \
|
loaderFileTypeRegistry.cxx \
|
||||||
loaderOptions.cxx \
|
loaderOptions.cxx \
|
||||||
lodNode.cxx \
|
lodNode.cxx \
|
||||||
|
lodNodeType.cxx \
|
||||||
materialAttrib.cxx \
|
materialAttrib.cxx \
|
||||||
materialCollection.cxx \
|
materialCollection.cxx \
|
||||||
modelFlattenRequest.cxx \
|
modelFlattenRequest.cxx \
|
||||||
@ -278,6 +280,7 @@
|
|||||||
loaderFileTypeRegistry.h \
|
loaderFileTypeRegistry.h \
|
||||||
loaderOptions.I loaderOptions.h \
|
loaderOptions.I loaderOptions.h \
|
||||||
lodNode.I lodNode.h \
|
lodNode.I lodNode.h \
|
||||||
|
lodNodeType.h \
|
||||||
materialAttrib.I materialAttrib.h \
|
materialAttrib.I materialAttrib.h \
|
||||||
materialCollection.I materialCollection.h \
|
materialCollection.I materialCollection.h \
|
||||||
modelFlattenRequest.I modelFlattenRequest.h \
|
modelFlattenRequest.I modelFlattenRequest.h \
|
||||||
|
@ -328,6 +328,11 @@ ConfigVariableBool allow_incomplete_render
|
|||||||
"geometry is always paged in when needed, holding up the frame "
|
"geometry is always paged in when needed, holding up the frame "
|
||||||
"render if necessary."));
|
"render if necessary."));
|
||||||
|
|
||||||
|
ConfigVariableEnum<LODNodeType> default_lod_type
|
||||||
|
("default-lod-type", LNT_pop,
|
||||||
|
PRC_DESC("Set this to either 'pop' or 'fade' to determine the type of "
|
||||||
|
"LODNode that is created by LODNode::make_default_lod()."));
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: init_libpgraph
|
// Function: init_libpgraph
|
||||||
// Description: Initializes the library. This must be called at
|
// Description: Initializes the library. This must be called at
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#include "configVariableInt.h"
|
#include "configVariableInt.h"
|
||||||
#include "configVariableDouble.h"
|
#include "configVariableDouble.h"
|
||||||
#include "configVariableList.h"
|
#include "configVariableList.h"
|
||||||
|
#include "lodNodeType.h"
|
||||||
|
|
||||||
class DSearchPath;
|
class DSearchPath;
|
||||||
|
|
||||||
@ -71,6 +72,8 @@ extern ConfigVariableList load_file_type;
|
|||||||
extern ConfigVariableString default_model_extension;
|
extern ConfigVariableString default_model_extension;
|
||||||
extern EXPCL_PANDA ConfigVariableBool allow_incomplete_render;
|
extern EXPCL_PANDA ConfigVariableBool allow_incomplete_render;
|
||||||
|
|
||||||
|
extern ConfigVariableEnum<LODNodeType> default_lod_type;
|
||||||
|
|
||||||
extern EXPCL_PANDA void init_libpgraph();
|
extern EXPCL_PANDA void init_libpgraph();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include "lodNode.h"
|
#include "lodNode.h"
|
||||||
|
#include "fadeLodNode.h"
|
||||||
#include "cullTraverserData.h"
|
#include "cullTraverserData.h"
|
||||||
#include "cullTraverser.h"
|
#include "cullTraverser.h"
|
||||||
#include "config_pgraph.h"
|
#include "config_pgraph.h"
|
||||||
@ -43,6 +44,28 @@
|
|||||||
|
|
||||||
TypeHandle LODNode::_type_handle;
|
TypeHandle LODNode::_type_handle;
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: LODNode::make_default_lod
|
||||||
|
// Access: Published, Static
|
||||||
|
// Description: Creates a new LODNode of the type specified by the
|
||||||
|
// default-lod-type config variable.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
PT(LODNode) LODNode::
|
||||||
|
make_default_lod(const string &name) {
|
||||||
|
switch (default_lod_type) {
|
||||||
|
case LNT_pop:
|
||||||
|
return new LODNode(name);
|
||||||
|
|
||||||
|
case LNT_fade:
|
||||||
|
return new FadeLODNode(name);
|
||||||
|
|
||||||
|
default:
|
||||||
|
pgraph_cat.error()
|
||||||
|
<< "Invalid LODNodeType value: " << (int)default_lod_type << "\n";
|
||||||
|
return new LODNode(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: LODNode::make_copy
|
// Function: LODNode::make_copy
|
||||||
// Access: Public, Virtual
|
// Access: Public, Virtual
|
||||||
@ -763,6 +786,7 @@ write_datagram(BamWriter *manager, Datagram &dg) {
|
|||||||
TypedWritable *LODNode::
|
TypedWritable *LODNode::
|
||||||
make_from_bam(const FactoryParams ¶ms) {
|
make_from_bam(const FactoryParams ¶ms) {
|
||||||
LODNode *node = new LODNode("");
|
LODNode *node = new LODNode("");
|
||||||
|
|
||||||
DatagramIterator scan;
|
DatagramIterator scan;
|
||||||
BamReader *manager;
|
BamReader *manager;
|
||||||
|
|
||||||
|
@ -36,6 +36,8 @@ class EXPCL_PANDA LODNode : public PandaNode {
|
|||||||
PUBLISHED:
|
PUBLISHED:
|
||||||
INLINE LODNode(const string &name);
|
INLINE LODNode(const string &name);
|
||||||
|
|
||||||
|
static PT(LODNode) make_default_lod(const string &name);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
INLINE LODNode(const LODNode ©);
|
INLINE LODNode(const LODNode ©);
|
||||||
public:
|
public:
|
||||||
|
52
panda/src/pgraph/lodNodeType.cxx
Normal file
52
panda/src/pgraph/lodNodeType.cxx
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
// Filename: lodNodeType.cxx
|
||||||
|
// Created by: drose (08Jun07)
|
||||||
|
//
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// 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 "lodNodeType.h"
|
||||||
|
#include "string_utils.h"
|
||||||
|
|
||||||
|
ostream &
|
||||||
|
operator << (ostream &out, LODNodeType lnt) {
|
||||||
|
switch (lnt) {
|
||||||
|
case LNT_pop:
|
||||||
|
return out << "pop";
|
||||||
|
|
||||||
|
case LNT_fade:
|
||||||
|
return out << "fade";
|
||||||
|
}
|
||||||
|
|
||||||
|
pgraph_cat->error()
|
||||||
|
<< "Invalid LODNodeType value: " << (int)lnt << "\n";
|
||||||
|
nassertr(false, out);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
istream &
|
||||||
|
operator >> (istream &in, LODNodeType &lnt) {
|
||||||
|
string word;
|
||||||
|
in >> word;
|
||||||
|
if (cmp_nocase_uh(word, "pop") == 0) {
|
||||||
|
lnt = LNT_pop;
|
||||||
|
} else if (cmp_nocase_uh(word, "fade") == 0) {
|
||||||
|
lnt = LNT_fade;
|
||||||
|
} else {
|
||||||
|
pgraph_cat->error()
|
||||||
|
<< "Invalid LODNodeType string: " << word << "\n";
|
||||||
|
lnt = LNT_pop;
|
||||||
|
}
|
||||||
|
return in;
|
||||||
|
}
|
38
panda/src/pgraph/lodNodeType.h
Normal file
38
panda/src/pgraph/lodNodeType.h
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
// Filename: lodNodeType.h
|
||||||
|
// Created by: drose (08Jun07)
|
||||||
|
//
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// 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 LODNODETYPE_H
|
||||||
|
#define LODNODETYPE_H
|
||||||
|
|
||||||
|
#include "pandabase.h"
|
||||||
|
|
||||||
|
BEGIN_PUBLISH
|
||||||
|
|
||||||
|
enum LODNodeType {
|
||||||
|
LNT_pop,
|
||||||
|
LNT_fade,
|
||||||
|
};
|
||||||
|
|
||||||
|
END_PUBLISH
|
||||||
|
|
||||||
|
EXPCL_PANDA ostream &operator << (ostream &out, LODNodeType lnt);
|
||||||
|
EXPCL_PANDA istream &operator >> (istream &in, LODNodeType &cs);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
@ -10,6 +10,7 @@
|
|||||||
#include "loaderFileTypeRegistry.cxx"
|
#include "loaderFileTypeRegistry.cxx"
|
||||||
#include "loaderOptions.cxx"
|
#include "loaderOptions.cxx"
|
||||||
#include "lodNode.cxx"
|
#include "lodNode.cxx"
|
||||||
|
#include "lodNodeType.cxx"
|
||||||
#include "materialAttrib.cxx"
|
#include "materialAttrib.cxx"
|
||||||
#include "materialCollection.cxx"
|
#include "materialCollection.cxx"
|
||||||
#include "modelFlattenRequest.cxx"
|
#include "modelFlattenRequest.cxx"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user