83 lines
3.3 KiB
Plaintext
83 lines
3.3 KiB
Plaintext
// Filename: builder.I
|
|
// Created by: drose (09Sep97)
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
//
|
|
// PANDA 3D SOFTWARE
|
|
// Copyright (c) 2001, 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://www.panda3d.org/license.txt .
|
|
//
|
|
// To contact the maintainers of this program write to
|
|
// panda3d@yahoogroups.com .
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: Builder::add_prim
|
|
// Access: Public
|
|
// Description: Adds the indicated nonindexed primitive, along with
|
|
// its associated bucket, to the builder's internal
|
|
// structures. This copies all relevant information
|
|
// into the builder.
|
|
//
|
|
// Returns true if the primitive was successfully added,
|
|
// false if it was invalid for some reason (for
|
|
// instance, a polygon with two vertices).
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE bool Builder::
|
|
add_prim(const BuilderBucket &bucket,
|
|
const BuilderPrim &prim) {
|
|
add_bucket(bucket);
|
|
return ((BuilderBucketNode &)(*_bi)).add_prim(prim);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: Builder::add_prim
|
|
// Access: Public
|
|
// Description: Adds the indicated indexed primitive, along with
|
|
// its associated bucket, to the builder's internal
|
|
// structures. This copies all relevant information
|
|
// into the builder.
|
|
//
|
|
// Returns true if the primitive was successfully added,
|
|
// false if it was invalid for some reason (for
|
|
// instance, a polygon with two vertices).
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE bool Builder::
|
|
add_prim(const BuilderBucket &bucket,
|
|
const BuilderPrimI &prim) {
|
|
add_bucket(bucket);
|
|
return ((BuilderBucketNode &)(*_bi)).add_prim(prim);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: Builder::add_prim_nonindexed
|
|
// Access: Public
|
|
// Description: Adds the specified indexed primitive as if it were
|
|
// nonindexed. This simply looks up each coordinate
|
|
// value on the prim in its associated array and stores
|
|
// a nonindexed primitive with the actual coordinate
|
|
// values, instead of the index numbers.
|
|
//
|
|
// This is handy for having code that calls the builder
|
|
// and might want to build either indexed or nonindexed
|
|
// geometry, as selected by the user at run-time.
|
|
// Simply build indexed geometry in all cases, then call
|
|
// either add_prim or add_prim_nonindexed, according to
|
|
// the user's selection.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE bool Builder::
|
|
add_prim_nonindexed(const BuilderBucket &bucket,
|
|
const BuilderPrimI &prim) {
|
|
add_bucket(bucket);
|
|
return ((BuilderBucketNode &)(*_bi)).add_prim_nonindexed(prim);
|
|
}
|