亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cvwrite.cpp

?? Windows上的MUD客戶端程序
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*----------------------------------------------------------------------------
                        _                              _ _       
        /\             | |                            | (_)      
       /  \   _ __   __| |_ __ ___  _ __ ___   ___  __| |_  __ _ 
      / /\ \ | '_ \ / _` | '__/ _ \| '_ ` _ \ / _ \/ _` | |/ _` |
     / ____ \| | | | (_| | | | (_) | | | | | |  __/ (_| | | (_| |
    /_/    \_\_| |_|\__,_|_|  \___/|_| |_| |_|\___|\__,_|_|\__,_|

    The contents of this file are subject to the Andromedia Public
	License Version 1.0 (the "License"); you may not use this file
	except in compliance with the License. You may obtain a copy of
	the License at http://www.andromedia.com/APL/

    Software distributed under the License is distributed on an
	"AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
	implied. See the License for the specific language governing
	rights and limitations under the License.

    The Original Code is Pueblo client code, released November 4, 1998.

    The Initial Developer of the Original Code is Andromedia Incorporated.
	Portions created by Andromedia are Copyright (C) 1998 Andromedia
	Incorporated.  All Rights Reserved.

	Andromedia Incorporated                         415.365.6700
	818 Mission Street - 2nd Floor                  415.365.6701 fax
	San Francisco, CA 94103

    Contributor(s):
	--------------------------------------------------------------------------
	   Chaco team:  Dan Greening, Glenn Crocker, Jim Doubek,
	                Coyote Lussier, Pritham Shetty.

					Wrote and designed original codebase.

------------------------------------------------------------------------------

	Implementation for the traversal of a VRML QV tree into Intel 3DR.

----------------------------------------------------------------------------*/

// $Header: /home/cvs/chaco/modules/client/msw/ChGraphx/CvWrite.cpp,v 2.13 1996/08/22 22:45:19 jimd Exp $
/*
 Copyright 1995 by Tenet Networks, Inc.
 Carlsbad, California, USA. All rights reserved.

 Redistribution and use of this software, with or without modification, is
 permitted provided that the following conditions are met:

 1. Redistributions of this software must retain the above copyright
    notice, this list of conditions and the following disclaimer.

  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "grheader.h"
//

#if defined( CH_ARCH_16 )
#include <QvElemnt.h>   
#else
#include <QvElement.h>   
#endif
#include <QvNodes.h>
#include <QvState.h>
#if defined( CH_ARCH_16 )
#include <UnknNode.h>   
#else
#include <QvUnknownNode.h>
#endif

#include <iostream.h>

// int i is used in some macros, but not needed for all
#pragma warning(disable:4101)

//////////////////////////////////////////////////////////////////////////////
//
// write code for all nodes. The default method (in QvNode) does
// nothing. Because write() is defined in the header for ALL node
// classes, each one has an implementation here.
//
//////////////////////////////////////////////////////////////////////////////

// For debugging
static int indent = 0;
static void
announce(const char *className, ostream &strm)
{
    for (int i = 0; i < indent; i++)
	strm << "\t";
    strm <<  className << " {\n";
}
#define ANNOUNCE(className) announce(QV__QUOTE(className), strm)

#define DEFAULT_write(className)					      \
void									      \
className::write(ostream &strm)						      \
{									      \
    ANNOUNCE(className);						      \
}

static void end_brack(ostream &strm )
	{
	for (int i = 0; i < indent; i++)
		strm << "\t";
	strm << "}\n";
	}
 
#define END_BRACK  end_brack( strm );

void tab_in(int in, ostream &strm)
{
	for (int i = 0; i < in; i++) strm << "\t";
}

void print_bitmask(QvSFEnum enm, ostream &strm)
{
	int out_vals_written = 0, all_val;
	QvName all("ALL");

	enm.findEnumValue(all, all_val);

	if (enm.value == all_val) 
		strm << "\tALL\n";
	else  {
		strm << "\t(";
		for (int i = 0; i < enm.numEnums-1; i++) {
	
			if (enm.enumValues[i] & enm.value) {
				if (out_vals_written++) strm << " | ";
				strm << (char *)enm.enumNames[i].getString( );
				}
			}
		strm << ")\n";
		}
}

void print_enum(QvSFEnum enm, ostream &strm)
{
	if (enm.isDefault( )) 
		strm << "DEFAULT\n";
	else  {
		for (int i = 0; i < enm.numEnums; i++) 
			if (enm.enumValues[i] == enm.value) {
				strm << (char *)enm.enumNames[i].getString( ) << "\n";
				break;
				}
		}
}
 
#define MFIELD(fieldNm, grouping)						\
	if (!(fieldNm.isDefault( ))) {						\
		tab_in( indent, strm );								\
 		strm << QV__QUOTE(fieldNm) << "\t[";				\
		for (i = 0; i < fieldNm.num * grouping; i++) {	\
			if (i && (grouping != 1) && (i % grouping == 0)) strm << ",";	\
			strm << " " << fieldNm.values[i];			\
 			}									 		\
	 	strm << "]\n";									\
	 	}

	  
#define BITMASK(fieldNm)								\
 	if (!(fieldNm.isDefault( ))) {						\
		if (fieldNm.numEnums) {							\
			tab_in( indent, strm  );							\
			strm << QV__QUOTE(fieldNm);					\
			print_bitmask(fieldNm, strm);						\
			}											\
		}
 	
  
#define FIXEDARRAYFIELD(fieldNm, grouping)				\
	if (!(fieldNm.isDefault( ))) {						\
		tab_in( indent, strm  );								\
		strm << QV__QUOTE(fieldNm) << "\t";				\
		for (i = 0; i < grouping; i++) {				\
			strm << fieldNm.value[i] << " ";			\
			}									 		\
	 	strm << "\n";									\
		}

#define FIELD(fieldNm) 									\
	if (!(fieldNm.isDefault( ))) {						\
		tab_in( indent, strm  );								\
		strm << QV__QUOTE(fieldNm) << "\t" << fieldNm.value << "\n"; \
		}	 

#define STRINGFIELD(fieldNm) 							\
	if (!(fieldNm.isDefault( ))) {						\
		tab_in( indent, strm  );								\
		strm << QV__QUOTE(fieldNm) << "\t" 				\
			<< "\""  << fieldNm.value.getString( ) << "\"\n"; \
		}
		 

#define MSTRINGFIELD(fieldNm, grouping)						\
	if (!(fieldNm.isDefault( ))) {						\
		tab_in( indent, strm );								\
 		strm << QV__QUOTE(fieldNm) << "\t[";				\
		for (i = 0; i < fieldNm.num * grouping; i++) {	\
			if (i && (grouping != 1) && (i % grouping == 0)) strm << ",";	\
			strm << " " << "\""  << fieldNm.values[i].getString( ) << "\"\n";			\
 			}									 		\
	 	strm << "]\n";									\
	 	}

	  

#define ENUMFIELD(fieldNm)								\
	if (!(fieldNm.isDefault( ))) {						\
		if (fieldNm.numEnums) {							\
			tab_in( indent, strm );							\
			strm << QV__QUOTE(fieldNm) << "\t";			\
			print_enum(fieldNm, strm);						\
			}											\
		}
	
 
#define ROTATIONFIELD(fieldNm)							\
	if (!(fieldNm.isDefault( ))) {						\
		tab_in( indent, strm  );								\
		strm << QV__QUOTE(fieldNm) << "\t";				\
		for (i = 0; i < 3 ; i++) 						\
			strm << fieldNm.axis[i] << " ";				\
		strm <<	fieldNm.angle << "\n";					\
		} 

#define MATRIXFIELD(fieldNm)							\
	if (!(fieldNm.isDefault( ))) {						\
		tab_in( indent, strm  );								\
		strm << QV__QUOTE(fieldNm) << "\t";				\
		for (i = 0; i < 4; i++)							\
			for (int j = 0; j < 4; j++)					\
				strm << fieldNm.value[i][j] << " ";		\
		strm << "\n";									\
		}

#define BOOLFIELD(fieldNm) 								\
	if (!(fieldNm.isDefault( ))) {						\
		tab_in( indent, strm  );								\
		strm << QV__QUOTE(fieldNm) << "\t" <<			\
			(fieldNm.value ? "TRUE" : "FALSE") << "\n"; \
		}
		
//////////////////////////////////////////////////////////////////////////////
//
// Groups.
//
//////////////////////////////////////////////////////////////////////////////

void
QvGroup::write(ostream &strm)
{
    ANNOUNCE(Group);
    indent++;
    for (int i = 0; i < getNumChildren(); i++)
	getChild(i)->write(strm);
	END_BRACK;
    indent--;
}

void
QvLOD::write(ostream &strm)
{  	
	int i;
    ANNOUNCE(QvLOD);
    indent++;

	MFIELD(range,1)
	FIXEDARRAYFIELD(center,3);

    for (i = 0; i < getNumChildren(); i++)
	getChild(i)->write(strm);

	END_BRACK;
    indent--;
}

void
QvSeparator::write(ostream &strm)
{
    ANNOUNCE(Separator);
    indent++;
	
	ENUMFIELD(renderCulling)

    for (int i = 0; i < getNumChildren(); i++)
	getChild(i)->write(strm);
	END_BRACK;
    indent--;
}

void
QvSwitch::write(ostream &strm)
{
    ANNOUNCE(Switch);
    indent++;

	FIELD(whichChild)

    int which = whichChild.value;

    if (which == QV_SWITCH_NONE)
	;

    else if (which == QV_SWITCH_ALL)
	for (int i = 0; i < getNumChildren(); i++)
	    getChild(i)->write(strm);

    else
	if (which < getNumChildren())
	    getChild(which)->write(strm);

	END_BRACK;
    indent--;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二区三区在线| 日韩毛片精品高清免费| 一区二区在线观看视频 | 成人欧美一区二区三区在线播放| 成人动漫av在线| 亚洲精品国产视频| 亚洲欧美激情小说另类| 在线观看av一区| 视频在线观看91| 国产欧美精品一区二区色综合 | 久久成人免费网| 久久综合九色综合欧美98| 成人综合在线视频| 日韩专区欧美专区| 日本大胆欧美人术艺术动态| 国产精品萝li| wwww国产精品欧美| 欧美激情一二三区| 日韩欧美国产电影| 欧美国产激情一区二区三区蜜月| 国产精品午夜电影| 亚洲伦在线观看| 日韩激情一二三区| 国产精品自在欧美一区| 亚洲国产精品一区二区尤物区| 欧美成人精品高清在线播放| 精品视频1区2区| 色综合中文字幕| 国产老肥熟一区二区三区| 成人性生交大片免费看视频在线 | 91久久奴性调教| 成人精品视频一区二区三区| 色婷婷综合久色| 不卡的电视剧免费网站有什么| 色欧美日韩亚洲| 欧美白人最猛性xxxxx69交| 日本一区二区三区视频视频| 一区二区三区四区五区视频在线观看| 国产精品区一区二区三区| 亚洲一区二区欧美| 亚洲精品国产视频| 国产资源在线一区| 国产一区不卡精品| 国内成人免费视频| 欧美系列在线观看| 欧美日韩一区三区四区| 国产无一区二区| 中文字幕欧美日本乱码一线二线| 亚洲伦理在线免费看| 国产精品99久久久久久宅男| 欧美日韩在线播放一区| 国产精品久久久久三级| 亚洲精品成人在线| 国产一区视频导航| 日本精品一级二级| 日本一区免费视频| 7777精品伊人久久久大香线蕉完整版 | 精品国产成人系列| 欧美日韩国产电影| 5月丁香婷婷综合| 136国产福利精品导航| 精品影视av免费| 国产精品综合二区| 日韩女优视频免费观看| 天堂一区二区在线| 欧美精品1区2区3区| 欧美一区二区免费观在线| 久久综合久久综合亚洲| 日韩制服丝袜先锋影音| 欧美午夜在线一二页| 中文字幕一区二区三区不卡在线| 国产高清精品在线| 色婷婷亚洲精品| 亚洲婷婷在线视频| 91丝袜美女网| 日韩一区二区影院| 最新欧美精品一区二区三区| 国产露脸91国语对白| 337p粉嫩大胆色噜噜噜噜亚洲| 美女免费视频一区| 成人激情电影免费在线观看| 久久久精品国产免大香伊| 亚洲免费色视频| 91福利精品第一导航| 一二三区精品福利视频| 日本福利一区二区| 亚洲国产视频在线| 91精品婷婷国产综合久久性色| 午夜精品一区二区三区三上悠亚| 国产一区二区三区香蕉| 欧美va亚洲va香蕉在线 | 久久精品一区四区| 成人精品国产福利| 亚洲精品免费在线播放| 91免费视频网| 亚洲第一精品在线| 成人免费视频一区| 亚洲色图.com| 在线播放欧美女士性生活| 免费在线看成人av| 欧美日韩精品欧美日韩精品一| 亚洲国产欧美另类丝袜| 日韩美一区二区三区| 成人午夜在线免费| 亚洲影视资源网| 精品动漫一区二区三区在线观看| 国产精品自在在线| 亚洲综合色区另类av| 日韩一级完整毛片| 97超碰欧美中文字幕| 国产欧美日韩在线| 欧美亚洲高清一区二区三区不卡| 美腿丝袜亚洲三区| 成人免费一区二区三区视频| 欧美性猛交一区二区三区精品 | 国产欧美一区二区精品忘忧草| 色哟哟日韩精品| 国产在线播精品第三| 有坂深雪av一区二区精品| 26uuu国产电影一区二区| av网站免费线看精品| 欧美国产一区在线| 欧美一级理论性理论a| 99re视频精品| 免费日本视频一区| 亚洲色图欧美偷拍| 国产视频一区二区在线| 777亚洲妇女| 欧美亚洲高清一区| 91亚洲精品久久久蜜桃| 国产乱人伦精品一区二区在线观看 | 国产九九视频一区二区三区| 一区二区三区鲁丝不卡| 国产精品国产三级国产aⅴ原创| 日韩午夜av一区| 欧美日韩三级一区二区| 粗大黑人巨茎大战欧美成人| 青青草国产成人av片免费| 亚洲欧洲韩国日本视频| 中文字幕免费不卡| 久久综合色婷婷| 日韩一区二区在线观看视频 | 99久久精品国产毛片| 国产成a人亚洲| 亚洲激情成人在线| 亚洲品质自拍视频网站| 国产精品国产a级| 国产精品国产三级国产专播品爱网| 久久在线观看免费| 久久综合九色综合久久久精品综合 | 中文成人综合网| 久久久久久久久久久久久女国产乱 | 一区二区欧美精品| 亚洲综合色婷婷| 三级不卡在线观看| 奇米影视在线99精品| 奇米色777欧美一区二区| 天天亚洲美女在线视频| 日韩中文字幕区一区有砖一区| 首页国产欧美日韩丝袜| 免费精品99久久国产综合精品| 免费观看日韩电影| 国产在线播放一区| www.欧美.com| 色天使色偷偷av一区二区| 欧美自拍偷拍一区| 91精品国产福利| 久久综合九色综合欧美98 | 这里只有精品视频在线观看| 欧美二区乱c少妇| 精品伦理精品一区| 日本一区二区三区在线观看| 亚洲欧美激情一区二区| 五月激情丁香一区二区三区| 久久99久久99| 99久久精品国产一区二区三区 | 久久亚区不卡日本| 亚洲私人黄色宅男| 日韩精品成人一区二区三区| 国内偷窥港台综合视频在线播放| 成人精品国产免费网站| 欧美日韩精品福利| 国产日本一区二区| 亚洲一二三区不卡| 国产成人亚洲综合a∨猫咪| 91免费视频网| 26uuu精品一区二区| 亚洲精品国产一区二区精华液| 日韩高清不卡一区二区三区| 国产成人精品亚洲日本在线桃色| 日本久久一区二区三区| 精品少妇一区二区三区视频免付费| 国产女主播在线一区二区| 亚洲va韩国va欧美va| 国产剧情一区二区| 欧美日本一区二区在线观看| 国产精品视频麻豆| 免费成人在线视频观看| 色8久久人人97超碰香蕉987| 久久精品欧美一区二区三区不卡 |